Compania Cruise, specializată în tehnologii de control automat al vehiculelor, codurile sursă ale proiectului , oferind instrumente pentru analiza imaginilor firmware pe baza Linux și identificarea posibilelor vulnerabilități și scurgeri de date. Codul este scris în limbajul Go și sub licența Apache 2.0.
suportă analiza imaginilor care utilizează sisteme de fișiere ext2/3/4, FAT/VFat, SquashFS și UBIFS. Pentru extragerea imaginii sunt folosite utilitare standard, cum ar fi e2tools, mtools, squashfs-tools și ubi_reader. FwAnalyzer extrage din imagine structura directoarelor și evaluează conținutul pe baza unui set de reguli. Reguli pot fi legate de metadatele FS, tipul fișierelor și conținut. La final, un raport în format JSON este generat, care rezumă informațiile extrase din firmware și emite avertismente și o listă de fișiere care nu respectă regulile procesate.
Suportă verificarea permisiunilor pentru fișiere și directoare (de exemplu, identificarea accesului de scriere pentru toți și al setărilor incorecte de UID/GID), determină existența fișierelor executabile cu flagul suid și utilizarea etichetelor SELinux, identifică cheile de criptare uitate și fișierele potențial periculoase. În conținut sunt evidențiate parolele de inginerie lăsate și datele de depanare, se extrag informații despre versiuni, se face determinarea/verificarea conținutului pe baza hash-urilor SHA-256 și se efectuează căutări folosind măști statice și expresii regulate. Este posibilă atașarea de scripturi externe de analiză pentru anumite tipuri de fișiere. Pentru firmware-urile bazate pe Android, se determină parametrii de construcție (de exemplu, utilizarea modului ro.secure=1, starea ro.build.type și activarea SELinux).
FwAnalyzer poate fi folosit pentru a simplifica analiza problemelor de securitate în firmware-urile altora, dar scopul principal este controlul calității propriilor firmware-uri sau celor furnizate de terți prin contract. Regulele FwAnalyzer permit generarea unei specificații precise a stării firmware-ului și identificarea abaterilor inacceptabile, cum ar fi atribuirea unor permisiuni greșite sau lăsarea cheilor private și a codului de depanare (de exemplu, verificarea permite evitarea unor situații cum ar fi utilizat în etapa de testare a serverului ssh, de inginerie predefinită, pentru citire /etc/config/shadow sau pentru generarea semnăturii digitale).
Sursa: opennet.ro
