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