Kutatás az AI-asszisztensek, például a GitHub Copilot kódbiztonságra gyakorolt ​​hatásáról

A Stanford Egyetem kutatóiból álló csoport az intelligens kódolási asszisztensek használatának hatását vizsgálta a kódban található biztonsági rések megjelenésére. Az OpenAI Codex gépi tanulási platformon alapuló megoldásokat, például a GitHub Copilotot fontolgatták, amelyek meglehetősen összetett kódblokkok generálását teszik lehetővé, egészen a kész funkciókig. Az aggodalomra ad okot, hogy mivel a nyilvános GitHub adattárakból származó valódi kódot használnak, beleértve a sebezhetőséget tartalmazókat is, a gépi tanulási modell betanításához, a szintetizált kód megismételheti a hibákat és olyan kódot sugallhat, amely sebezhetőséget tartalmaz, és nem veszi figyelembe a végrehajtás szükségességét. további ellenőrzések külső adatok feldolgozásakor.

A vizsgálatban 47 önkéntes vett részt, akik különböző tapasztalattal rendelkeznek a programozás terén – a diákoktól a tíz éves tapasztalattal rendelkező szakemberekig. A résztvevőket két csoportra osztották: kísérleti (33 fő) és kontroll (14 fő) csoportra. Mindkét csoport hozzáfért bármely könyvtárhoz és internetes forráshoz, beleértve a Stack Overflow kész példáinak használatát is. A kísérleti csoport lehetőséget kapott egy AI-asszisztens használatára.

Minden résztvevő 5 olyan kódírással kapcsolatos feladatot kapott, amelyekben potenciálisan könnyű hibákat elkövetni, amelyek sebezhetőséghez vezetnek. Voltak például titkosítási és visszafejtési funkciók írása, digitális aláírás használata, fájlútvonalak vagy SQL lekérdezések kialakításában szerepet játszó adatok feldolgozása, nagy számok manipulálása C kódban, weboldalakon megjelenő bemenetek feldolgozása. A programozási nyelveknek az AI-asszisztensek használatakor előállított kód biztonságára gyakorolt ​​hatásának figyelembevételéhez a feladatok a Python, a C és a JavaScript nyelvekre vonatkoztak.

Ennek eredményeként azt találták, hogy azok a résztvevők, akik a codex-davinci-002 modellen alapuló intelligens AI-asszisztenst használták, lényegesen kevésbé biztonságos kódot készítettek, mint azok, akik nem használtak AI-asszisztenst. Összességében az AI-asszisztenst használó csoport résztvevőinek mindössze 67%-a tudott helyes és biztonságos kódot adni, míg a másik csoportban ez az arány 79%.

Ugyanakkor az önértékelési mutatók fordítottak voltak - az AI-asszisztenst használó résztvevők úgy vélték, hogy kódjuk biztonságosabb lesz, mint a másik csoport résztvevőié. Ezenkívül megjegyezték, hogy azok a résztvevők, akik kevésbé bíztak az AI-asszisztensben, és több időt töltöttek a kapott utasítások elemzésével és azok módosításával, kevesebb sebezhetőséget okoztak a kódban.

Például a kriptográfiai könyvtárakból másolt kód biztonságosabb alapértelmezett paraméterértékeket tartalmazott, mint az AI-asszisztens által javasolt kód. Ezenkívül az AI-asszisztens használatakor a kevésbé megbízható titkosítási algoritmusok kiválasztását és a visszaadott értékek hitelesítési ellenőrzésének hiányát rögzítették. A C-beli számmanipulációval járó feladatban több hiba történt az AI-asszisztens segítségével írt kódban, ami egész számok túlcsordulásához vezetett.

Emellett megjegyezhető egy hasonló tanulmány, amelyet a New York-i Egyetem egy csoportja készített novemberben, amelyben 58 diák vett részt, akiket felkértek egy C nyelvű bevásárlólista feldolgozására szolgáló struktúra megvalósítására. Az eredmények azt mutatták, hogy az AI-asszisztens csekély hatással volt a kódbiztonságra – az AI-asszisztenst használó felhasználók átlagosan körülbelül 10%-kal több biztonsági hibát követtek el.

Kutatás az AI-asszisztensek, például a GitHub Copilot kódbiztonságra gyakorolt ​​hatásáról


Forrás: opennet.ru

Hozzászólás