Hack hardware
Auteur : Bryk
Zine : Rafale #16



Laissez-moi vous raconter une histoire. Il était une fois, une société 
spécialisée dans le pentesting, qui devait faire des tests chez un client. Ce 
client était sérieux, les employés sensibilisés à la sécurité, et des règles 
bien respectées. Bref, la mission de pénétrer le réseau informatique semblait 
difficile par les moyens classique telque le phishing, failles diverses, 
exploits, attaques web, ...

Alors la société de pentest eu une idée radicalement différente: utiliser une 
attaque hardware! 

Cette société de pentest modifia une souris d'ordinateur pour y intégrer un 
micro controleur, une carte mémoire et un mini hub usb. La souris a été 
ensuite remise dans son emballage d'origine, refermé avec soin et envoyé à un 
employé avec une belle lettre lui disant qu'il avait ce superbe cadeau 
promotionnel bla bla bla. Que fit cet employé quand il reçu son cadeau? 
Qu'auriez-vous fait? Eh oui, il brancha la souris sur son pc. Ce qui alimenta 
le micro controleur et lança le piège! En effet, le micro controleur simula un 
clavier pour taper des commandes, et lancer un malware présent sur la carte 
mémoire. Cela, sans action de l'utilisateur.

Cette histoire vous rappelle quelque chose? C'est normal, c'est une histoire 
vrai, de la société Netragard et de sa souris « Cheval de Troie ».
 


 Lorsque vous recevez un fichier, un cd-rom, ... vous le passez à l'anti-virus 
 avant de l'utiliser. Par contre, quand c'est un gadget usb (souris, clavier, 
 lance missile, Nabaztag, ...) que faites-vous? Vous le branchez sans doute, 
 sans plus de vérification. Vous n'êtes pas électronicien, vous pensez être 
 incapable de programmer un micro controleur pour tester une telle attaque? 
 Vous vous trompez! Et je vais essayer de vous le prouver dans cet article!




Arduino, che cosa è? Una pizza?


L'Arduino (1) est une plate-forme de prototypage électronique, open source, et 
avec une très grande communauté sur Internet. Pour faire plus simple, c'est une 
platine électronique, avec un micro controleur, son environnement (quartz, 
condensateur, ...), des entrées/sorties et une connexion usb vers un pc. Pour 
le programmeur, vous pouvez utiliser l'environnement de développement basé sur 
Processing, et utiliser un langage proche du C. 

Son prix tourne autour de 30€, on le trouve facilement, et avec quelques 
composants externes on peut réaliser de nombreux montages électroniques.
Par exemple il y a des projets du type:
 - communication avec des mémoires via le protocole SPI
 - construction de robots marcheurs, rampants, ...
 - jeux de lumières
 - ...

Vous trouverez sur Internet toute une communauté très active sur l'Arduino, 
sur toute sorte de projet. 

Pour les électroniciens, l'Arduino est une plat-eforme de prototypage rapide.
Pour les non électroniciens, l'Arduino est une façon simple de découvrir ce 
monde merveilleux qu'est l'électronique!



Arduino Duemilanove.



Exemple concret


Suite à l'attaque décrite au début de cet article, j'ai voulu utiliser mon 
Arduino Duemillanove pour simuler un clavier usb et envoyer des commandes à un 
pc. Mon premier réflexe a été de rechercher sur le net si une autre personne 
l'avait fait avant moi. Et j'ai trouvé facilement (2)! Un projet simple, avec 
un Arduino, 3 résistances, 2 diodes Zéner, un câble usb et un peu de fil. J'ai 
donc pris ces composants, le programme à mettre dans l'Arduino qui est 
disponible, câblé tout ça, programmé l'Arduino et testé. Et ça fonctionne très 
bien. Mon arduino émule un clavier usb et envoie des commandes à mon pc.



Photo du montage.



Vue d'écran de l'IDE de l'Arduino.



Résultat dans un éditeur de texte.


Mon Arduino m'a permis de faire du prototypage rapide, pour valider le 
fonctionnement. Mais évidement, ce montage pourrait être miniaturisé, optimisé, 
avec des composants minuscules en cms, le montage complet tiendrait sur un 
timbre poste!



Conclusion


Imaginez maintenant un beau clavier, très design, ergonomique. A l'intérieur se 
trouve un micro controleur, une mémoire et quelques composants. Chaques touches 
tapées au clavier pourraient être enregistrées (mots de passe, ...) et rejouées 
à l'insu de l'utilisateur! Un rêve? Quelque chose de non réalisable? Si vous 
recevez en cadeau un tel clavier, allez vous le connecter à votre pc?

Maintenant vous savez les risques de brancher un périphérique externe à votre 
pc que ce soit un gadget usb (ventilateur, lance missiles, frigo, ...) ou 
autre. 

Comment se protéger? Ne pas brancher n'importe quoi sur son pc, être méfiant de 
la provenance du périphérique. Vous pouvez aussi démonter le produit et 
regarder si queque chose vous semble rajouté, bidouiller.

J'espère aussi que cet article vous a donné envie de vous mettre à 
l'électronique.   


Have Fun ...


(1) www.arduino.cc
(2) www.practicalarduino.com/projects/virtual-usb-keyboard