Istraživanje uticaja AI asistenata kao što je GitHub Copilot na sigurnost koda

Tim istraživača sa Univerziteta Stanford proučavao je uticaj upotrebe inteligentnih pomoćnika za kodiranje na pojavu ranjivosti u kodu. Razmatrana su rješenja bazirana na OpenAI Codex platformi za strojno učenje, poput GitHub Copilot, koja omogućavaju generiranje prilično složenih blokova koda, sve do gotovih funkcija. Zabrinutost je da budući da se pravi kod iz javnih GitHub repozitorija, uključujući i ona koja sadrže ranjivosti, koristi za obuku modela mašinskog učenja, sintetizovani kod može ponoviti greške i predložiti kod koji sadrži ranjivosti, a takođe ne uzima u obzir potrebu da se izvrši dodatne provjere prilikom obrade eksternih podataka.

U studiju je bilo uključeno 47 volontera sa različitim iskustvom u programiranju - od studenata do profesionalaca sa desetogodišnjim iskustvom. Učesnici su podijeljeni u dvije grupe - eksperimentalnu (33 osobe) i kontrolnu (14 osoba). Obje grupe su imale pristup svim bibliotekama i Internet resursima, uključujući mogućnost korištenja gotovih primjera iz Stack Overflowa. Eksperimentalna grupa je dobila priliku da koristi AI asistenta.

Svaki učesnik je dobio 5 zadataka vezanih za pisanje koda u kojem je potencijalno lako napraviti greške koje dovode do ranjivosti. Na primjer, bilo je zadataka pisanja funkcija šifriranja i dešifriranja, korištenja digitalnih potpisa, obrade podataka uključenih u formiranje putanja datoteka ili SQL upita, manipulacije velikim brojevima u C kodu, obrade unosa prikazanih na web stranicama. Da bi se razmotrio uticaj programskih jezika na sigurnost koda proizvedenog prilikom korišćenja AI pomoćnika, zadaci su pokrivali Python, C i JavaScript.

Kao rezultat toga, otkriveno je da su učesnici koji su koristili inteligentni AI asistent zasnovan na modelu codex-davinci-002 pripremili znatno manje siguran kod od učesnika koji nisu koristili AI asistenta. Sveukupno, samo 67% učesnika u grupi koja je koristila AI asistenta bilo je u stanju dati ispravan i siguran kod, dok je u drugoj grupi ova brojka iznosila 79%.

Istovremeno, pokazatelji samopoštovanja bili su suprotni - učesnici koji su koristili AI asistenta vjerovali su da će njihov kod biti sigurniji od koda sudionika iz druge grupe. Osim toga, primjećeno je da su učesnici koji su manje vjerovali AI asistentu i proveli više vremena analizirajući date upute i unoseći promjene u njih, napravili manje ranjivosti u kodu.

Na primjer, kod kopiran iz kriptografskih biblioteka sadržavao je sigurnije zadane vrijednosti parametara od koda koji je predložio AI asistent. Također, prilikom korištenja AI asistenta zabilježen je izbor manje pouzdanih algoritama šifriranja i nedostatak provjera autentičnosti vraćenih vrijednosti. U zadatku koji uključuje manipulaciju brojevima u C, napravljeno je više grešaka u kodu napisanom pomoću AI asistenta, što je dovelo do prekoračenja cijelog broja.

Osim toga, možemo primijetiti sličnu studiju grupe sa Univerziteta New York, sprovedenu u novembru, u kojoj je učestvovalo 58 studenata od kojih je zatraženo da implementiraju strukturu za obradu liste za kupovinu na jeziku C. Rezultati su pokazali mali utjecaj AI asistenta na sigurnost koda - korisnici koji su koristili AI asistenta napravili su u prosjeku oko 10% više grešaka vezanih za sigurnost.

Istraživanje uticaja AI asistenata kao što je GitHub Copilot na sigurnost koda


izvor: opennet.ru

Dodajte komentar