AI padėjėjų, tokių kaip „GitHub Copilot“, įtakos kodo saugai tyrimai

Stenfordo universiteto mokslininkų komanda ištyrė intelektualių kodavimo asistentų naudojimo poveikį kodo pažeidžiamumui. Buvo svarstomi sprendimai, pagrįsti „OpenAI Codex“ mašininio mokymosi platforma, pavyzdžiui, „GitHub Copilot“, kurie leidžia generuoti gana sudėtingus kodo blokus iki paruoštų funkcijų. Susirūpinimą kelia tai, kad kadangi mašininio mokymosi modeliui mokyti naudojamas tikras kodas iš viešųjų GitHub saugyklų, įskaitant tas, kuriose yra pažeidžiamumų, susintetintas kodas gali kartoti klaidas ir pasiūlyti kodą, kuriame yra pažeidžiamumų, taip pat neatsižvelgiama į poreikį atlikti papildomos patikros apdorojant išorinius duomenis.

Tyrime dalyvavo 47 savanoriai, turintys skirtingą programavimo patirtį – nuo ​​studentų iki dešimties metų patirtį turinčių profesionalų. Dalyviai buvo suskirstyti į dvi grupes – eksperimentinę (33 žmonės) ir kontrolinę (14 žmonių). Abi grupės turėjo prieigą prie bet kokių bibliotekų ir interneto išteklių, įskaitant galimybę naudoti paruoštus pavyzdžius iš Stack Overflow. Eksperimentinei grupei buvo suteikta galimybė naudotis AI asistentu.

Kiekvienas dalyvis gavo 5 užduotis, susijusias su kodo rašymu, kuriose galimai lengva padaryti klaidų, kurios veda į pažeidžiamumą. Pavyzdžiui, buvo užduočių, susijusių su šifravimo ir iššifravimo funkcijų rašymu, skaitmeninių parašų naudojimu, duomenų, susijusių su failų kelių ar SQL užklausų formavimu, apdorojimu, manipuliavimu dideliais skaičiais C kode, tinklalapiuose rodomų įvesties apdorojimu. Siekiant atsižvelgti į programavimo kalbų įtaką kodo, sukurto naudojant AI asistentus, saugumui, užduotys apėmė Python, C ir JavaScript.

Dėl to buvo nustatyta, kad dalyviai, kurie naudojo intelektualųjį AI asistentą, pagrįstą Codex-davinci-002 modeliu, paruošė žymiai mažiau saugų kodą nei dalyviai, kurie nenaudojo AI asistento. Apskritai, tik 67% dalyvių grupėje, kuri naudojo AI asistentą, galėjo pateikti teisingą ir saugų kodą, o kitoje grupėje šis skaičius siekė 79%.

Tuo pačiu metu savigarbos rodikliai buvo priešingi – AI asistentą naudoję dalyviai tikėjo, kad jų kodas bus saugesnis nei kitos grupės dalyvių. Be to, buvo pastebėta, kad dalyviai, kurie mažiau pasitikėjo AI asistentu ir praleido daugiau laiko analizuodami pateiktus raginimus ir keisdami juos, sumažino kodo pažeidžiamumą.

Pavyzdžiui, iš kriptografinių bibliotekų nukopijuotame kode buvo saugesnės numatytosios parametrų reikšmės nei AI asistento pasiūlytame kode. Be to, naudojant AI asistentą, buvo užfiksuotas mažiau patikimų šifravimo algoritmų pasirinkimas ir grąžintų verčių autentifikavimo patikrinimų nebuvimas. Atliekant užduotį, apimančią manipuliavimą skaičiais C, kode, parašytame naudojant AI asistentą, buvo padaryta daugiau klaidų, dėl kurių atsirado sveikųjų skaičių perpildymas.

Be to, galime atkreipti dėmesį į panašų tyrimą, kurį atliko grupė iš Niujorko universiteto, atliktą lapkritį, kuriame dalyvavo 58 studentai, kurių buvo paprašyta įdiegti pirkinių sąrašo apdorojimo C kalba struktūrą. Rezultatai parodė nedidelį AI asistento poveikį kodo saugumui – naudotojai, kurie naudojo AI asistentą, padarė vidutiniškai apie 10 % daugiau su sauga susijusių klaidų.

AI padėjėjų, tokių kaip „GitHub Copilot“, įtakos kodo saugai tyrimai


Šaltinis: opennet.ru

Добавить комментарий