Contribuez à SecuObs en envoyant des bitcoins ou des dogecoins.
Nouveaux articles (fr): 1pwnthhW21zdnQ5WucjmnF3pk9puT5fDF
Amélioration du site: 1hckU85orcGCm8A9hk67391LCy4ECGJca

Contribute to SecuObs by sending bitcoins or dogecoins.



[Hacking Hardware - Partie 1] - Introduction et présentation

Par Nicolas Ruff, CCR EADS
Le 23/09/2006


Résumé : Comme le dit l'adage (qui fait partie des 10 lois fondamentales de la sécurité) : "If a bad guy has unrestricted physical access to your computer, it's not your computer anymore". Certes, mais en pratique comment cela se passe-t-il ?



Comme le dit l'adage (qui fait partie des 10 lois fondamentales de la sécurité) [10Laws - lien ] :


"If a bad guy has unrestricted physical access to your computer, it's not your computer anymore".


Certes, mais en pratique comment cela se passe-t-il ? Beaucoup de rumeurs courent ici ou là, mais dans la pratique la majorité des consultants en sécurité informatique sont largement dépassés par le domaine des attaques matérielles.

L'objectif de ce tutoriel en 2 parties est de démystifier les attaques matérielles sans pour autant être un cours d'électronique complet. La première partie présente un tour d'horizon des attaques, tandis que la deuxième partie est un TP à réaliser chez soi.


Attaquer le matériel, par qui ?

