Google avasi syyskuun alussa Mantis-kehyksen lähdekoodin. Kyseessä on agenttipohjainen työkalupakki, joka etsii ohjelmistojen haavoittuvuudet, vahvistaa ne, toistaa ne hiekkalaatikossa ja kirjoittaa korjauksen.
Yhtiö on käyttänyt samaa putkea sisäisesti omissa koodivarastoissaan. Google Cloudin blogikirjoituksen mukaan Mantis on osa yhtiön pyrkimystä löytää ja korjata haavoittuvuudet koneen nopeudella.
Kehys on saatavilla GitHubissa, ja se on suunniteltu käytettäväksi olemassa olevien koodausagenttien kanssa. Google kuvaa sitä lähtökohdaksi eikä jäykäksi ohjesarjaksi.
Hallusinoidut haavoittuvuudet söivät hyödyn
Tekoälymallit löytävät haavoittuvuuksia jo ilman ihmisen apua. Ongelma ei ole löytäminen vaan luotettavuus. Kun malli lukee lähdekoodia ja luettelee mahdolliset ongelmat, se keksii myös aukkoja, joita ei ole olemassa.
Googlen mukaan huolimattomassa tekoälyskannauksessa oikeiden osumien osuus jää alle seitsemään prosenttiin. Käytännössä yli yhdeksän kymmenestä löydöksestä on turhaa työtä.
Tietoturvatiimille tämä on huonompi lopputulos kuin ei mitään. Jokainen ehdotus on tarkistettava käsin, ja tarkistustyö syö juuri sen ajan, jonka automaatio lupasi säästää.
Google rakensi Mantiksen nimenomaan tähän ongelmaan. Ratkaisu ei ole tarkempi malli vaan useampi vaihe: löydös on vahvistettava koneellisesti ennen kuin se päätyy ihmisen pöydälle.

Putki rakentaa ensin oman tilannekuvansa
Mantis ei aloita tiedostojen läpikäynnistä. Se lukee ensin koodivaraston muutoshistorian ja poimii aiemmin korjatut tietoturvaongelmat oppimateriaaliksi.
Sen jälkeen putki kokoaa arkkitehtuurikuvauksen ja uhkamallin, vaikka projektissa ei olisi kumpaakaan valmiina. Näin taustatiedot syntyvät myös varastoihin, joiden dokumentaatio on puutteellista.
Lähestymistapa eroaa perinteisestä staattisesta analyysistä. Sen sijaan että työkalu etsisi tunnettuja kuvioita, se rakentaa ensin käsityksen siitä, mitä ohjelmisto tekee ja mitä siinä kannattaa suojata.
Putkessa on myös valinnaisia alkuvaiheita. Vaihe mantis-history käy läpi versionhallinnan historian, ja mantis-structural-index rakentaa semanttisen hakemiston koodin yksiköistä. Kumpikaan ei ole pakollinen, mutta molemmat parantavat myöhempien vaiheiden osumatarkkuutta.
Suurissa varastoissa ongelmaksi tulee konteksti. Mantis tiivistää tiedostot hierarkkiseksi turvallisuuspuuksi: yksittäiset tiedostot kootaan hakemistotasoksi ja hakemistot koko varaston yhteenvedoksi. Google kertoo tekniikan pienentäneen tokenien kulutusta yli 85 prosenttia.
Malli hahmottaa kokonaisuuden yhteenvedosta ja avaa yksityiskohdat vain sieltä, missä niitä tarvitaan. Rakenteellinen konteksti säilyy, vaikka luettavan tekstin määrä romahtaa.

Kriitikot karsivat ja hiekkalaatikko todistaa
Mantis koostuu yli 15 vaiheesta, joita voi ajaa peräkkäin tai rinnakkain. Vaiheet keskustelevat keskenään kirjoittamalla yhteiseen tilaan levylle.
Strategia-agentti arvioi koodin rakenteen, uhkamallit ja riippuvuusgraafit. Tutkija-agentit lukevat raakaa lähdekoodia ja jäljittävät data- ja kontrollivuot sekä syötteiden puhdistuksen.
Löydökset kulkevat sen jälkeen katselmoinnin ja kritiikin läpi. Vaihe mantis-review soveltaa sääntöpohjaista negatiivista suodatinta, ja mantis-critic karsii tuotannon kannalta merkityksettömät. Vaihe mantis-reproduce kirjoittaa kaatumisen toistavan koodin ja ajaa sen eristetyssä ympäristössä.
Vasta tämän jälkeen mantis-patch kirjoittaa korjauksen ja tarkistaa, että se estää toiston. Todiste tulee ajetusta koodista, ei mallin omasta arviosta.
Loppupäässä on vielä oma koneistonsa. Vaihe mantis-dedupe yhdistää päällekkäiset löydökset, mantis-chain kokoaa yksittäisistä havainnoista monivaiheisia hyökkäysketjuja ja mantis-calibrate laskee lopulliset riskiluokitukset. Vaihe mantis-report kokoaa tuloksista ihmisen luettavan katselmointipaketin.

Google kehottaa tarkistamaan tulokset käsin
Projektin ohjeistus on poikkeuksellisen suorasanainen. Mallit ovat epädeterministisiä ja voivat keksiä löydöksiä tai kirjoittaa virheellisiä korjauksia. Jokainen löydös on tietoturva-asiantuntijan varmistettava ennen raportointia.
Google varoittaa erikseen lähettämästä vahvistamattomia, koneen tuottamia raportteja avoimen lähdekoodin ylläpitäjille. Epäonnistunut toisto ei myöskään todista löydöstä vääräksi, eikä onnistunut takaa hyödynnettävyyttä kaikissa yhteyksissä.
Myös negatiivisen suodattimen kanssa kehotetaan varovaisuuteen. Liian laaja suodatin luokittelee matalan riskin löydökset automaattisesti vääriksi ja heikentää samalla kykyä havaita oikeita aukkoja.
Mallivalinnassa Google ohjaa säästämään. Kevyt flash- tai lite-versio riittää luokitteluun ja ryhmittelyyn, kun taas toisto ja korjaus vaativat vahvempaa mallia. Suositus on myös ajaa kapeita skannauksia ennen koko varaston läpikäyntiä.
Ohjeistus korostaa lisäksi ihmisen tiedon arvoa. Jos organisaatio ei koskaan korjaa vikoja, joissa käyttäjä voi kaataa oman ohjelmansa, tieto kannattaa kertoa putkelle etukäteen. Kertyneen tiedon voi kierrättää myös eteenpäin: mantis-advise ohjaa koodausagentteja kirjoittamaan turvallista koodia jo ensimmäisellä kerralla.

Yhteenveto
Mantis siirtää painopisteen löytämisestä vahvistamiseen. Kriitikkoagentit, negatiiviset suodattimet ja hiekkalaatikossa ajettu toisto ovat vastaus siihen, että pelkkä skannaus tuottaa liikaa melua.
Tulokset riippuvat yhä virityksestä. Google itse korostaa, että negatiiviset suodattimet on sovitettava omaan koodikantaan ja ettei ensimmäistä ajoa kannata tehdä koko varastoon.
Kehys toimii muun muassa Gemini CLI:n ja Antigravity CLI:n kanssa. Google tarjoaa sitä lähtökohdaksi, jota organisaatiot virittävät omaan pinoonsa — ei valmiiksi putkeksi, johon voi luottaa sokeasti.
