Introduction au hardware hacking
Hack in Paris c’est pour bientôt, histoire de vous remettre à jours avec certaines des conf présentées, je vous fait de nouveau profiter des articles ecrits par mes amis de Sysdream
Par Damien Cauquil Présentation de l’auteur Damien Cauquil est un passionné d’informatique, d’électronique et de systèmes embarqués et surtout le Directeur du Labo de recherche de Sysdream. Sysdream est un cabinet d’audit et de conseil. Vous pouvez aussi retrouver Damien sur son blog.
Introduction
Le hardware hacking est une discipline visant à analyser et comprendre le fonctionnement d’un matériel, sans aucun autre élément que le matériel lui-même, afin d’y trouver de potentielles vulnérabilités voire dans certains cas de le réutiliser ou de l’adapter.
OpenWRT est un des exemples les plus connus de hack hardware : il vise à installer une version open source et personnalisable d’un routeur WiFi sur des matériels a priori non modifiables, en exploitant des faiblesses ou des fonctionnalités cachées de ces derniers. Il ajoute même des fonctionnalités et améliore les performances !
De la même façon, les ROM Android alternatives comme CyanogenMod sont réalisées à partir de bidouilles similaires, nécessitant du matériel adéquat et des connaissances particulières.
Origine
Les premiers ordinateurs personnels comme le Sinclair ZX80 ou encore l’Apple II étaient fournis avec les schémas électroniques permettant de comprendre leur fonctionnement et de s’interfacer avec ceux-ci. Cette pratique est désormais caduque, et plus aucun équipement n’est fourni avec les schémas de conception, ceux-ci étant protégés par des brevets et jalousement gardés par leurs concepteurs.
Il n’y a donc aucune autre alternative, afin de comprendre le fonctionnement d’un système, que d’ouvrir ledit système et d’analyser les composants qui s’y trouvent afin de retrouver tout ou partie du schéma de conception. On parle alors de rétro-ingénierie matérielle, une discipline qui requiert de solides compétences en électronique.
La série « Halt and catch fire » illustre cette pratique dans le premier épisode, avec deux des protagonistes qui décident de comprendre le fonctionnement d’un composant d’un ordinateur personnel IBM.
La miniaturisation des composants, couplée aux grandes avancées de l’informatique, a joué un rôle crucial dans le développement des systèmes embarqués. De nos jours, on retrouve des microprocesseurs et des microcontrôleurs dans presque tout équipement connecté, de la box de votre fournisseur d’accès à votre pèse-personne dernière génération. Il en va de même pour votre smartphone ou le routeur WiFi que vous employez à la maison : ce sont des ordinateurs plus ou moins puissants, réalisant des tâches complexes.
Néanmoins, l’analyse et la compréhension de leur conception sont rendues difficiles à cause de cette miniaturisation : il faut désormais de puissantes loupes et de l’expérience pour identifier des composants qui auparavant étaient facilement identifiables. Cela ne veut pas dire que l’on ne peut pas bidouiller, car il reste un ensemble de composants avec lesquels nous pouvons interagir : les interfaces de communication. Parmi les interfaces les plus souvent employées, on retrouve notamment :
- les interfaces Ethernet (réseau),
- les interfaces de console série, anciennes mais toujours employées,
- les interfaces électroniques, employant des protocoles barbares comme l’I2C, SPI ou JTAG
Certes, ces mécanismes de communication ne sont pas jeunes, mais permettent de communiquer à la fois avec le système informatique embarqué s’il y en a un, mais aussi avec des composants importants comme la mémoire de stockage ou des interfaces de débogage dites bas-niveau, intervenant directement au niveau du microprocesseur ou du microcontrôleur.
À l’aide d’outils adaptés dont certains sont open source, comme l’excellent GoodFET de Travis Goodspeed, ou encore HardSploit, un outil type Metasploit, mais pour le hardware hacking, on peut réussir à extraire des données des composants mémoire, mais aussi influencer le comportement des systèmes.
Certaines attaques permettent même de contourner des protections complexes empêchant de modifier du code implanté dans ces derniers. Le champ des possibles est vaste, comme par exemple reprogrammer la mémoire d’un équipement (comme c’est le cas lors de l’installation d’OpenWRT) ou encore réaliser une extraction du contenu de cette mémoire (pour la réalisation de ROM alternatives) :
Une fois les informations glanées de la mémoire d’un équipement, il est alors possible de les analyser afin d’identifier de possibles vulnérabilités. Aussi, certaines personnes se sont spécialisées dans cette discipline, et pratiquent la rétro-ingénierie sur les données ainsi obtenues. Elles peuvent ainsi identifier des systèmes de fichiers, voire même les fichiers HTML employés pour l’interface web de l’équipement par exemple ! Dans d’autres cas, c’est du code exécutable qui sera analysé, permettant ainsi de déceler des faiblesses de conception ou des vulnérabilités pouvant être exploitées.
La vidéo suivante montre un hack matériel permettant de modifier les prix des étiquettes électroniques présentes dans bon nombre de magasins :
La vidéo suivante montre la réalisation d’une télécommande permettant de piloter l’éclairage public, via l’exploitation d’un système radio des années 90 :
Pour en savoir plus Le blog de /dev/ttyS0 regorge d’exemples d’analyse de firmwares d’équipements et est aussi une bonne source quant à l’accès aux interfaces de communication (port série et JTAG).
Mise en pratique
Côté mise en pratique, nous conseillons la formation de M. Julien Moinard et M. Yann Allain, fondateur et directeur actuel de Opale Security, intitulée “HARDWARE HACKING LABORATORY FOR SOFTWARE PENTESTERS”.
Yann Allain est aussi expert en sécurité des systèmes matériels et embarqués, et participe activement avec son équipe chez Opale Security au développement de l’outil HardSploit qui sera d’ailleurs présenté à la BlackHat USA 2015.
Cette formation sur 3 jours, tente de répondre à la question suivante : Comment vérifier la sécurité de systèmes embarqués ? Elle sera dispensée du 15 au 17 juin 2015 lors de la 5e édition de Hack In Paris, événement organisé par Sysdream. Si vous voulez y assister, contacter directement par mail [email protected] .
Bon hardware hacking à tous !
Sur mobile aussi la sécurité est importante, encore plus celles des données personnelles. C’est un des meilleurs moyen de se protéger, connexion sécurisée, surf anonyme et surtout accès à tous les sites peu importe le lieu géographique. Pour être tranquille vous pouvez tester Freedome pour Android ici et pour iOS ici.