Google esitles uut avatud projekti Vanir, mis arendab staatilist analüsaatorit, et automaatselt tuvastada koodis kasutamata plaastrid, mis kõrvaldavad haavatavused. Vanir kasutab allkirjade andmebaasi, kus on teave tuntud haavatavuste ja nende plaastrite kohta. Seda andmebaasi haldab Google alates 2020. aasta juulist ning see katab 95% haavatavustest, mis on seotud Androidi platvormiga, sealhulgas Linuxi tuumaga. Praegu toetatakse C, C++ ja Java keeles allika koodi kontrollimist. Vaniri kood on kirjutatud C++ ja Python keeles ning jaotatakse BSD litsentsi alusel.
Projekt koosneb kahest osast - allkirjade generaatorist ja puuduvate plaastrite tuvastajast. Generaator loob allkirja, et tuvastada paranduse puudumine, tuginedes haavatavuse kirjeldusele OSV formaadis ja lingile plaastrile või commit'ile, mis selle kõrvaldab. Praegu toetatakse commit'ide töötlemist googlesource.com ja git.codelinaro.org hoidlatest, kuid toetust teistele teenustele saab hõlpsasti lisada, ühendades töötleja koodi väljavõtmiseks.
Tuvastaja analüüsib määratud hoidlas koodi ja määrab, kas seal ei ole parandusi, mida kirjeldavad esitatud allkirjad. Täitmine põhineb automaatsete allkirjade täpsustamise ja paljude mallide analüüsi algoritmidel, mis on ettepanekud ReDeBug ja VUDDY uurimisprojektidest. Kaasaegses 16-keerulises CPU-ga personaalarvutis võtab Androidi allika tekstide puu skaneerimine OSV andmebaasi, kus on teave enam kui 2000 haavatavuse kohta, aega 10-20 minutit. Väljundiks on aruanne potentsiaalselt parandamata haavatavuste nimekirjaga ning lingid nendega seotud koodipesadele, CVE-identifikaatorid ja plaastrid. Google'is Vaniri kahe aasta kasutamise statistika kohaselt on valehäirete määr 2,72%.


Eespool tutvustatud tööriista eelised:
- Võimalus tuvastada parandamata haavatavusi kolmandate osapoolte harudest, modifikatsioonidest ja koodilaenudest, mis ei ole otseselt seotud põhiprojektiga. Androidi kontekstis saab tööriista kasutada seadmete OEM-tootjate arendatud Androidi platvormide variantide paranduste rakendamise kontrollimiseks.
- Kontrollimist teostatakse vaid olemasoleva koodi analüüsi põhjal, ilma metadata, nagu versiooni number, commit'i ajalugu ja SBOM (Software Bill Of Materials), seotuse vajaduseta.
- Automaatsete allkirjade genereerimise tugi, kasutades avalikes allikates ilmuvaid teateid haavatavustest ja avaldatud nendele järgnevate plaastrite kogumit.
- Staatilise koodi analüüsi põhjalik ülevaatus on tõhusam kui dünaamilise analüüsi ja binaarsed kogumid kontrollivad tööriistad.
- Iseseisvus - infrastruktuuri kasutuselevõtu võimalus oma süsteemides ilma välistest teenustest sõltumata.
- Valmis ja ajakohane allkirjade andmebaas, mille haldab Google Android Security Team.
- Toetatakse pideva integreerimise ja kohaletoimetamise (CI/CD) süsteemidega liitumist. Võimalus integreerimiseks teistesse projektidesse, kasutades Vaniri Python'i keeles teeki.
- Süsteemi kohandamise võimalus ülesannete jaoks, mis ei ole seotud haavatavustega, näiteks koodi kloonimise või litsentseeritud koodi kasutamise tuvastamine teistes projektides.
Allikas: opennet.ru
