La société Cruise, spécialisée dans les technologies de conduite autonome, les codes sources du projet , fournissant des outils pour analyser les images de firmware basées sur Linux et identifier les vulnérabilités potentielles et les fuites de données. Le code est écrit en Go et sous licence Apache 2.0.
L'analyse des images utilisant les systèmes de fichiers ext2/3/4, FAT/VFat, SquashFS et UBIFS est prise en charge. Pour extraire l'image, des utilitaires standards tels que e2tools, mtools, squashfs-tools et ubi_reader sont utilisés. FwAnalyzer extrait de l'image l'arborescence des répertoires et évalue le contenu en fonction d'un ensemble de règles. Les règles peuvent être liées aux métadonnées du système de fichiers, au type de fichiers et au contenu. En sortie, un rapport au format JSON est généré, résumant les informations extraites du firmware et fournissant des alertes et une liste de fichiers ne respectant pas les règles appliquées.
Il prend en charge la vérification des droits d'accès aux fichiers et répertoires (par exemple, il détecte les accès en écriture non restreints et les UID/GID incorrects), identifie la présence de fichiers exécutables avec le drapeau suid et l'utilisation d'étiquettes SELinux, détecte les clés de chiffrement oubliées et les fichiers potentiellement dangereux. Dans le contenu, il met en évidence les mots de passe d'ingénierie laissés et les données de débogage, extrait des informations sur les versions, effectue une identification/vérification des contenus par hachages SHA-256 et procède à des recherches en utilisant des masques statiques et des expressions régulières. La liaison de scripts d'analyse externes à certains types de fichiers est possible. Pour les firmwares basés sur Android, les paramètres de compilation sont déterminés (par exemple, l'utilisation du mode ro.secure=1, l'état de ro.build.type et l'activation de SELinux).
FwAnalyzer peut être utilisé pour simplifier l'analyse des problèmes de sécurité dans des firmwares tiers, mais son objectif principal est le contrôle de la qualité des propres firmwares ou de ceux fournis par des fournisseurs externes sous contrat. Les règles de FwAnalyzer permettent de constituer une spécification précise de l'état du firmware et d'identifier les écarts inacceptables, tels que l'attribution de droits d'accès incorrects ou le fait de laisser des clés privées et du code de débogage (par exemple, la vérification permet d'éviter des situations telles que un serveur SSH utilisé durant la phase de test, mot de passe technique, en lecture /etc/config/shadow ou de formation de signature numérique).
Source : opennet.ru
