Google julkaisi syyskuun alussa yksityiskohtaiset ohjeet Mantis-kehykseen, joka automatisoi ohjelmistohaavoittuvuuksien elinkaaren. Kehys etsii haavoittuvuudet, karsii vääriä löydöksiä, toistaa jäljelle jääneet ja kirjoittaa korjaukset. Koodi on ollut GitHubissa Apache 2.0 -lisenssillä heinäkuusta.

Taustalla on ongelma, jonka Google nimeää suoraan. Tekoälyllä tehdyssä koodiskannauksessa oikeiden löydösten osuus jää usein alle seitsemän prosentin. Loput ovat kohinaa, joka valuu ihmisen tarkistettavaksi.

Virhehälytykset ovat skannauksen ongelma

Kielimalli osaa lukea lähdekoodia ja listata epäilyttäviä kohtia. Ongelma on, että se keksii myös haavoittuvuuksia, joita ei ole. Kun ehdokkaita tulee satoja ja jokainen on tarkistettava käsin, työ siirtyy tekoälyltä takaisin ihmiselle.

Google Cloudin blogikirjoituksen mukaan huolimattomassa tekoälyskannauksessa oikeiden löydösten osuus jää alle seitsemän prosentin. Yhtiö rakensi Mantiksen nimenomaan siksi, että puolustaja saisi tekoälystä saman hyödyn kuin hyökkääjä.

Ongelma näkyy myös avoimen lähdekoodin puolella. Ylläpitäjät saavat tasaista virtaa heikkolaatuisia, tekoälyn tuottamia haavoittuvuusilmoituksia. Google varoittaa erikseen lähettämästä eteenpäin löydöksiä, joita kukaan ihminen ei ole vahvistanut.

Mantiksen lähtökohta on, että löydös on todistettava eikä vain esitettävä. Sen sijaan että malli listaisi epäilyt ja jättäisi arvioinnin ihmiselle, kehys ajaa ne useiden tarkistusvaiheiden läpi ennen kuin mitään päätyy työjonoon.

Tietoturvatyöpöytä hukkuu punaisiin varoitusmerkkeihin, joista useimmat ovat läpikuultavia

Agentit tarkastavat toistensa työn

Mantis koostuu yli 15 erillisestä taidosta, joita voi ajaa perätysten tai rinnakkain. Vaiheet viestivät keskenään kirjoittamalla jaettuun tilaan levylle. Nimet kertovat tehtävän: mantis-summarize, mantis-review, mantis-critic ja niin edelleen.

Strategi-agentti arvioi koodin rakennetta, uhkamalleja ja riippuvuusgraafia. Tutkija-agentit lukevat lähdetiedostoja tarkemmin ja seuraavat datan kulkua, kontrollivuota ja syötteiden puhdistusta. Kriitikko- ja katselmoija-agentit karsivat vääriä löydöksiä ja asettavat jäljelle jääneet tärkeysjärjestykseen.

Ratkaiseva vaihe on toisto. Mantis ajaa löydöksen eristetyssä hiekkalaatikossa ja katsoo, kaatuuko ohjelma oikeasti. Todiste ei siis nojaa kielimallin arvioon vaan siihen, että vika saadaan toistettua.

Google suosittelee myös yhdistelemään eri malleja eri vaiheisiin. Kevyt malli riittää luokitteluun ja samankaltaisten löydösten niputtamiseen. Raskaampi malli kannattaa varata vaiheisiin, jotka kirjoittavat toimivan toisto-ohjelman tai korjauksen.

Neljä valaistua tarkastuspistettä linjalla, joilla sama hehkuva kohde tutkitaan suurennuslasein

Hierarkkinen tiivistelmä leikkaa tokenit

Suuren koodivaraston lukeminen kerralla kasvattaa syötetokenien määrän nopeasti kestämättömäksi. Mantis ei siksi selaa tiedostoja järjestyksessä läpi.

Kehys lukee ensin varaston muutoshistorian ja aiemmat tietoturvakorjaukset. Sen jälkeen se koostaa tiedostoista tiivistelmät hakemistotasolle ja niistä edelleen koko varaston tason kuvauksen. Malli hahmottaa kokonaisuuden tiivistelmästä ja lukee yksityiskohdat vain sieltä, missä on syytä.

Googlen mukaan menettely vähentää tokenien kulutusta yli 85 prosenttia ja säilyttää silti olennaisen rakennetiedon. Samalla kehys rakentaa automaattisesti uhkamallin myös projekteille, joihin sellaista ei ole koskaan kirjoitettu.

Hehkuva hierarkkinen puurakenne nousee tiheästä koodilohkojen kentästä kirkkaiksi solmuiksi

Google varoittaa luottamasta sokeasti

Ohjeistuksen selkein kohta ei ole tekninen vaan varoitus. Agentit ovat epädeterministisiä: ne voivat keksiä haavoittuvuuden, jota ei ole, tai arvioida väärin, sulkeeko korjaus aukon.

Toisto- ja korjausvaiheet on ajettava hiekkalaatikossa, mieluiten gVisorilla ja verkkoyhteys pois kytkettynä. Googlen ohje on olla ajamatta kokonaisuutta lähelläkään tuotantojärjestelmiä tai sisäverkkoa. Asiantuntijan on myös tarkistettava jokainen tulos ennen kuin siihen luottaa.

Google korostaa lisäksi kahta edellytystä. Agentille on annettava riittävä tausta, kuten kehittäjien oma tieto järjestelmästä. Toiseksi hiekkalaatikon on oltava turvallinen ja kriteerien sille, mikä lasketaan haavoittuvuudeksi, selvät.

Kehys ei ole sidottu tiettyyn malliin tai työkaluun. Google kertoo käyttäneensä sitä Gemini CLI:n ja Antigravity CLI:n kanssa, mutta taidot on suunniteltu toimimaan minkä tahansa koodausagentin kanssa.

Suljettu läpinäkyvä eristyskammio laboratoriopöydällä, sisällä hehkuva kohde ja irrotettu kaapeli

Yhteenveto

Mantis siirtää tekoälyn haavoittuvuustyössä puolustajan puolelle ja tarttuu siihen ongelmaan, joka on tähän asti tehnyt tekoälyskannauksesta raskasta: virhehälytysten määrään. Keinot ovat tuttuja agenttitekniikoita, mutta niiden yhdistelmä on harvinaisen suoraviivainen.

Valmista ratkaisua Google ei kuitenkaan lupaa. Kehys on julkaistu lähtökohdaksi, jota jokaisen on tarkoitus sovittaa omaan ympäristöönsä — eikä se ole virallisesti tuettu Google-tuote.