Tutki GitHub Copilotin kaltaisten tekoälyapulaisten vaikutusta koodin turvallisuuteen

Ryhmä Stanfordin yliopiston tutkijoita tutki älykkäiden avustajien käyttöä koodia kirjoitettaessa koodin haavoittuvuuksien esiintymiseen. Harkitsimme OpenAI Codex -koneoppimisalustaan ​​perustuvia ratkaisuja, kuten GitHub Copilot, joiden avulla voit luoda melko monimutkaisia ​​koodilohkoja valmiisiin toimintoihin asti. Huolet liittyvät siihen, että koska koneoppimismallin kouluttamiseen käytettiin todellista koodia julkisista GitHub-tietovarastoista, mukaan lukien haavoittuvuuksia sisältävistä, syntetisoitu koodi saattaa toistaa virheitä ja ehdottaa haavoittuvuuksia sisältävää koodia, eikä se myöskään ota huomioon tarve suorittaa lisätarkastuksia käsiteltäessä ulkoisia tietoja.

Tutkimukseen osallistui 47 vapaaehtoista, joilla oli erilainen ohjelmointikokemus – opiskelijoista kymmenen vuoden kokemuksella ammattilaisiin. Osallistujat jaettiin kahteen ryhmään - kokeelliseen (33 henkilöä) ja kontrolliin (14 henkilöä). Molemmilla ryhmillä oli pääsy kaikkiin kirjastoihin ja Internet-resursseihin, mukaan lukien Stack Overflown valmiit esimerkit. Koeryhmälle annettiin mahdollisuus käyttää tekoälyassistenttia.

Jokaiselle osallistujalle annettiin 5 koodin kirjoittamiseen liittyvää tehtävää, joissa on mahdollisesti helppo tehdä haavoittuvuuksiin johtavia virheitä. Tehtäviä oli esimerkiksi salaus- ja salauksenpurkutoimintojen kirjoittamisessa, digitaalisten allekirjoitusten käyttämisessä, tiedostopolkujen tai SQL-kyselyjen muodostamiseen liittyvien tietojen käsittelyssä, suurten lukujen käsittelyssä C-koodissa, verkkosivuilla näkyvien syötteiden käsittelyssä. Tarkastellaksemme ohjelmointikielten vaikutusta tekoälyassistentteja käytettäessä saadun koodin turvallisuuteen, tehtävät kattoivat Pythonin, C:n ja JavaScriptin.

Tuloksena havaittiin, että osanottajat, jotka käyttivät Codex-davinci-002-malliin perustuvaa älykästä tekoälyavustajaa, tuottivat huomattavasti vähemmän turvallista koodia kuin osallistujat, jotka eivät käyttäneet tekoälyassistenttia. Yleensä vain 67 % AI-assistenttia käyttävistä ryhmän osallistujista pystyi antamaan oikean ja turvallisen koodin, kun taas toisessa ryhmässä tämä luku oli 79 %.

Samaan aikaan itsetuntoindikaattorit käännettiin - AI-avustajaa käyttäneet osallistujat uskoivat, että heidän koodinsa olisi turvallisempi kuin toisen ryhmän osallistujien koodi. Lisäksi todettiin, että osallistujat, jotka luottivat tekoälyassistenttiin vähemmän ja käyttivät enemmän aikaa annettujen vihjeiden jäsentämiseen ja muutosten tekemiseen, tekivät vähemmän haavoittuvuuksia koodissa.

Esimerkiksi kryptografisista kirjastoista kopioitu koodi sisälsi turvallisempia oletusparametriarvoja kuin AI-avustajan ehdottama koodi. Myös AI-avustajaa käytettäessä vähemmän luotettavien salausalgoritmien valinta ja palautettujen arvojen todennuksen puuttuminen korjattiin. C-numeronkäsittelytehtävässä AI-avustajalla kirjoitetussa koodissa oli enemmän virheitä, jotka johtivat kokonaislukujen ylivuotoon.

Lisäksi voidaan mainita New Yorkin yliopiston ryhmän marraskuussa tekemä vastaava tutkimus, johon osallistui 58 opiskelijaa, joita pyydettiin toteuttamaan C-kielen ostoslistan käsittelyrakenne. Tulokset osoittivat mitätöntä tekoäly-avustajan vaikutusta koodin turvallisuuteen - tekoälyassistenttia käyttäneet käyttäjät tekivät keskimäärin noin 10 % enemmän tietoturvaan liittyviä virheitä.

Tutki GitHub Copilotin kaltaisten tekoälyapulaisten vaikutusta koodin turvallisuuteen


Lähde: opennet.ru

Lisää kommentti