AI-assistentide nagu GitHub Copilot mõju uurimine koodi turvalisusele

Stanfordi ülikooli teadlaste rühm uuris koodi kirjutamisel intelligentsete assistentide kasutamise mõju koodi haavatavuste ilmnemisele. Kaalusime OpenAI Codexi masinõppeplatvormil põhinevaid lahendusi, näiteks GitHub Copilot, mis võimaldavad genereerida üsna keerulisi koodiplokke kuni valmisfunktsioonideni välja. Mure on seotud asjaoluga, et kuna masinõppemudeli koolitamiseks kasutati reaalset koodi avalikest GitHubi hoidlatest, sealhulgas turvaauke sisaldavatest, võib sünteesitud kood korrata vigu ja soovitada turvaauke sisaldavat koodi ega võta ka arvesse vajadus teostada täiendavaid kontrolle välisandmete töötlemisel.

Uuringus osales 47 erineva programmeerimiskogemusega vabatahtlikku – tudengitest kuni kümneaastase kogemusega professionaalideni. Osalejad jagati kahte rühma – eksperimentaal- (33 inimest) ja kontrollrühma (14 inimest). Mõlemal rühmal oli juurdepääs kõikidele raamatukogudele ja Interneti-ressurssidele, sealhulgas Stack Overflow valmis näidete abil. Eksperimentaalrühmale anti võimalus kasutada AI-assistenti.

Igale osalejale anti 5 koodi kirjutamisega seotud ülesannet, milles on potentsiaalselt lihtne teha vigu, mis viivad haavatavustesse. Näiteks olid ülesanded krüpteerimis- ja dekrüpteerimisfunktsioonide kirjutamise, digitaalallkirjade kasutamise, failiteede või SQL-päringute moodustamisega seotud andmete töötlemise, C-koodis suurte arvude manipuleerimise, veebilehtedel kuvatava sisendi töötlemise kohta. Arvestades programmeerimiskeelte mõju AI-assistentide kasutamisel saadud koodi turvalisusele, hõlmasid ülesanded Pythonit, C-d ja JavaScripti.

Selle tulemusena leiti, et osalejad, kes kasutasid intelligentset AI abilist, mis põhines codex-davinci-002 mudelil, tootsid oluliselt vähem turvalist koodi kui osalejad, kes ei kasutanud tehisintellekti abilist. Üldiselt suutis AI-assistendi kasutavas rühmas õige ja turvalise koodi anda vaid 67% osalejatest, samas kui teises rühmas oli see näitaja 79%.

Samal ajal olid enesehinnangunäitajad vastupidised - AI-assistendi kasutanud osalejad uskusid, et nende kood on turvalisem kui teise rühma osalejate oma. Lisaks märgiti, et osalejad, kes usaldasid tehisintellekti abilist vähem ja kulutasid rohkem aega antud vihjete sõelumisele ja muudatuste tegemisele, tekitasid koodis vähem turvaauke.

Näiteks sisaldas krüptograafilistest raamatukogudest kopeeritud kood turvalisemaid parameetrite vaikeväärtusi kui AI-assistendi pakutud kood. Samuti fikseeriti AI-assistendi kasutamisel vähem usaldusväärsete krüpteerimisalgoritmide valik ja tagastatud väärtuste autentimise puudumine. C-numbriga manipuleerimise ülesandes oli AI-assistendi abil kirjutatud koodil rohkem vigu, mille tulemuseks oli täisarvude ületäitumine.

Lisaks võib ära märkida novembris New Yorgi ülikooli grupi sarnase uuringu, milles osales 58 üliõpilast, kellel paluti rakendada C-keelse ostunimekirja töötlemise struktuur. Tulemused näitasid, et AI-assistendi mõju koodi turvalisusele on tühine – AI-abilist kasutanud kasutajad tegid keskmiselt umbes 10% rohkem turvalisusega seotud vigu.

AI-assistentide nagu GitHub Copilot mõju uurimine koodi turvalisusele


Allikas: opennet.ru

Lisa kommentaar