Izpētiet AI palīgu, piemēram, GitHub Copilot, ietekmi uz koda drošību

Stenfordas universitātes pētnieku komanda pētīja viedo kodēšanas palīgu izmantošanas ietekmi uz koda ievainojamību parādīšanos. Tika apsvērti risinājumi, kuru pamatā ir OpenAI Codex mašīnmācīšanās platforma, piemēram, GitHub Copilot, kas ļauj ģenerēt diezgan sarežģītus kodu blokus līdz pat gatavām funkcijām. Bažas rada tas, ka, tā kā mašīnmācīšanās modeļa apmācīšanai tiek izmantots reāls kods no publiskajiem GitHub krātuvēm, tostarp tiem, kas satur ievainojamības, sintezētais kods var atkārtot kļūdas un ieteikt kodu, kurā ir ievainojamības, kā arī neņem vērā nepieciešamību veikt papildu pārbaudes, apstrādājot ārējos datus.

Pētījumā tika iesaistīti 47 brīvprātīgie ar dažādu programmēšanas pieredzi – no studentiem līdz profesionāļiem ar desmit gadu pieredzi. Dalībnieki tika sadalīti divās grupās – eksperimentālajā (33 cilvēki) un kontroles (14 cilvēki). Abām grupām bija pieejamas jebkuras bibliotēkas un interneta resursi, tostarp iespēja izmantot gatavus piemērus no Stack Overflow. Eksperimentālajai grupai tika dota iespēja izmantot AI palīgu.

Katram dalībniekam tika doti 5 ar koda rakstīšanu saistīti uzdevumi, kuros potenciāli ir viegli pieļaut kļūdas, kas noved pie ievainojamībām. Piemēram, bija uzdevumi par šifrēšanas un atšifrēšanas funkciju rakstīšanu, digitālo parakstu izmantošanu, datu apstrādi, kas saistīti ar failu ceļu vai SQL vaicājumu veidošanu, manipulācijām ar lieliem skaitļiem C kodā, tīmekļa lapās parādīto ievades apstrādi. Lai apsvērtu programmēšanas valodu ietekmi uz radītā koda drošību, izmantojot AI palīgus, uzdevumi aptvēra Python, C un JavaScript.

Rezultātā tika konstatēts, ka dalībnieki, kuri izmantoja viedo AI palīgu, kura pamatā bija Codex-davinci-002 modelis, sagatavoja ievērojami mazāk drošu kodu nekā dalībnieki, kuri neizmantoja AI palīgu. Kopumā tikai 67% dalībnieku grupā, kas izmantoja AI palīgu, spēja nodrošināt pareizu un drošu kodu, savukārt citā grupā šis rādītājs bija 79%.

Tajā pašā laikā pašcieņas rādītāji bija pretēji - dalībnieki, kuri izmantoja AI palīgu, uzskatīja, ka viņu kods būs drošāks nekā dalībnieku no otras grupas. Turklāt tika atzīmēts, ka dalībnieki, kuri mazāk uzticējās AI asistentam un pavadīja vairāk laika, analizējot sniegtās uzvednes un veicot izmaiņas tajos, radīja mazāk ievainojamību kodā.

Piemēram, kods, kas kopēts no kriptogrāfijas bibliotēkām, saturēja drošākas noklusējuma parametru vērtības nekā AI palīga ieteiktais kods. Tāpat, izmantojot AI palīgu, tika reģistrēta mazāk uzticamu šifrēšanas algoritmu izvēle un atgriezto vērtību autentifikācijas pārbaužu trūkums. Uzdevumā, kas saistīts ar skaitļu manipulāciju C valodā, kodā, kas rakstīts, izmantojot AI asistentu, tika pieļautas vairāk kļūdu, kā rezultātā radās vesela skaitļa pārpilde.

Turklāt mēs varam atzīmēt līdzīgu pētījumu, ko veica Ņujorkas Universitātes grupa, kas tika veikta novembrī, iesaistot 58 studentus, kuriem tika lūgts ieviest struktūru iepirkumu saraksta apstrādei C valodā. Rezultāti parādīja nelielu AI palīga ietekmi uz koda drošību — lietotāji, kuri izmantoja AI palīgu, vidēji pieļāva par aptuveni 10% vairāk ar drošību saistītu kļūdu.

Izpētiet AI palīgu, piemēram, GitHub Copilot, ietekmi uz koda drošību


Avots: opennet.ru

Pievieno komentāru