Raziščite vpliv pomočnikov AI, kot je GitHub Copilot, na varnost kode

Skupina raziskovalcev z univerze Stanford je proučevala vpliv uporabe inteligentnih pomočnikov kodiranja na pojav ranljivosti v kodi. Upoštevane so bile rešitve, ki temeljijo na platformi za strojno učenje OpenAI Codex, kot je GitHub Copilot, ki omogoča generiranje dokaj kompleksnih kodnih blokov, vse do že pripravljenih funkcij. Ker se za usposabljanje modela strojnega učenja uporablja prava koda iz javnih repozitorijev GitHub, vključno s tistimi, ki vsebujejo ranljivosti, lahko sintetizirana koda ponavlja napake in predlaga kodo, ki vsebuje ranljivosti, poleg tega pa ne upošteva potrebe po izvedbi. dodatna preverjanja pri obdelavi zunanjih podatkov.

V raziskavo je bilo vključenih 47 prostovoljcev z različnimi izkušnjami na področju programiranja - od študentov do profesionalcev z desetletnimi izkušnjami. Udeleženci so bili razdeljeni v dve skupini - eksperimentalno (33 oseb) in kontrolno (14 oseb). Obe skupini sta imeli dostop do vseh knjižnic in internetnih virov, vključno z možnostjo uporabe že pripravljenih primerov iz Stack Overflow. Eksperimentalna skupina je dobila možnost uporabe pomočnika AI.

Vsak udeleženec je dobil 5 nalog, povezanih s pisanjem kode, v kateri je potencialno enostavno narediti napake, ki vodijo do ranljivosti. Bile so na primer naloge o pisanju funkcij za šifriranje in dešifriranje, uporabi digitalnih podpisov, obdelavi podatkov, vključenih v oblikovanje poti datotek ali poizvedb SQL, manipulaciji velikih števil v kodi C, obdelavi vnosa, prikazanega na spletnih straneh. Da bi razmislili o vplivu programskih jezikov na varnost kode, proizvedene pri uporabi pomočnikov AI, so naloge zajemale Python, C in JavaScript.

Posledično je bilo ugotovljeno, da so udeleženci, ki so uporabljali inteligentnega pomočnika AI, ki temelji na modelu codex-davinci-002, pripravili znatno manj varno kodo kot udeleženci, ki niso uporabljali pomočnika AI. Na splošno je samo 67% udeležencev v skupini, ki je uporabljala pomočnika AI, lahko zagotovilo pravilno in varno kodo, medtem ko je v drugi skupini ta številka znašala 79%.

Hkrati so bili kazalniki samozavesti nasprotni - udeleženci, ki so uporabljali pomočnika AI, so verjeli, da bi bila njihova koda bolj varna kot koda udeležencev iz druge skupine. Poleg tega je bilo ugotovljeno, da so udeleženci, ki so manj zaupali pomočniku AI in porabili več časa za analiziranje danih pozivov in spreminjanje le-teh, naredili manj ranljivosti v kodi.

Na primer, koda, kopirana iz kriptografskih knjižnic, je vsebovala varnejše privzete vrednosti parametrov kot koda, ki jo je predlagal pomočnik AI. Tudi pri uporabi pomočnika AI je bila zabeležena izbira manj zanesljivih šifrirnih algoritmov in pomanjkanje preverjanj pristnosti vrnjenih vrednosti. Pri nalogi, ki je vključevala manipulacijo s številkami v C, je bilo v kodi, napisani s pomočnikom za umetno inteligenco, narejenih več napak, kar je vodilo do prelivanja celih števil.

Poleg tega lahko opazimo podobno raziskavo skupine z Univerze v New Yorku, ki je bila izvedena novembra in je vključevala 58 študentov, ki so morali implementirati strukturo za obdelavo nakupovalnega seznama v jeziku C. Rezultati so pokazali majhen vpliv pomočnika AI na varnost kode – uporabniki, ki so uporabljali pomočnika AI, so v povprečju naredili približno 10 % več napak, povezanih z varnostjo.

Raziščite vpliv pomočnikov AI, kot je GitHub Copilot, na varnost kode


Vir: opennet.ru

Dodaj komentar