Forskning om effekten av AI-assistenter som GitHub Copilot på kodsäkerhet

Ett team av forskare från Stanford University studerade effekten av att använda intelligenta kodningsassistenter på uppkomsten av sårbarheter i kod. Lösningar baserade på OpenAI Codex maskininlärningsplattform övervägdes, såsom GitHub Copilot, som tillåter generering av ganska komplexa kodblock, upp till färdiga funktioner. Oron är att eftersom riktig kod från offentliga GitHub-förråd, inklusive de som innehåller sårbarheter, används för att träna maskininlärningsmodellen, kan den syntetiserade koden upprepa fel och föreslå kod som innehåller sårbarheter, och inte heller tar hänsyn till behovet av att utföra ytterligare kontroller vid behandling av externa uppgifter.

47 volontärer med varierande erfarenhet av programmering deltog i studien – från studenter till yrkesverksamma med tio års erfarenhet. Deltagarna delades in i två grupper - experimentella (33 personer) och kontrollgrupper (14 personer). Båda grupperna hade tillgång till alla bibliotek och internetresurser, inklusive möjligheten att använda färdiga exempel från Stack Overflow. Experimentgruppen fick möjlighet att använda en AI-assistent.

Varje deltagare fick 5 uppgifter relaterade till att skriva kod där det är potentiellt lätt att göra misstag som leder till sårbarheter. Det fanns till exempel uppgifter om att skriva krypterings- och dekrypteringsfunktioner, använda digitala signaturer, bearbeta data involverade i bildandet av filsökvägar eller SQL-frågor, manipulera stora siffror i C-kod, bearbeta indata som visas på webbsidor. För att överväga inverkan av programmeringsspråk på säkerheten för kod som produceras när du använder AI-assistenter, omfattade uppdragen Python, C och JavaScript.

Som ett resultat visade det sig att deltagare som använde en intelligent AI-assistent baserad på codex-davinci-002-modellen förberedde betydligt mindre säker kod än deltagare som inte använde en AI-assistent. Totalt sett kunde endast 67% av deltagarna i gruppen som använde AI-assistenten tillhandahålla korrekt och säker kod, medan i den andra gruppen var denna siffra 79%.

Samtidigt var självkänslasindikatorerna de motsatta - deltagare som använde AI-assistenten trodde att deras kod skulle vara säkrare än den för deltagare från den andra gruppen. Dessutom noterades att deltagare som litade mindre på AI-assistenten och ägnade mer tid åt att analysera de givna uppmaningarna och göra ändringar i dem gjorde färre sårbarheter i koden.

Till exempel, kod kopierad från kryptografiska bibliotek innehöll säkrare standardparametervärden än kod som föreslagits av AI-assistenten. Vid användning av AI-assistenten registrerades också valet av mindre tillförlitliga krypteringsalgoritmer och avsaknaden av autentiseringskontroller av returnerade värden. I en uppgift som involverade nummermanipulation i C gjordes fler fel i koden som skrevs med hjälp av AI-assistenten, vilket ledde till heltalsspill.

Dessutom kan vi notera en liknande studie av en grupp från New York University, genomförd i november, som involverade 58 studenter som ombads implementera en struktur för att bearbeta en inköpslista på C-språk. Resultaten visade liten inverkan av AI-assistenten på kodsäkerhet - användare som använde AI-assistenten gjorde i genomsnitt cirka 10 % fler säkerhetsrelaterade fel.

Forskning om effekten av AI-assistenter som GitHub Copilot på kodsäkerhet


Källa: opennet.ru

Lägg en kommentar