Les failles matérielles
Introduction
L’auteur de ce chapitre a travaillé dans la conception de produits type "Internet des objets" orientés énergétique, ainsi que dans l’interconnexion de produits industriels et de gestion technique de bâtiments.
Force est de constater que les systèmes industriels possèdent des bus terrain sans aucune sécurité physique : les bus propriétaires à base de RS232 ou RS485. D’autres en modbus ou profibus sont facilement sniffables avec une sonde à moins de 10 €, présentée plus loin ; d’autres sont totalement accessibles directement depuis le réseau : modbus TCP/UDP, bacnet. Il est donc possible d’utiliser les outils vus dans le chapitre Les failles réseau tels que Wireshark ou Ettercap afin de détourner ces protocoles. Mais cela n’est plus vraiment du domaine matériel.
Cette expérience a permis de constater que même en 2022 il est difficile de sortir un produit sécurisé ! Non pas qu’il n’y ait pas de solution de sécurisation, mais implémenter cette sécurité est souvent impossible. La vision des actionnaires est clairement d’économiser sur les budgets ; la sécurité est soit considérée comme un atout marketing, soit totalement oubliée.
Pire, la stratégie est souvent de "brider" le produit, de ne pas le rendre communicant, et plutôt de dépenser l’argent de cette sécurité en avocats et brevets.
En réalité, il est très souvent possible de modifier le comportement d’un appareil afin de répondre plus précisément aux besoins.
Qui dit hack matériel dit outillage "physique". Nous allons présenter ici quelques outils indispensables...
L’outillage de base
Lot de tournevis
Ceci est votre sésame pour accéder aux entrailles des équipements. Certains équipements vont demander des têtes non standardisées afin d’éviter que les petits bidouilleurs que nous sommes y jettent un œil. Des jeux de tournevis Torx et BTR plats, cruciformes, de précision, sont le minimum. Certaines têtes inconnues au bataillon vous résisteront, voilà une liste non exhaustive à connaître : square drive, allen, allen security, torx security, schrader, tri-wing, clutch, spanner.
En indiquant le nom d’un type de tête dans votre moteur de recherche préféré, vous trouverez forcément des sites regorgeant d’outillage permettant d’acquérir ce type de sésame.
Budget : 30 €
Source : Direct Industry, Wikimedia
Multimètre
Multimètre, l’outil de base
Le multimètre va principalement servir à suivre les pistes ; en utilisant le mode "test de continuité", vous pourrez faciliter la tâche du reverse engineering.
Il vous permettra de vérifier les différentes tensions, ou encore de connaître les valeurs de résistances.
C’est un outil indispensable, simple d’utilisation, peu coûteux et facile à se procurer.
Budget : 15 €
Platine de test
Platine de test avec alimentation 3,3 V/5 V par USB
La platine de test vous permettra de prototyper rapidement des montages simples.
Budget : 8 €
Câbles Dupont
Les câbles Dupont mâles/femelles vont vous permettre de bidouiller un circuit existant facilement ou de prototyper en les associant à la platine de test.
Budget : 6 €
Fer à souder
Le fer à souder vous permettra de souder/dessouder et donc modifier...
Utilisateur régulier
Adaptateur USB RS232 TTL
Adaptateur TTL vers USB branché sur un STM32F4 Discovery
Le FTDI chip TTL-232R-3V3 est probablement le meilleur des adaptateurs compatibles Windows et Linux, il vous permettra d’exploiter les ports série non visibles au premier abord. La plupart des box et autres systèmes embarqués sous Linux possèdent ce type de port caché à l’utilisateur final !
Budget : de 5 à 30 €
Sonde d’analyse logique
Sonde d’analyse logique Saleae 8 canaux, 24 MHz
La sonde d’analyse logique vous permettra d’analyser tout type de signal numérique. C’est un outil qui devient accessible à tout le monde depuis quelques années. Fini l’étude via l’oscilloscope de l’I²C ou le calcul de vitesse du port série, la sonde vous donnera la possibilité de sauvegarder les niveaux logiques puis d’essayer de calquer un type de bus et en voir le résultat.
Budget : 20-100 €
Interface JTAG
Dans le cadre des équipements les mieux conçus, vous allez être confronté à une interface un peu particulière : le JTAG. Ce système permet d’accéder en usine aux différents équipements d’une carte afin de les tester et d’insérer les programmes via une connectique unique. Une interface JTAG, si vous la trouvez, va vous permettre de prendre la main rapidement sur un matériel.
Budget : 25 €
Bus pirate de Dangerous Prototypes
Bus pirate V4
Le bus pirate est le couteau suisse dans l’arsenal du reverser, il est destiné à bidouiller sur les différents bus série, I²C, SPI, JTAG. Si avec une sonde d’analyse logique nous pouvons sniffer, avec un bus pirate nous pouvons mettre en place...
Utilisateur avancé
Logiciel de conception de PCB
À ce niveau, un logiciel de conception type Eagle ou ISIS va vous faciliter la conception lorsque les câbles Dupont et les platines de tests ne suffisent plus.
Pour notre part, nous possédons l’insoleuse et la graveuse afin de faire des circuits maison, mais aujourd’hui nous ne sommes plus certains de l’utilité de cet équipement. En effet, il est facile de se procurer des PCB de qualité industrielle pour moins de 10 exemplaires à des prix défiant toute concurrence.
Programmateur
Vous souhaiterez parfois reprogrammer le microcontrôleur d’une carte. Parfois, la configuration des fusibles de celui-ci vous permettra de lire/écrire. Parfois, il faudra dessouder le microcontrôleur pour l’interchanger avec un vierge n’ayant pas les fusibles d’écriture brûlés afin d’y insérer votre programme personnalisé. Il vous faudra donc le programmateur de la famille du microcontrôleur en question ainsi que quelques connaissances du langage de programmation de celui-ci.
Voici quelques demoboards de microcontrôleurs rencontrés sur le marché incluant l’interface de programmation. Le fait de choisir ces demoboards avec programmateur va permettre de reprogrammer les différentes familles de microcontrôleurs rencontrées lors de nos reverses.
L’intérêt de ce type de bijou peut être, par exemple, la création d’un lecteur de cartes à puce bien plus puissant que celui présenté avec l’Arduino, cette fois-ci de type asynchrone T0,T1 comme celui équipant les cartes bancaires.
STM32F4 Discovery
Probablement le moins coûteux des kits après l’Arduino, il vous permettra d’appréhender la famille STM32, une famille...
Méthodologie du reverse engineering matériel
Prenons un exemple de produit du marché sans le nommer.
Ce produit est une passerelle GSM vers téléphone fixe. Nous trouvons ce type d’installation dans les bateaux.
Votre mission, si vous l’acceptez, sera de trouver le code PIN de la carte SIM !
Dans un premier temps, et sans même démonter l’appareil, nous allons regarder comment il est fait.
Nous remarquons très vite un connecteur d’alimentation, une prise RJ11, un emplacement pour la carte SIM et une antenne GSM externe.
Jusque-là, rien d’exceptionnel !
Les vis sont de type tri-wing, pas accessible au premier venu donc ! Ce qui laisse croire que les concepteurs ont ajouté une protection physique car il y a au moins une lacune en matière de sécurité.
Une autre source d’information à ne pas sous-estimer est la documentation de l’appareil. On y apprend que le système permet d’initialiser le code PIN via le téléphone fixe en utilisant la combinaison : #738*746*XXXX# où XXXX est le code.
Imaginons la façon dont nous pourrions récupérer notre code PIN !
Une façon de récupérer le code PIN serait de créer une fausse carte SIM et d’enregistrer le code demandé par l’appareil lors de l’initialisation GSM directement dans l’EEPROM de la fausse carte. C’est très simple avec une BasicCard.
Grâce à la visserie, on sait que le système n’est pas forcément bien fait, cela ne coûte pas grand-chose de démonter les quatre vis et d’étudier la carte.
Une fois la carte démontée, nous allons tenter de reproduire un schéma de principe simplifié.
Pour cela, nous allons récupérer les différents...
Étude autour des T2G et Arduino
Avant l’arrivée des téléphones portables, les télécartes ont connu des heures de gloire dans les années 1980-1990. Ces petites cartes prépayées pour cabine téléphonique de technologie française ont vraiment marqué les esprits, même si aujourd’hui elles ne sont plus en service.
Elles s’échangent à prix d’or chez les collectionneurs. Il n’est donc pas rare de les croiser dans des vide-greniers.
Mais comme tout système monétique plus ou moins déguisé, elles ont fait l’objet de la convoitise de pirates.
La dernière technique connue en date était l’émulateur Josephina. Cet émulateur était l’équivalent d’un Man in the Middle matériel en laissant jouer la vraie carte pour la partie authentification et en utilisant le microcontrôleur PIC pour fausser la décrémentation de crédit.
À l’époque, Josephina était programmé en Assembleur via son PIC16F84 et un EEPROM externe.
De nombreux composants étaient nécessaires : un programmateur externe indispensable et la compréhension d’un code Assembleur, pas forcément simple pour un débutant en électronique/informatique.
À l’heure du "Do It Yourself", il est indispensable d’assimiler les techniques passées et de les appliquer aux technologies nouvelles afin d’en faciliter la compréhension et de généraliser ce savoir.
Un savoir gardé précieusement par l’élite, sinon perdu ! Ce sont ces proof of concept qu’il ne faut pas oublier, ce sont souvent ces bonnes vieilles bases qui nous ouvrent les portes de nouvelles techniques de hacking ou au contraire...