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