Výskum vplyvu asistentov AI, ako je GitHub Copilot, na zabezpečenie kódu

Tím výskumníkov zo Stanfordskej univerzity skúmal vplyv používania inteligentných asistentov kódovania na výskyt zraniteľností v kóde. Zvažovali sa riešenia založené na platforme strojového učenia OpenAI Codex, ako napríklad GitHub Copilot, ktoré umožňujú generovanie pomerne zložitých blokov kódu až po hotové funkcie. Obava spočíva v tom, že keďže sa na trénovanie modelu strojového učenia používa skutočný kód z verejných úložísk GitHub, vrátane tých, ktoré obsahujú zraniteľné miesta, syntetizovaný kód môže opakovať chyby a navrhovať kód, ktorý obsahuje zraniteľné miesta, a tiež neberie do úvahy potrebu vykonať dodatočné kontroly pri spracovaní externých údajov.

Do štúdie bolo zapojených 47 dobrovoľníkov s rôznymi skúsenosťami v programovaní – od študentov až po profesionálov s desaťročnou praxou. Účastníci boli rozdelení do dvoch skupín – experimentálnej (33 osôb) a kontrolnej (14 osôb). Obe skupiny mali prístup k akýmkoľvek knižniciam a internetovým zdrojom, vrátane možnosti používať hotové príklady zo Stack Overflow. Experimentálna skupina dostala možnosť využiť asistenta AI.

Každý účastník dostal 5 úloh súvisiacich s písaním kódu, v ktorých je potenciálne ľahké robiť chyby, ktoré vedú k zraniteľnostiam. Išlo napríklad o úlohy týkajúce sa zapisovania šifrovacích a dešifrovacích funkcií, používania digitálnych podpisov, spracovania údajov zapojených do vytvárania ciest k súborom alebo dotazov SQL, manipulácie s veľkými číslami v kóde C, spracovania vstupov zobrazovaných na webových stránkach. Aby sa zvážil vplyv programovacích jazykov na bezpečnosť kódu vytvoreného pri použití asistentov AI, úlohy pokrývali Python, C a JavaScript.

Výsledkom bolo zistenie, že účastníci, ktorí používali inteligentného asistenta AI na základe modelu codex-davinci-002, pripravili výrazne menej bezpečný kód ako účastníci, ktorí asistenta AI nepoužívali. Celkovo len 67 % účastníkov v skupine, ktorá používala asistenta AI, dokázalo poskytnúť správny a bezpečný kód, zatiaľ čo v druhej skupine to bolo 79 %.

Ukazovatele sebaúcty boli zároveň opačné - účastníci, ktorí používali asistenta AI, verili, že ich kód bude bezpečnejší ako kód účastníkov z druhej skupiny. Okrem toho sa zistilo, že účastníci, ktorí menej dôverovali asistentovi AI a trávili viac času analýzou poskytnutých výziev a vykonávaním ich zmien, spôsobili menej zraniteľností v kóde.

Napríklad kód skopírovaný z kryptografických knižníc obsahoval bezpečnejšie predvolené hodnoty parametrov než kód navrhnutý asistentom AI. Pri použití asistenta AI bol tiež zaznamenaný výber menej spoľahlivých šifrovacích algoritmov a nedostatok overovacích kontrol vrátených hodnôt. V úlohe zahŕňajúcej manipuláciu s číslami v C sa v kóde napísanom pomocou asistenta AI urobilo viac chýb, čo viedlo k pretečeniu celého čísla.

Okrem toho si môžeme všimnúť podobnú štúdiu skupiny z New York University, ktorá sa uskutočnila v novembri a zahŕňala 58 študentov, ktorí boli požiadaní, aby implementovali štruktúru na spracovanie nákupného zoznamu v jazyku C. Výsledky ukázali malý vplyv asistenta AI na bezpečnosť kódu – používatelia, ktorí používali asistenta AI, urobili v priemere o 10 % viac chýb súvisiacich so zabezpečením.

Výskum vplyvu asistentov AI, ako je GitHub Copilot, na zabezpečenie kódu


Zdroj: opennet.ru

Pridať komentár