Den smarta AI-kodgeneratorn Copilot föreslår kod som innehåller säkerhetshål. Problemet är att den är tränad på dålig kod.
Den så kallade ”gyllene sisu-principen” har återigen drabbat maskininlärning – skräp in, skräp ut.
Kodgeneratorn Copilot hänger över axeln på programmerare och föreslår kod att skriva. Det går fort och koden är typiskt i princip fullt korrekt.
Men bara i princip. Forskare på New York University blev misstänksamma. De testade att låta Copilot generera kod för uppgifter där kod ofta innehåller säkerhetsproblem.
Det visade sig att 40 procent av kodsnuttarna från Copilot var säkerhetsmässigt problematisk. Forskarna lät Copilot generera drygt 1600 kodsnuttar för 89 scenarier.
Copilots programmerartbildning består i att den lusläst all kod som finns på forumet Github. Den känner därefter igen koden som utvecklare tänker skriva och föreslår en typisk fortsättning som den hittat i arkivet.
Problemet är att koden på Github är utvecklad av vanliga människor som gjort vanliga misstag genom åren. Forskarna gissar att orsaken är att roboten helt enkelt tränat upp sin kodarkompetens genom att lära sig sårbar kod. Särskilt gäller detta i ljuset av att mycket av koden är gammal och skriven innan olika typer av riskabla kodmönster uppmärksammats.
Copilot är just nu under betatestning och har inte släppts skarpt. Verktyget integreras i kodeditorer och kompletterar kontinuerligt det som programmeraren skriver med förslag på kod som ska skrivas härnäst.
Ett tidigare uppmärksammat dilemma med Copilot är att det finns frågetecken kring om det är upphovsrättsligt tillåtet för roboten att generera kod med utgångspunkt i kod som andra programmerare producerat.
Sårbar kodsnuttExemplet visar Copilotgenererad C-kod som innehåller flera sårbarheter:
|