A Cruise cég, amely az önvezető autók technológiájára specializálódott, a projekt forráskódját , amely eszközöket biztosít a Linux alapú firmware képek elemzésére és a potenciális sebezhetőségek, adatlopások feltérképezésére. A kód Go nyelven íródott, és Apache 2.0 licenc alatt.
támogatja az ext2/3/4, FAT/VFat, SquashFS és UBIFS fájlrendszereket. A képekhez használt szabványos eszközök, mint például az e2tools, mtools, squashfs-tools és ubi_reader segítségével nyílik meg a kép. A FwAnalyzer kinyeri a könyvtárfát a képből, és a tartalom értékelését egy szabálykészlet alapján végzi. A szabályok a fájlrendszer, a fájltípus és a tartalom metainformációihoz köthetők. A kimenet egy JSON formátumú jelentés, amely összegzi a firmware-ből kinyert információkat, és figyelmeztetéseket ad, valamint felsorolja azokat a fájlokat, amelyek nem felelnek meg a feldolgozott szabályoknak.
Támogatja a fájlok és könyvtárak hozzáférési jogainak ellenőrzését (például az írásra való hozzáférés és a nem megfelelő UID/GID beállítások azonosítását), a suid zászlóval rendelkező végrehajtható fájlok meglétét, valamint SELinux címkék használatát, az elfelejtett titkosítási kulcsokat és a potenciálisan veszélyes fájlokat. A tartalomban kiemelésre kerülnek a hátrahagyott mérnöki jelszavak és debug adatok, verzióinformációk találhatók, SHA-256 hash-ek alapján azonosítás/ellenőrzés történik, és statikus maszkokkal, valamint reguláris kifejezésekkel történik a keresés. Külső elemzőszkriptek kapcsolódhatnak bizonyos fájltípusokhoz. Android alapú firmware-ek esetén a gyártási paraméterek (például a ro.secure=1 mód használata, a ro.build.type állapota és a SELinux aktiválása) azonosíthatók.
A FwAnalyzer segíthet a harmadik fél firmware-einek biztonsági problémáinak elemzésében, de alapvető célja a saját firmware-jeink, illetve a szerződéses harmadik fél által biztosított firmware-ek minőségének ellenőrzése. A FwAnalyzer szabályai lehetővé teszik a firmware állapotának pontos specifikálását, és az elfogadhatatlan eltérések azonosítását, mint például nem megfelelő jogosultságok kiadása vagy zárt kulcsok és hibakereső kód hátrahagyása (például a vizsgálat elkerülése érdekében, mint például a tesztelési fázisban használt ssh szerver, mérnöki jelszó, a /etc/config/shadow fájl olvasása vagy digitális aláírás létrehozása).
Forrás: opennet.ru
