Kompania Google prezantoi projektin e ri të hapur Vanir, i cili zhvillon një analizues statik për identifikimin automatik të patches që nuk janë aplikuar në kod dhe që eliminojnë dobësitë. Vanir përdor një bazë nënshkrimesh me informacione rreth dobësive dhe patches të njohura për eliminimin e këtyre dobësive. Një bazë e tillë është mbajtur nga Google që nga korriku 2020 dhe mbulon 95% të dobësive në projektet e lidhura me platformën Android, duke përfshirë bërthamën Linux. Aktualisht mbështetet kontrolli i kodit burimor në gjuhët C, C++ dhe Java. Kodi i Vanir është shkruar në gjuhët C++ dhe Python dhe shpërndahet sipas licenses BSD.
Projekti përbëhet nga dy pjesë - gjeneratori i nënshkrimeve dhe detektori i patches të humbura. Gjeneratori krijon një nënshkrim për identifikimin e mungesës së një rregullimi bazuar në përshkrimin e dobësisë në formatin OSV dhe lidhjen për një patch ose commit që eliminojnë dobësinë. Në formatin aktual, mbështetet përpunimi i commits në repositorët googlesource.com dhe git.codelinaro.org, por mbështetje për shërbime të tjera mund të shtohet lehtësisht përmes lidhjes së një përpunuesi për nxjerrjen e kodit.
Detektori kryen një analizë të kodit në repositorin e përcaktuar dhe identifikon mungesën e rregullimeve të përshkruara në nënshkrimet e ofruara. Zbatimi bazohet në algoritmet e rafinimit automat të nënshkrimeve dhe analizës së shumëmodeleve, të propozuara në projektet kërkimore ReDeBug dhe VUDDY. Në një PC modern me CPU 16-bërthamor, skanimi i pemës së teksteve burimor të platformës Android në bazën OSV me informacione mbi më shumë se 2000 dobësi zgjat 10-20 minuta. Në përfundim, krijohet një raport me një listë të dobësive potencialisht të papara dhe lidhjeve me pozitat përkatëse në kod, identifikatorët CVE dhe patches. Sipas statistikave të mbledhura gjatë dy viteve të përdorimit të Vanir në Google, niveli i rremeve është 2.72%.


Avantazhet e mjetit të propozuar:
- Mundësia për të identifikuar dobësitë e papara në degë të jashtme, modifikime dhe marrje kodi që nuk janë drejtpërdrejt të lidhura me projektin kryesor. Në kontekstin e Android, mjeti mund të përdoret për të kontrolluar aplikimin e rregullimeve në variantet e platformës Android që zhvillohen nga prodhuesit OEM.
- Kryerja e kontrollit vetëm në bazë të analizes së kodit të disponueshëm, pa lidhje me metadatë, si numri i versionit, historia e commits dhe SBOM (Software Bill Of Materials).
- Mbështetje për gjenerimin automatik të nënshkrimeve, duke përdorur informacionin që shfaqet në burime publike për dobësitë dhe patches që publikohen nga grupet mbështetës.
- Performancë më e lartë e kontrollit në bazë të analizës statike të kodit burimor krahasuar me mjetet për analizën dinamike dhe verifikimin e ndërtimeve binarë.
- Autonomi - mundësia për të zbatua infrastrukturën në sistemet tuaja pa iu drejtuar shërbimeve të jashtme.
- Prania e një baze nënshkrimesh të gatshme dhe aktuale, të mbështetur nga ekipi i Sigurisë së Android të Google.
- Mbështetje për lidhjen me sistemet e integrimit dhe shpërndarjes së vazhdueshme (CI/CD). Mundësia për integrimin në projekte të tjera duke përdorur Vanir si biblioteka në gjuhën Python.
- Mundësia për të adaptuar sistemin për detyra që nuk lidhen me dobësitë, p.sh., për të identifikuar klonimin e kodit ose përdorimin e kodit të licencuar në projekte të tjera.
Burimi: opennet.ru
