Zkoumání dopadu asistentů umělé inteligence, jako je GitHub Copilot, na zabezpečení kódu

Skupina výzkumníků ze Stanfordské univerzity studovala vliv používání inteligentních asistentů při psaní kódu na výskyt zranitelností v kódu. Zvažovali jsme řešení založená na platformě strojového učení OpenAI Codex, jako je GitHub Copilot, která umožňují generovat poměrně složité bloky kódu až po hotové funkce. Obavy souvisejí se skutečností, že jelikož byl k trénování modelu strojového učení použit skutečný kód z veřejných úložišť GitHub, včetně těch obsahujících zranitelnosti, syntetizovaný kód může opakovat chyby a navrhovat kód, který obsahuje zranitelnosti, a také nebere v úvahu nutnost provádět dodatečné kontroly při zpracování externích dat.

Studie se zúčastnilo 47 dobrovolníků s různými zkušenostmi v programování – od studentů po profesionály s desetiletou praxí. Účastníci byli rozděleni do dvou skupin – experimentální (33 osob) a kontrolní (14 osob). Obě skupiny měly přístup ke všem knihovnám a internetovým zdrojům, včetně použití hotových příkladů ze Stack Overflow. Experimentální skupina dostala příležitost využít asistenta AI.

Každý účastník dostal 5 úkolů souvisejících s psaním kódu, ve kterých je potenciálně snadné dělat chyby, které vedou ke zranitelnosti. Jednalo se například o úkoly týkající se psaní šifrovacích a dešifrovacích funkcí, používání digitálních podpisů, zpracování dat spojených s vytvářením cest k souborům nebo SQL dotazů, manipulace s velkými čísly v kódu C, zpracování vstupů zobrazovaných na webových stránkách. Abychom zvážili dopad programovacích jazyků na bezpečnost kódu získaného při použití asistentů AI, zahrnovala zadání Python, C a JavaScript.

V důsledku toho bylo zjištěno, že účastníci, kteří používali inteligentního asistenta AI založeného na modelu codex-davinci-002, produkovali výrazně méně bezpečný kód než účastníci, kteří asistenta AI nepoužívali. Obecně jen 67 % účastníků ve skupině využívající asistenta AI bylo schopno poskytnout správný a bezpečný kód, zatímco ve druhé skupině to bylo 79 %.

Současně byly obráceny ukazatele sebevědomí - účastníci, kteří používali asistenta AI, věřili, že jejich kód bude bezpečnější než kód účastníků z druhé skupiny. Kromě toho bylo zaznamenáno, že účastníci, kteří méně důvěřovali asistentovi AI a trávili více času analýzou a prováděním změn v daných nápovědách, způsobili méně zranitelností v kódu.

Například kód zkopírovaný z kryptografických knihoven obsahoval bezpečnější výchozí hodnoty parametrů než kód navržený asistentem AI. Při použití asistenta AI byla také opravena volba méně spolehlivých šifrovacích algoritmů a absence ověřování vrácených hodnot. V úloze manipulace s čísly C měl kód napsaný pomocí asistenta AI více chyb, které vedly k přetečení celého čísla.

Kromě toho lze zaznamenat podobnou studii skupiny z New York University, provedenou v listopadu za účasti 58 studentů, kteří byli požádáni o implementaci struktury pro zpracování nákupního seznamu v C. Výsledky ukázaly zanedbatelný dopad asistenta AI na zabezpečení kódu – uživatelé, kteří používali asistenta AI, dělali v průměru asi o 10 % více chyb souvisejících se zabezpečením.

Zkoumání dopadu asistentů umělé inteligence, jako je GitHub Copilot, na zabezpečení kódu


Zdroj: opennet.ru

Přidat komentář