L'extraction du firmware depuis le matériel est généralement assez obscure pour les non-initiés et nécessite du matériel spécifique (mais rassurez-vous, il est le plus souvent peu coûteux). Cette conférence espère éclairer les étapes, difficultés et pièges rencontrés lors de la rétro-ingénierie matérielle, en prenant un SSD SATA comme exemple. Elle explique aussi brièvement ce qu'il faut faire, après extraction, pour se lancer dans la rétro-ingénierie et, avec un peu de chance, trouver de belles vulnérabilités dans un firmware embarqué. Extraire le firmware d'un SSD n'est pas un processus simple, de la reconnaissance des puces SPI aux goulots d'étranglement liés au matériel dont on dispose et aux spécificités de la carte cible.
Dans un premier temps, une manière d'identifier les puces SPI sur une carte cible d'exemple sera présentée, ainsi que des indications sur la lecture de la documentation technique. Nous montrerons une méthode simple pour extraire le firmware d'un SSD à l'aide de matériel bon marché, ainsi qu'une explication rapide de l'usage de Flashrom, le logiciel utilisé pour dialoguer avec la puce. Nous aborderons aussi certains problèmes pouvant survenir lors de l'extraction d'un firmware SPI et comment les résoudre : problèmes matériels menant à des données corrompues, voire, dans de rares cas, la mise hors service du matériel !
Enfin, nous montrerons comment certains détails peuvent nous aider à trouver la bonne architecture de la machine cible, nécessaire pour commencer la rétro-ingénierie du firmware dans des outils comme Ghidra ou tout autre logiciel de rétro-ingénierie.