L'azienda Cruise, specializzata nelle tecnologie di guida automatizzata per veicoli, i codici sorgente del progetto , che fornisce strumenti per analizzare le immagini del firmware basate su Linux e identificare potenziali vulnerabilità e perdite di dati. Il codice è scritto in Go e sotto licenza Apache 2.0.
Supporta l'analisi delle immagini che utilizzano file system ext2/3/4, FAT/VFat, SquashFS e UBIFS. Per l'analisi delle immagini vengono utilizzati strumenti standard come e2tools, mtools, squashfs-tools e ubi_reader. FwAnalyzer estrae dall'immagine l'albero delle directory e valuta il contenuto in base a un insieme di regole. Le regole possono essere collegate ai metadati del file system, al tipo di file e al contenuto. In output viene generato un rapporto in formato JSON, che riassume le informazioni estratte dal firmware e fornisce avvisi e un elenco di file che non rispettano le regole elaborate.
È supportato il controllo dei diritti di accesso a file e directory (ad esempio, viene rilevato l'accesso in scrittura a tutti e l'assegnazione di UID/GID non corretti), viene determinata la presenza di file eseguibili con il flag suid e l'uso di etichette SELinux, vengono identificati chiavi di crittografia dimenticate e file potenzialmente pericolosi. Vengono evidenziate le password di ingegneria e i dati di debug lasciati nel contenuto, sono estratte informazioni sulle versioni, viene eseguita la verifica del contenuto tramite hash SHA-256 e viene effettuata la ricerca utilizzando maschere statiche e espressioni regolari. È possibile collegare script analizzatori esterni a tipi di file specifici. Per i firmware basati su Android vengono determinati i parametri di compilazione (ad esempio, l'uso della modalità ro.secure=1, lo stato di ro.build.type e l'attivazione di SELinux).
FwAnalyzer può essere utilizzato per semplificare l'analisi dei problemi di sicurezza nei firmware di terzi, ma il suo scopo principale è il controllo della qualità dei propri firmware o di quelli forniti da fornitori terzi in base a contratto. Le regole di FwAnalyzer consentono di creare una specifica accurata dello stato del firmware e di identificare deviazioni inaccettabili, come l'assegnazione di diritti di accesso non corretti o la presenza di chiavi riservate e codice di debug (ad esempio, il controllo permette di evitare situazioni come utilizzato durante la fase di testing del server ssh, ingegneristica predeterminata, in sola lettura /etc/config/shadow o per la creazione di firme digitali).
Fonte: opennet.ru
