Cloudflare julkaisi maanantaina 18.5. raportin, jossa se kertoi ajaneensa Anthropicin uusimman tietoturvaan suunnitellun kielimallin, Mythos Previewin, yli 50:tä omaa koodirepoaan vasten. Mukana olivat infrastruktuurin kovat ytimet: ajoympäristöt, edge-datapolku, protokollapino, control plane sekä yhtiön avoimen lähdekoodin projektit. Pilotti tehtiin Anthropicin Project Glasswing -ohjelman alla, johon yhtiö ottaa mukaan vain valittuja puolustuksellisia tietoturvakumppaneita.
Tulos haastoi yleisen ajatuksen siitä, että parempi yksittäinen malli ratkaisee tietoturvatutkimuksen. Mythos löysi 50 reposta haavoittuvuuksia, jotka aiemmat huippumallit jättivät avoimiksi. Merkityksellisempi havainto oli kuitenkin se, mitä mallin ympärillä piti olla, jotta löydökset ylipäätään syntyivät.
“Todellinen hyökkäys käyttää harvoin yhtä bugia. Se ketjuttaa useita pieniä hyökkäysprimitiivejä yhdeksi toimivaksi hyökkäykseksi.”
Pienistä bugeista täyteen järjestelmäkontrolliin
Ketjutettu haavoittuvuus tarkoittaa hyökkäystä, jossa yksinään harmiton tai matalan vakavuuden bugi yhdistetään toiseen ja kolmanteen, kunnes lopputuloksena on toimiva kontrolli kohdejärjestelmästä. Cloudflaren esimerkki kuvaa tämän selvästi. Use-after-free -virhe näyttää aluksi vain paikalliselta muistivirheeltä. Kun sama virhe käännetään ensin mielivaltaiseksi muistinluku- ja kirjoitusprimitiiviksi ja siitä rakennetaan return-oriented programming -ketju, hyökkääjä päätyy täyteen järjestelmäkontrolliin.
Yhdistämistyö on perinteisesti vaatinut kokeneen ihmistutkijan: kymmeniä epäonnistuneita yrityksiä, omien hypoteesien kumoamista ja kykyä pitää useita hauraita oletuksia mielessä yhtä aikaa. Cloudflaren testissä useimmat aiemmat huippumallit löysivät kyllä yksittäiset bugit, mutta jähmettyivät yhdistämisvaiheessa. Ne kuvasivat löydöksen taustat hienosti ja päättivät tarinan kesken. Mythos osasi mennä viimeiseen vaiheeseen ja toimittaa todennetun proof-of-conceptin.
Hyvä malli ilman harnessia tuottaa kuhinaa
Cloudflaren tärkein opetus ei lopulta ole Mythos vaan harness. Tutkijat kokeilivat ensin osoittaa tavallisen koodausagentin repolle ja pyytää sitä etsimään haavoittuvuuksia. Tulos oli pettymys. Koodausagentit on optimoitu yhteen työnkulkuun kerrallaan, eivät tietoturvatutkimukseen, jossa pitää ajaa kapeita ja rinnakkaisia hypoteeseja samanaikaisesti.
Cloudflare rakensi siksi kolmivaiheisen järjestelmän. Recon-vaiheessa yksi agentti lukee repon ylhäältä alas ja tuottaa arkkitehtuuridokumentin: buildkomennot, luottamusrajat, sisääntulopisteet ja todennäköisen hyökkäyspinnan. Samalla syntyy tehtäväjono seuraavaa vaihetta varten.
Hunt-vaiheessa noin 50 agenttia ajetaan rinnakkain. Kullekin annetaan yksi hyökkäysluokka ja kapea kohdealue. Jokaisella on oma scratch-hakemisto, jossa ne voivat kääntää ja ajaa proof-of-concept-koodia. Tämä on ratkaisevaa: agentti ei pelkästään spekuloi, vaan kokeilee ajossa, näkee virheviestit ja korjaa hypoteesinsa kesken työn.
Validate-vaiheessa riippumaton agentti, jolla on eri prompti eikä mahdollisuutta tuottaa uusia löydöksiä, yrittää kumota jokaisen alkuperäisen havainnon. Tämä karsii merkittävän osan vääristä positiivisista. Vasta näiden kolmen vaiheen läpi ajetut löydökset päätyvät ihmistutkijan pöydälle.
Sama työkalu, vastakkaiset kädet
Cloudflare painotti raportissaan, etteivät nämä kyvyt rajoitu puolustajiin. Mikä tahansa hyökkääjäryhmä, jolla on tarvittavat resurssit, voi rakentaa vastaavan harnessin. Tämän takia Mythos Previewia ei julkaista yleisesti, vaan se pidetään Project Glasswing -ohjelman sisällä kutsulla. Tutkijat raportoivat myös, että malli kieltäytyi kirjoittamasta demonstraatiokoodia yhdessä istunnossa, mutta suostui kun sama tehtävä esitettiin toisin sanoin uudessa istunnossa. Kieltäytymismekanismi ei siis ole konsistentti.
Sanasto
Harness
Mallin ympärille rakennettu ohjausjärjestelmä, joka jakaa työn osiin ja ajaa useita agentteja rinnakkain. Pelkkä kielimalli on aivot, harness on kädet ja jalat.
Use-after-free
Ohjelmointivirhe, jossa muistialuetta käytetään vielä senkin jälkeen kun se on vapautettu. Hyökkääjä voi täyttää vapautuneen kohdan omalla datalla ja saada ohjelman tekemään ei-toivottuja asioita.
Proof-of-concept
Todistuskoodi, jolla osoitetaan haavoittuvuuden olevan oikeasti hyödynnettävissä – ei pelkkää teoriaa. Ilman sitä bugiraporttia voi epäillä spekuloinniksi.
Mitä tämä tarkoittaa bugibountylle ja suomalaisille tutkijoille
Bugibounty-ohjelmat ovat pitkään perustuneet ihmistutkijoihin, jotka löytävät yksittäisiä haavoittuvuuksia ja raportoivat ne kohdeyhtiölle. Cloudflaren tulos siirtää tasapainoa. Pieni tiimi, joka osaa virittää AI-harnessin, voi viikonlopussa auditoida koodikannan, johon yksittäiseltä tutkijalta menisi kuukausia. Raportointitulvan käsittely tulee olemaan vastaanottavalle yhtiölle aivan uusi ongelma.
F-Securen ja WithSecuren kaltaisille suomalaisille toimijoille tämä on suora signaali siitä, mihin alan osaamisvaatimukset siirtyvät. Pentest-konsultoinnin liiketoimintamalli ei katoa, mutta sen ydin muuttuu. Aikaisemmin riitti, että tutkija hallitsi Burp Suiten, kirjoitti raportin ja perusteli löydöksensä. Jatkossa pitää osata rakentaa ja virittää oma harness, hallita kymmeniä rinnakkaisia agentteja ja erottaa todelliset löydökset hallusinaatioista.
Tämä osaaminen on Suomessa toistaiseksi harvinaista, mikä antaa kilpailuedun sille, joka rakentaa sen ensin. Kotimaiset yritykset, jotka miettivät omien koodikantojensa auditointia, törmäävät pian uuteen tarjontaan: AI-pohjaisia tietoturvakatselmuksia, jotka eivät kestä kuukautta eivätkä maksa kuusinumeroista summaa. Tavalliselle ohjelmistokäyttäjälle vaikutus näkyy viiveellä. Jos puolustajat saavat saman työkalun käyttöön kuin hyökkääjät, päivityssyklit nopeutuvat ja paikkaamatonta koodia jää aiempaa vähemmän kuljeskelemaan tuotantoon. Ihmisen rooli ei katoa vaan siirtyy ylemmäs: päätökseen siitä, kuka kytkee harnessin verkkoon ja mihin.
Viikoittainen uutiskirje
Tule firmasi fiksuimmaksi AI-osaajaksi
Yksi uutiskirje kerrallaan. Kokoamme viikon tärkeimmät tekoälyuutiset suomeksi ja kerromme, mitä ne tarkoittavat sinun työsi kannalta. Luet sen kahvitauolla.