Tekoälyn tuottaman koodin turvallinen katselmointi

Tekoälyavustajat kirjoittavat koodia nopeasti. Näin tietoturvakatselmointi, testaus ja vastuu pysyvät mukana.

Käytän tekoälyavustajia ohjelmoinnissa päivittäin. Ne refaktoroivat, selittävät vanhaa koodia, kirjoittavat testejä ja löytävät virheitä nopeammin kuin minä. Käytin sellaista jopa omien vanhojen verkkosivustojeni auditointiin ja siivoamiseen. Nopeus kuitenkin muuttaa tietoturvan taloutta: jos koodia syntyy kymmenen kertaa nopeammin, katselmoinnista tulee pullonkaula, ja ohitetuista katselmoinneista tulee haavoittuvuuksia.

Noudattamani sääntö on yksinkertainen: tekoäly kirjoittaa, ihminen vastaa. Tätä se tarkoittaa käytännössä.

Tekoälyn tuottaman koodin tyypilliset riskit

  • Uskottavia mutta turvattomia malleja. Merkkijonoja yhdistelemällä rakennettua SQL:ää, koodaamatonta tulostetta, heikkoa satunnaisuutta, varmennetarkistuksen poistaminen "jotta se toimisi".
  • Vanhentunutta tietoa. Ehdotuksia, jotka perustuvat vanhentuneisiin rajapintoihin tai kirjastojen vanhoihin versioihin, joissa on tunnettuja haavoittuvuuksia.
  • Keksittyjä riippuvuuksia. Hyökkääjä voi rekisteröidä ehdotetun paketin nimen, jota ei ole olemassa. Tätä kutsutaan joskus nimellä "slopsquatting".
  • Salaisuuksia kehotteissa ja koodissa. Chattiin liitettyjä API-avaimia tai esimerkkitunnuksia, jotka päätyvät tuotantoon.
  • Liian laajat oikeudet. Tekoälyagentteja, jotka voivat ajaa komentoja, muuttaa infrastruktuuria tai julkaista tuotantoon rajoituksetta.

Toimivat suojakeinot

Kohtele tekoälyn tuotosta kuin uuden kollegan pull requestia

Fiksu, nopea ja tietämätön uhkamallistasi. Katselmoi se samalla vaativuudella: tarkistetaanko syötteet, koodataanko tulosteet, käsitelläänkö virheet turvallisesti ja noudatetaanko arkkitehtuuria?

Automatisoi tylsät tarkistukset

Staattinen analyysi (SAST), riippuvuus- ja lisenssianalyysi (SCA), salaisuuksien tunnistus ja testit jokaiselle muutokselle, kirjoitti sen kuka tahansa. Automaatio skaalautuu tekoälyn mukana; ihmisen huomio ei.

Tarkista jokainen uusi riippuvuus

Varmista, että paketti on olemassa, sitä ylläpidetään ja se on se, mitä luulet. Lukitse versiot ja käytä lukitustiedostoa.

Pidä salaisuudet poissa keskustelusta

Käytä kehotteissa paikkamerkkejä ja koodissa salaisuuksien hallintaa. Määritä työkalut niin, ettei tunnustiedostoja koskaan lähetetä mallille.

Rajoita agenttien oikeuksia

Agenttien pitää työskennellä kopion parissa, kysyä ennen peruuttamattomia toimia eikä koskaan julkaista tuotantoon omin päin. Sovella vähimpien oikeuksien periaatetta täsmälleen kuten palvelutilille.

Pyydä tekoälyä hyökkäämään omaa koodiaan vastaan

Hyödyllinen tapa: kun koodi on tuotettu, pyydä avustajaa katselmoimaan se hyökkääjän silmin OWASP Top 10 -listaa vasten. Se löytää usein omat virheensä. Se ei korvaa ihmisen katselmointia, mutta parantaa sitä, mikä katselmointiin päätyy.

Vastuu ei muutu

Jos tekoälyn tuottama koodi aiheuttaa tietomurron, "avustaja kirjoitti sen" ei ole vastaus, jonka valvova viranomainen, asiakas tai rekisteröity hyväksyy. Koodin yhdistävä kehittäjä ja sen julkaiseva organisaatio ovat edelleen vastuussa. Tällä asenteella käytettynä tekoäly on yksi parhaista tietoturvatyökaluista, joita meillä on koskaan ollut.