Toute architecture logicielle, de la plus simple (la machine à états d'un digicode) jusqu'à la plus complexe (Internet) repose sur du matériel. Après le "tout numérique" (des microprocesseurs partout), on assiste depuis longtemps dans l'industrie au phénomène du "tout COTS" (Commercial Off-The-Shelf), c'est-à-dire pour résumer au PC sous Windows ou Linux, fût-il embarqué.

L'une des conséquences de cette tendance lourde, c'est que les systèmes embarqués sont de plus en plus facile à analyser car basés sur des technologies relativement "ouvertes".

Parallèlement, le prix des équipements électroniques "high tech" est en baisse, et il n'est pas impensable aujourd'hui pour un particulier de s'offrir un oscilloscope numérique ou un analyseur logique.

Il est donc raisonnable de penser que les attaques matérielles ne sont plus réservées aux gouvernements, mais que des concurrents ou des particuliers peuvent y avoir accès pour un prix raisonnable … seuls les domaine les plus pointus, tels que l'analyse de composants au microscope électronique, restent pour le moment inaccessibles.


Attaquer le matériel, pourquoi ?

Lorsqu'on parle d'attaques matérielles, il faut en fait distinguer 2 concepts complètement distincts : le matériel comme cible de l'attaque, ou le matériel comme moyen d'attaque ...


Le matériel comme cible

Cibles

Les cibles d'une attaque matérielle peuvent être nombreuses, même en se limitant aux domaines susceptibles d'intéresser un RSSI en entreprise. Citons par exemple :

Les consommables informatiques, tels que les cartes magnétiques, les systèmes RFID, les cartes à puce, les clés USB "sécurisées" ou "chiffrantes", les dongles de protection logicielle, ...

Par exemple, les attaques sur les systèmes RFID ont été largement médiatisées ces derniers temps, que ce soient les clés de voiture sans contact [RFID - lien ] ou les passeports électroniques [Passeport - lien ].

Les systèmes unitaires (cartes ou processeurs), avec pour application l'overclocking ou le débridage de processeurs.


Quelques exemples :

Il est possible de transformer un Athlon XP en Athlon MP par une simple soudure [Athlon - lien ].

Il est possible d'extraire le code d'un microcontrôleur malgré le bit de protection, en faisant varier la tension d'alimentation [uC - lien ]. Cette technique a été largement utilisée pour cloner les clones (!) de cartes satellites.

Les systèmes complets, tels que les terminaux de paiement, les terminaux d'accès (décodeurs, modems ADSL) ou les consoles de jeu.


Objectifs

Les objectifs d'une attaque matérielle peuvent être nombreux. Je ne me prononcerais pas sur les motivations, qui peuvent être crapuleuses ou au contraire parfaitement honnêtes ! On peut citer par exemple :

- Evaluer la sécurité d'un système matériel dans le cadre d'une analyse de risque globale. Ex. évaluer la résistance de la protection BIOS d'un portable en cas de vol.

- Bien entendu la démarche est symétrique pour un attaquant. Ex. casser la protection BIOS d'un portable après l'avoir volé …

- Comprendre le fonctionnement d'un système pour l'améliorer ou l'utiliser plus efficacement. Ex. overclocking, travaux du projet OpenWRT [OpenWRT - lien ], etc.

En résumé, il est fort probable que tout le monde (en tout cas tous les lecteurs de cet article :) ait un jour eu une bonne raison d'analyser un système matériel !


Le matériel comme moyen

Accès bas niveau

Le matériel peut également servir d'outil d'attaque dans de nombreux cas. En effet, avoir accès au matériel (la couche 1 du modèle OSI dans le cas d'un matériel réseau) permet de réaliser des attaques au plus bas niveau du protocole utilisé. Quelques exemples d'attaques réalisables :

Ecouter la phase d'association du protocole BlueTooth à l'aide d'un dongle FTE [FTE - lien ].

Provoquer un déni de service complet sur les communications dans la bande des 2,4 GHz (WiFi et BlueTooth) à l'aide d'un dongle WiSpy [WiSpy - lien ].






Emuler n'importe quel périphérique USB et injecter des données à tous les niveaux du protocole, à l'aide d'une carte à base de microcontrôleur.






Optimisation des attaques

Pour les tâches simples et/ou répétitives, le matériel est également beaucoup plus efficace que le logiciel. Dans cette catégorie d'attaques rentrent aussi bien les keyloggers matériels que les systèmes de cassage de clés de chiffrement.

A titre d'exemple, les cartes à base de FPGA Virtex-4 de la société PicoComputing [Pico - lien ] offrent une puissance de calcul de 50 million de mots de passe Windows LanManager par seconde en consommant 5 Watts (à comparer avec les 2 million de clés/seconde sur un PC de bureau récent, consommant dans les 300 Watts).






Attaquer le matériel, comment ?

Analyse des composants

Bien entendu, analyser des systèmes électroniques requière des compétences certaines en électronique ... Toutefois, dans le cadre de l'analyse de systèmes informatiques, pas la peine de s'y connaitre en théorie du signal, de simples notions en électronique numérique suffisent en général.

L'une des étapes clés est l'identification des composants utilisés, afin de cerner les fonctions essentielles du produit. Normalement, toutes les notices sont librement téléchargeables sur Internet. Avec l'expérience, on se rend compte que les designs réutilisent souvent les mêmes concepts et les mêmes composants :

- Les circuits 74* sont des circuits logiques de base ;
- Les circuits BCM* sont des chips "tout en un" de la société BroadCom, à cœur MIPS ;
- Les circuits PIC* ou AT* sont des microcontrôleurs des sociétés MicroChip et ATMEL, respectivement ;
- Le MAX-232 est utilisé pour convertir les niveaux logiques TTL (0/+5V) en niveaux logiques RS-232 (souvent -12V/+12V) et réciproquement ;
- La société Xilinx est spécialisée dans les FPGA (composants logiques programmables) ;
- Etc.

Les annotations imprimées directement sur la carte mère peuvent également s'avérer d'une grande utilité !

Une idée générale du schéma d'architecture permet d'identifier les points clés de l'analyse : mémoires non volatiles contenant du microcode, ports de débogage, ports d'entrée/sortie, etc.


La norme RS-232

La majorité des systèmes embarquant un système d'exploitation Linux ou VxWorks disposent d'un port console, destiné aussi bien à l'affichage des logs qu'au débogage.

Ce port n'est parfois pas apparent sur le système final, mais relativement simple à identifier sur la carte mère, surtout lorsque le circuit MAX-232 est utilisé. En cas de doute, une analyse à l'oscilloscope permet de reconnaître les trames caractéristiques d'un port série.

Une fois la connexion établie avec le PC, il est en général possible d'obtenir des informations essentielles telle que le log de démarrage de l'équipement. Le fin du fin est d'obtenir un shell sans authentification sur ce port !


La norme JTAG

La norme JTAG [JTAG - lien ] a été conçue initialement pour effectuer des tests électriques sur des systèmes complexes (ex. composants montés en surface, circuits imprimés multicouches). En pratique elle se matérialise par un bus série et un jeu de commandes.

Cette norme a ensuite été étendue par de nombreux fabriquants pour y ajouter des commandes de débogage in-circuit donnant accès directement au cœur du microprocesseur. Comme le dit la page Wikipedia consacrée au sujet, il s'agit d'une backdoor parfaite !

Il est quasiment impossible de rencontrer un système un tant soit peu complexe qui ne contienne pas un port JTAG. Par ailleurs il existe des logiciels gratuits permettant d'exploiter les fonctions JTAG, comme l'utilitaire Debrick [Debrick - lien ] du projet OpenWRT.

Muni de ce logiciel et d'un fer à souder, il devient possible de se brancher au cœur de n'importe quelle architecture supportée, sans démonter un seul composant !


Autres ressources dans ce dossier

[Hacking Hardware - Partie 2] - Exemple d'attaque spoofer une adresse MAC lien

[Hacking Hardware - Partie 3] - Opérations de lecture lien

[Hacking Hardware - Partie 4] - Opérations d'écriture, test et conclusion lien