Firma Anthropic teatas, et AI-mudel Claude Opus 4.6 on saanud laiendusi koodi haavatavuste otsimiseks ning jagas katsetulemusi, mille käigus leiti üle 500 enneolematult (0-day) haavatavuse erinevates avatud projektide uusimates versioonides. Töö keskendus mäluprobleemidest tingitud haavatavuste tuvastamisele, kuna nende olemasolu on lihtsam kontrollida. Iga leitud haavatavusele omistati kõrge ohutaseme. Kõiki haavatavusi kontrollis käsitsi ja kinnitas Anthropic'i töötajad või kaasatud välisharidusuuringute spetsialistid.
Haavatavuste analüüsimiseks kaasati populaarsete avatud projektide koodibaasid, mis on juba pikka aega pideva fuzzing-testi teenuse OSS-Fuzz all. Erinevalt fuzzing-testimisest, kus genereeritakse voog erinevaid juhuslikke sisendkompone, püüdis AI-mudel analüüsida koodi, arvestades varasemaid parandusi, et tuvastada sarnaseid lahendamata vigu, tuues esile probleemseid mustreid ja loogiliselt järeldades, millised sisendid võivad täitmist katkestada.
Eksperimendi käigus tuvastatud haavatavuste teave on juba edastatud kaasnevatele spetsialistidele, kes teevad koostööd paranduste vastuvõtmiseks. Et aidata kaasnevaid spetsialiste, loodi käsitsi teostatud kontrolli käigus avastatud probleemide lahendamiseks plaastrid. Näiteks toome välja kolm haavatavust GhostScriptis, OpenSC-is ja CGIF-is, mis avaldamise hetkel olid kaasnevate spetsialistide poolt kõrvaldatud.
Probleemide tuvastamiseks kasutatud konfiguratsioon ei olnud sarnane traditsioonilistele automatiseritud haavatavuste otsingu süsteemidele — mudel Claude Opus 4.6 sai ligipääsu virtuaalmasinas, kuhu olid peale uuritava koodi paigaldatud ka standardarendustööriistad (coreutils, Python jne) ja haavatavuste tõrje- ja analüüsitööriistad (sealhulgas fuzzing-testi tööriistad). Mudelile ei antud selgeid juhiseid nende tööriistade kasutamiseks ega räägitud erilistest haavatavuste avastamise meetoditest. Mudelile anti vaid ülesanne ja võimalus iseseisvalt mõelda, kuidas optimaalselt olemasolevaid tööriistu kasutada.
Haavatavuste otsimisel üritas GhostScript AI mudel alguses teha fuzzing-testimist, kuid kui see ei andnud tulemusi, pöördus see koodi analüüsi poole. Koodi analüüs ei andnud samuti tulemusi ja seejärel hakkas mudel uurima git muudatusajalugu, kus ühe commit'i puhul märkas see puhverpiiride kontrollimise mainimist. Komitti analüüsides määras mudel, et parandamine lisas puhverpiiride kontrolli, mis oli puudulik fontide töötlemisel.
Seejärel määras mudel koodi, mis oli enne parandamist, ja püüdis leida ülejäänud koodist sarnaseid mudeleid probleemse funktsiooni kasutamisest, mis jäi parandamata. Lõppkokkuvõttes avastati failis gdevpsfx.c funktsiooni gs_type1_blend kutsumine ilma väärtuste õigsuse kontrollimiseta. Lõpuks tuvastas mudel faili sisu, mille töötlemine tõi kaasa kokkuvarisemise, kuna andmeid kirjutati mälupiirkonda, mis oli väljaspool eraldatud puhversuvi.
CGIF AI mudel lähtus eeldusest, et GIF-failide lahti pakkimisel pidas raamatukogu silmas, et kokkupakitud andmete maht on alati väiksem kui lahti pakitud. Haavatavuse leidmise keskmes oli tingimuste määramine, millal LZW algoritmiga kokkupakitud andmed on suuremad lahti pakitud andmetest. Sellised tingimused leiti ning AI mudel suutis moodustada GIT-faili, mille töötlemine põhjustas puhverdusülevoolu. OpenSC-s tuvastati probleem pärast koodi potentsiaalselt ohtlike funktsioonide strrchr ja strcat analüüsimist.
Täheldatakse, et keelemudelid on saavutanud taseme, mis võimaldab tuvastada varasemaid teadmata haavatavusi ja peagi ületavad nad turvaeksperte haavatavuste leidmise kiiruselt ja ulatuselt. Eeldatakse, et tuvastatud haavatavuste arvu kasv nõuab informatsiooni jagamise protsesside reformeerimist, kuna praegu antud 90 päeva parandamiseks on ebapiisav.
Allikas: opennet.ru
