Extraire un firmware via SPI/JTAG, analyser le filesystem avec Binwalk, identifier les vulnérabilités et appliquer des c.
Résumé exécutif
L'analyse de firmware embarqué constitue la phase la plus productive du pentest IoT, révélant systématiquement des vulnérabilités critiques invisibles aux tests réseau et applicatifs. L'extraction physique via les interfaces SPI, JTAG ou UART, suivie de l'analyse statique avec Binwalk et EMBA, expose les credentials hardcodés, les clés cryptographiques embarquées, les bibliothèques obsolètes et les services réseau compilés sans protection. Ce guide détaille chaque étape de l'extraction à l'exploitation avec les outils et techniques éprouvés en audit de sécurité IoT sur des dispositifs industriels et grand public déployés dans des environnements critiques. La maîtrise de ces techniques d'analyse firmware transforme un objet connecté opaque en une cible parfaitement transparente dont chaque composant logiciel embarqué devient analysable, testable et exploitable par l'auditeur de sécurité offensive.
Le firmware embarqué est le système nerveux de tout objet connecté : il contient le système d'exploitation, les applications, les configurations réseau, les credentials de connexion aux services cloud et les clés cryptographiques utilisées pour chiffrer les communications. Contrairement aux applications web où le code source est souvent inaccessible, le firmware d'un dispositif IoT est physiquement stocké dans une puce mémoire flash soudée sur le circuit imprimé, accessible à tout attaquant disposant d'un fer à souder et d'un programmateur à 10 euros. Les fabricants qui comptent sur l'obscurité du firmware pour protéger leurs secrets se trompent fondamentalement : l'extraction et l'analyse sont des opérations routinières pour tout pentester IoT expérimenté. Les audits que nous réalisons sur des dispositifs industriels critiques révèlent systématiquement des secrets exploitables dès la première heure d'analyse du firmware extrait. Ce guide pratique détaille la méthodologie complète d'extraction et d'analyse de firmware, de l'identification des composants sur le PCB à la découverte de vulnérabilités exploitables à distance, en passant par l'émulation et le test dynamique des services embarqués. L'approche complète la méthodologie de pentest IoT en approfondissant la couche firmware qui recèle les vulnérabilités les plus critiques et les plus fréquemment ignorées par les fabricants pressés de mettre leur produit sur le marché.
- L'extraction SPI avec un programmateur CH341A est la méthode la plus fiable et la moins destructive
- Binwalk identifie et extrait automatiquement les systèmes de fichiers embarqués (SquashFS, JFFS2, CramFS)
- EMBA automatise la découverte de credentials hardcodés, clés privées et binaires vulnérables
- L'émulation QEMU avec FirmAE permet le test dynamique des services réseau sans hardware
- Le secure boot avec signature cryptographique est la seule contre-mesure efficace contre la modification de firmware
Identifier les composants et interfaces sur le PCB
La première étape de l'analyse firmware consiste à ouvrir le boîtier du dispositif et identifier les composants clés sur le circuit imprimé. Le processeur principal (SoC) détermine l'architecture cible pour le reverse engineering — les architectures ARM (Cortex-M, Cortex-A) et MIPS dominent l'IoT embarqué. La puce mémoire flash externe (identifiable par son boîtier SOIC-8 ou WSON-8) contient le firmware extractible via l'interface SPI. Les sérigraphies sur le PCB et les datasheets constructeur permettent d'identifier précisément chaque composant et ses interfaces de communication.
Les ports de débogage UART et JTAG sont fréquemment laissés accessibles sur le PCB de production. Le port UART (généralement 4 broches : VCC, TX, RX, GND) offre un accès à la console série du système d'exploitation avec un simple adaptateur FTDI à 5 euros. L'identification du port UART s'effectue avec un analyseur logique ou un multimètre : la broche TX présente une tension oscillante lors du boot, VCC est à 3.3V ou 5V constant, et GND est connecté au plan de masse. L'article sur le hardware hacking JTAG/SWD/UART détaille les techniques d'identification et de connexion à ces interfaces physiques essentielles pour l'accès initial au firmware embarqué.
Firmware : logiciel embarqué stocké dans la mémoire flash d'un dispositif électronique, comprenant le bootloader, le noyau du système d'exploitation, le système de fichiers racine et les applications. Contrairement au logiciel installable, le firmware est compilé spécifiquement pour l'architecture matérielle du dispositif cible.
Extraction du firmware par dump SPI
Le dump SPI est la méthode d'extraction la plus fiable et la plus universelle. La puce flash SPI NOR (Winbond W25Q, Macronix MX25L, GigaDevice GD25Q) stocke le firmware dans un format linéaire accessible via le bus SPI. Le programmateur CH341A, disponible pour moins de 10 euros, lit le contenu complet de la flash via une pince de test SOIC-8 qui se connecte directement sur la puce sans dessouder. La commande flashrom -p ch341a_spi -r firmware.bin effectue le dump en quelques secondes.
Les alternatives au dump SPI incluent l'interception de la mise à jour OTA avec un proxy mitmproxy si le fabricant distribue les mises à jour en HTTP non chiffré, le téléchargement depuis le portail de support technique du constructeur où les fichiers firmware sont fréquemment accessibles sans authentification, et l'accès via la console UART si le bootloader (U-Boot) supporte les commandes de lecture mémoire. Chaque méthode a ses avantages : le dump SPI fournit une copie bit-à-bit fidèle incluant le bootloader, tandis que le fichier OTA contient souvent uniquement le système de fichiers applicatif sans le bootloader propriétaire du constructeur.
| Méthode d'extraction | Outil requis | Coût | Fiabilité | Couverture |
|---|---|---|---|---|
| Dump SPI flash | CH341A + pince SOIC-8 | ~10 € | Excellente | Firmware complet + bootloader |
| Console UART/U-Boot | Adaptateur FTDI | ~5 € | Bonne | Partitions individuelles |
| Interception OTA | mitmproxy | Gratuit | Variable | Image mise à jour uniquement |
| Portail constructeur | Navigateur web | Gratuit | Variable | Image mise à jour uniquement |
| JTAG/SWD debug | J-Link, ST-Link | ~20-50 € | Excellente | Mémoire flash et RAM |
Analyse statique avec Binwalk et EMBA
Binwalk est l'outil fondamental de l'analyse de firmware embarqué. Il identifie les signatures de systèmes de fichiers (SquashFS, JFFS2, CramFS, UBIFS), les en-têtes de compression (gzip, LZMA, LZ4), les certificats X.509, les clés SSH et les binaires ELF embarqués dans le dump brut. La commande binwalk -e firmware.bin extrait automatiquement les systèmes de fichiers identifiés dans des répertoires exploratoires. L'arborescence extraite révèle la structure complète du système : fichiers de configuration dans /etc, applications dans /usr/bin, scripts de démarrage dans /etc/init.d et pages web embarquées dans /www.
L'outil EMBA (Embedded Analyzer) automatise l'analyse de sécurité complète du firmware extrait en combinant plus de 50 modules de test. Il détecte les credentials hardcodés (recherche automatisée de mots de passe dans les fichiers de configuration, les scripts et les binaires), les bibliothèques vulnérables (versions de BusyBox, OpenSSL, libcurl avec CVE connues), les clés privées embarquées (SSH, TLS, API) et les binaires compilés sans protections de sécurité (stack canaries, ASLR, NX bit). Le rapport EMBA fournit un score de sécurité global et une liste priorisée de vulnérabilités directement exploitable par le pentester pour la phase d'exploitation active.
L'analyse EMBA d'un firmware de caméra IP industrielle a révélé en moins de 5 minutes : un mot de passe root hardcodé dans /etc/shadow (hash MD5), une clé privée TLS dans /etc/ssl/ partagée par tous les dispositifs du même modèle, trois versions de BusyBox avec des CVE d'exécution de code à distance, et un script CGI de diagnostic accessible sans authentification permettant l'injection de commandes OS via le paramètre de ping.
Émulation et test dynamique avec QEMU
L'émulation du firmware avec QEMU permet de tester dynamiquement les services réseau et les interfaces web sans disposer du hardware physique. Le framework FirmAE automatise l'émulation de firmwares Linux embarqués en reconstituant l'environnement d'exécution complet : simulation de la NVRAM, création d'interfaces réseau virtuelles et configuration du routage pour rendre les services accessibles depuis la machine de l'auditeur. Cette technique accélère considérablement les tests car elle élimine la dépendance au hardware physique et permet le test parallèle de plusieurs versions de firmware simultanément.
Une fois le firmware émulé et les services réseau accessibles, le pentester applique les techniques de test classiques : scan de ports avec Nmap, fuzzing des interfaces web avec Burp Suite, test des API REST avec Postman et exploitation des vulnérabilités identifiées lors de l'analyse statique. Le reverse engineering de firmware IoT avec Ghidra complète cette analyse en permettant le désassemblage et la décompilation des binaires ARM pour identifier les vulnérabilités dans le code machine des applications propriétaires compilées sans symboles de débogage.
Contre-mesures et durcissement firmware
Le secure boot constitue la contre-mesure fondamentale contre la modification et l'injection de firmware malveillant. La chaîne de confiance démarre du bootloader immutable en ROM qui vérifie la signature cryptographique de chaque composant logiciel avant son exécution : bootloader secondaire, noyau, système de fichiers et applications. La clé publique de vérification est fusionnée dans l'OTP (One-Time Programmable) du processeur, rendant impossible sa modification par un attaquant. Le firmware readback protection empêche l'extraction via JTAG en désactivant les interfaces de débogage une fois le dispositif provisionné en production. La combinaison secure boot et readback protection élève significativement la barrière d'entrée pour l'analyse de firmware, sans toutefois la rendre impossible pour un attaquant déterminé disposant d'équipements de laboratoire avancés pour le contournement des protections OWASP IoT.
Mon avis : l'analyse de firmware est la compétence la plus rentable du pentest IoT. Cinq minutes d'analyse EMBA sur un firmware extrait révèlent plus de vulnérabilités que cinq jours de fuzzing réseau. Les fabricants qui implémentent le secure boot et le chiffrement de la flash réduisent drastiquement la surface d'attaque, mais moins de 10% des dispositifs IoT en production bénéficient de ces protections en 2026.
Quel outil utiliser pour extraire un firmware ?
Binwalk pour l'extraction logicielle depuis un dump, CH341A ou Bus Pirate pour le dump physique SPI, et un adaptateur FTDI pour l'accès UART. Le choix dépend de l'accès disponible au dispositif et au type de mémoire flash utilisée.
Comment analyser un firmware sans le hardware ?
FirmAE et QEMU permettent d'émuler des firmwares Linux embarqués en reconstituant l'environnement d'exécution complet. Les services réseau deviennent accessibles depuis votre machine d'audit pour les tests dynamiques.
Le secure boot protège-t-il complètement ?
Le secure boot vérifie l'intégrité au démarrage mais ne protège pas contre l'extraction physique via SPI. Un attaquant peut toujours dumper et analyser le firmware, même s'il ne peut pas le modifier ou injecter un firmware malveillant.
Conclusion
L'extraction et l'analyse de firmware embarqué sont des compétences essentielles du pentest IoT qui révèlent systématiquement des vulnérabilités critiques. Les outils open source Binwalk, EMBA et FirmAE rendent cette analyse accessible à tout auditeur de sécurité pour un investissement matériel minimal. L'implémentation du secure boot et du chiffrement de la flash par les fabricants reste la seule contre-mesure efficace contre l'exploitation des secrets embarqués dans les dispositifs connectés déployés en production.
L'analyse de firmware embarqué transforme un objet connecté opaque en une cible transparente. Maîtriser l'extraction SPI, l'analyse Binwalk et l'émulation QEMU vous donne accès aux secrets les plus critiques des dispositifs IoT que vous auditez, révélant les vulnérabilités invisibles aux tests réseau et applicatifs traditionnels.
Télécharger cet article en PDF
Format A4 optimisé pour l'impression et la lecture hors ligne
À propos de l'auteur
Ayi NEDJIMI
Expert Cybersécurité Offensive & Intelligence Artificielle
Ayi NEDJIMI est consultant senior en cybersécurité offensive et intelligence artificielle, avec plus de 20 ans d'expérience sur des missions à haute criticité. Il dirige Ayi NEDJIMI Consultants, cabinet spécialisé dans le pentest d'infrastructures complexes, l'audit de sécurité et le développement de solutions IA sur mesure.
Ses interventions couvrent l'audit Active Directory et la compromission de domaines, le pentest cloud (AWS, Azure, GCP), la rétro-ingénierie de malwares, le forensics numérique et l'intégration d'IA générative (RAG, agents LLM, fine-tuning). Il accompagne des organisations de toutes tailles — des PME aux grands groupes du CAC 40 — dans leur stratégie de sécurisation.
Contributeur actif à la communauté cybersécurité, il publie régulièrement des analyses techniques, des guides méthodologiques et des outils open source. Ses travaux font référence dans les domaines du pentest AD, de la conformité (NIS2, DORA, RGPD) et de la sécurité des systèmes industriels (OT/ICS).
Ressources & Outils de l'auteur
Articles connexes
Sécuriser les Objets Connectés en Entreprise en 2026
Caméras IP, badges RFID, capteurs industriels : inventorier, segmenter et surveiller les objets connectés en réseau d'en
Attaques Radio IoT : BLE, Zigbee, LoRa et SDR 2026
Techniques d'attaque sur les protocoles radio IoT avec SDR et contre-mesures défensives.
Top 10 Vulnérabilités IoT OWASP : Guide Pratique 2026
Analyse détaillée des 10 vulnérabilités OWASP IoT avec preuves de concept, impact réel et remédiation pour chaque catégorie.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire