A Google bemutatta új nyílt projektjét, a Vanirt, amely egy statikus elemzőt fejleszt a kódhoz nem alkalmazott javítócsomagok automatikus észlelésére, amelyek biztonsági réseket hárítanak el. A Vanir egy ismert sebezhetőségekről és javítócsomagokról szóló aláírásadatbázist használ a sebezhetőségek kiküszöbölésére. Ezt az adatbázist a Google 2020 júliusa óta vezeti, és a sebezhetőségek 95%-át fedi le az Android platformhoz kapcsolódó projektekben, beleértve a Linux kernelt is. Jelenleg a C, C++ és Java nyelvek forráskódjának ellenőrzése támogatott. A Vanir kódja C++ és Python nyelveken íródott, és BSD licenc alatt kerül forgalomba.
A projekt két részből áll — egy aláírásgenerátorból és egy hiányzó javítócsomagok érzékelőből. Az aláírásgenerátor egy aláírást képez a javítócsomag hiányának azonosítására az OSV formátumban készült sebezhetőségi leírás és a javítást vagy commitot hirdető hivatkozás alapján. Jelenlegi formájában a googlesource.com és a git.codelinaro.org adattárak commitjainak feldolgozása van támogatva, de más szolgáltatások támogatása könnyen hozzáadható egy kódkiemelő feldolgozó csatlakoztatásával.
Az érzékelő elemzi a megadott adattárban található kódot, és meghatározza, hogy hiányoznak-e a megadott aláírásokban leírt javítások. A megvalósítás automatikus aláírásfinomító algoritmusokon és többrétegű mintanalízisen alapul, amelyeket a ReDeBug és VUDDY kutatási projektek javasoltak. Egy 16 magos CPU-val rendelkező modern PC-n az Android platform forrásfáinak átvizsgálása az OSV-adatbázisból származó, több mint 2000 sebezhetőségről szóló információ alapján 10-20 percet vesz igénybe. A kimenet egy jelentés, amely tartalmazza a potenciálisan nem javított sebezhetőségek listáját és a kód kapcsolódó részeire mutató hivatkozásokat, CVE-azonosítókat és javítócsomagokat. A Google által a Vanir használatáról gyűjtött statisztikák szerint a hamis riasztások aránya 2,72%.


A javasolt eszközök előnyei:
- A lehetőség arra, hogy azonosítsuk a nem javított sebezhetőségeket harmadik fél ágazataiban, módosításaiban és kódátviteleiben, amelyek közvetlenül nem kapcsolódnak a fő projekthez. Az Android kontextusában az eszköz használható javítások alkalmazásának ellenőrzésére az OEM-gyártók által fejlesztett Android platformvariánsokban.
- A vizsgálat elvégzése kizárólag a rendelkezésre álló kód elemzésén alapul, anélkül, hogy a metadatákra, például a verziószámra, a commit-történetre vagy a SBOM (Szoftver Számlatömb) kötődne.
- Támogatás az aláírások automatikus generálásához, az újonnan megjelenő, nyilvános forrásokban fellelhető sérülékenységekről és az azt kísérő javításokról szóló információk alapján.
- A statikus kódelemzés alapú ellenőrzés teljesítménye meghaladja a dinamikus elemző és bináris csomagok ellenőrzési eszközeinek teljesítményét.
- Önállóság - az infrastruktúra saját rendszerekre való telepítésének lehetősége külső szolgáltatások igénybevétele nélkül.
- Egy aktuális aláírási adatbázis megléte, amelyet a Google Android Security Team csapata kísér.
- Támogatás a folyamatos integrációs és szállítási rendszerekhez (CI/CD). Integráció egyéb projektekbe a Vanir Python nyelvű könyvtáraként történő felhasználásával.
- A rendszer alkalmazásának lehetősége olyan feladatokhoz, amelyek nem kapcsolódnak sérülékenységekhez, például kódklónozás vagy licencelt kód más projektekben való használata.
Forrás: opennet.ru
