Företaget Cruise, som specialiserar sig på teknologier för automatiserad bilstyrning, öppna källkoder för projektet , som erbjuder verktyg för att analysera Linux-baserade firmwarebilder och identifiera potentiella sårbarheter och dataläckor. Koden är skriven i Go och är licensierad under Apache 2.0.
analyserar bilder som använder filsystemen ext2/3/4, FAT/VFat, SquashFS och UBIFS. För att avtäcka bilden används standardverktyg som e2tools, mtools, squashfs-tools och ubi_reader. FwAnalyzer extraherar katalogträdet från bilden och utvärderar innehållet baserat på en uppsättning regler. Reglerna kan kopplas till filsystemmetadata, filtyper och innehåll. Rapporten genereras i JSON-format och summerar den information som extraherats från firmware och ger varningar samt en lista över filer som inte uppfyller de behandlingade reglerna.
Det stödjer kontroll av fil- och katalogtillgångar (till exempel identifieras skrivåtkomst för alla och felaktiga UID/GID), det fastställs om exekverbara filer har suid-flagga och använder SELinux-taggar, glömda krypteringsnycklar och potentiellt farliga filer identifieras. I innehållet markeras kvarlämnade ingenjörslösenord och felsökningsdata, versionsinformation utpekas, hash-checking med SHA-256 utförs och sökningar görs med hjälp av statiska masker och reguljära uttryck. Det är möjligt att koppla externa analyskript till vissa filtyper. För Android-baserade firmware identifieras byggparametrar (till exempel användning av läget ro.secure=1, tillståndet ro.build.type och aktivering av SELinux).
FwAnalyzer kan användas för att förenkla analysen av säkerhetsproblem i andras firmware, men huvudsakligt syfte är att kontrollera kvaliteten på egna firmware eller de som levereras av externa leverantörer enligt kontrakt. FwAnalyzers regler gör det möjligt att skapa en exakt specifikation av firmwarestatus och identifiera oacceptabla avvikelser, såsom felaktiga åtkomsträttigheter eller kvarlämnade hemliga nycklar och felsökningskod (till exempel gör kontrollerna det möjligt att undvika sådana situationer som av den ssh-server som användes under testningen, ingenjörslösenord, för läsning /etc/config/shadow eller för skapande av digitala signaturer).
Källa: opennet.ru
