Das Unternehmen Cruise, das sich auf Technologien für autonomes Fahren spezialisiert hat, Quelltexte des Projekts , das Werkzeuge zur Analyse von Linux-basierten Firmware-Images bereitstellt und potenzielle Schwachstellen sowie Datenlecks identifiziert. Der Code ist in Go geschrieben und unter der Apache 2.0-Lizenz.
unterstützt die Analyse von Images, die die Dateisysteme ext2/3/4, FAT/VFat, SquashFS und UBIFS verwenden. Zur Extraktion des Images werden Standardwerkzeuge wie e2tools, mtools, squashfs-tools und ubi_reader eingesetzt. FwAnalyzer extrahiert die Verzeichnisstruktur aus dem Image und bewertet den Inhalt basierend auf einem Regelwerk. Die Regeln können an die Metadaten des Dateisystems, den Dateityp und den Inhalt gebunden werden. Am Ende wird ein Bericht im JSON-Format erstellt, der die aus der Firmware extrahierten Informationen zusammenfasst und Warnungen sowie eine Liste von Dateien ausgibt, die nicht den verarbeiteten Regeln entsprechen.
Die Überprüfung der Zugriffsrechte für Dateien und Verzeichnisse wird unterstützt (zum Beispiel wird festgestellt, ob jeder Schreibzugriff hat und ob ungültige UID/GID gesetzt sind). Zudem wird ermittelt, ob ausführbare Dateien mit dem SUID-Flag vorhanden sind, und es erfolgt eine Überprüfung der Nutzung von SELinux-Tags. Verwaiste Verschlüsselungsschlüssel und potenziell gefährliche Dateien werden identifiziert. Ingenieurpasswörter und Debugging-Daten werden im Inhalt hervorgehoben, Informationen über Versionen werden dargestellt, und die Überprüfung der Dateien erfolgt mithilfe von SHA-256-Hashes. Außerdem wird eine Suche unter Verwendung statischer Masken und regulärer Ausdrücke durchgeführt. Externe Analysetools können an spezifische Dateitypen gebunden werden. Für Android-basierte Firmware werden die Build-Parameter ermittelt (zum Beispiel die Verwendung des Modus ro.secure=1, der Status von ro.build.type und die Aktivierung von SELinux).
FwAnalyzer kann verwendet werden, um die Analyse von Sicherheitsproblemen in fremden Firmware-Versionen zu vereinfachen. Der Hauptzweck besteht jedoch darin, die Qualität eigener Firmware oder von Drittanbietern, die vertraglich geliefert werden, zu kontrollieren. Die Regeln von FwAnalyzer ermöglichen es, eine präzise Spezifikation des Zustands der Firmware zu erstellen und unerlaubte Abweichungen zu identifizieren, wie z.B. die Zuweisung falscher Zugriffsrechte oder das Verlassen von geheimen Schlüsseln und Debug-Code (zum Beispiel hilft die Überprüfung, Situationen wie zu vermeiden, in denen eines während der Testphase verwendeten SSH-Servers, Ingenieur-Passwort, lesezugänglich für /etc/config/shadow oder zur Erstellung digitaler Signaturen).
Quelle: opennet.ru
