au sommaire
Voilà quelques jours, nous évoquions le projet d'Amazon d'utiliser des drones pour livrer des paquets à ses clients. Une initiative qui a immédiatement donné des idées à Samy Kamkar, un célèbre hacker américain. « Comme cela serait amusant de prendre le contrôle des drones transportant les colis d'AmazonAmazon... ou de prendre le contrôle de n'importe quels autres drones pour en faire mes petits drones-zombies », écrit-il en préambule d'un mode d'emploi pour le moins étonnant qu'il livre au grand public. À partir d'une applicationapplication qu'il a développée, d'outils logiciels open source et de quelques composants électroniques peu onéreux, Samy Kamkar a transformé un drone Parrot AR.Drone 2.0 en pirate de l'airair.
Baptisé SkyJack, l'application est capable de prendre le contrôle de n'importe quel drone de Parrot en quelques secondes. « Ce drone n'avait virtuellement aucune sécurité, il était mûr pour une attaque », confie Samy Kamkar à Futura-Sciences. Le jeune homme nous précise d'emblée que sa démarche de rendre publique cette méthode visait à « mettre la pressionpression » aux fabricants, en l'occurrence Parrot, afin qu'ils améliorent la sécurité de leurs produits.
Un Raspberry Pi et l’application SkyJack pour attaquer les drones
Samy Kamkar est une célébrité du monde des hackers. Il est l'auteur du ver de réplicationréplication CSS Samy, au demeurant inoffensif, qui a infecté le réseau social MySpace en 2005. En l'espace de 20 heures, le ver s'était propagé à plus d'un million de membres, forçant le réseau social à fermer temporairement. Un exploit qui a valu à son auteur une condamnation à trois ans d'interdiction d'utiliser un ordinateurordinateur. Depuis, Samy Kamkar continue d'exercer ses talents en tant que chercheur en sécurité. En 2011, c'est lui qui a découvert que les systèmes d'exploitationsystèmes d'exploitation AndroidAndroid, iOSiOS et Windows PhoneWindows Phone collectaient les coordonnées GPSGPS et les informations sur les réseaux Wi-FiWi-Fi et les transmettaient à AppleApple, GoogleGoogle et MicrosoftMicrosoft. L'affaire, révélée par le Wall Street Journal, fit grand bruit.
Sur cette capture d’écran réalisée par Samy Kamkar, on distingue l’interface de contrôle d’un drone Parrot qui vient d’être détourné par l’application SkyJack. En rouge, le message « Control link not available » indique que la connexion Wi-Fi d’origine entre le drone et le terminal mobile a été coupée. Quelques secondes plus tard, l’application SkyJack prend la main et se connecte au drone, qu’elle peut alors contrôler. © Samy Kamkar
Samy Kamkar détaille les outils auxquels il a eu recours pour réaliser le détournement de drone. Il y a d'abord l'application SkyJack qu'il a conçue à partir de plusieurs logiciels open source, mais également Aircrack-ng qui sert à pirater les réseaux sans fil, NodeNode.js qui permet de créer des applications réseau en JavaScript, et la bibliothèque node-ar-drone. SkyJack est à disposition du public via la plateforme GitHub. La partie matérielle comprend un mini-PCPC Raspberry PiPi qui tourne sous LinuxLinux et comporte une carte mémoirecarte mémoire SD amovible. Le hacker l'a équipé d'une puce sans fil Edymax. Le tout est connecté à une antenne Wi-Fi externe longue portée (Alfa AWUS036H) qui fait office de transmetteur. Samy Kamkar explique que cette antenne, d'une portée d'un kilomètre, dispose d'une puce capable de pirater les autres réseaux sans fil en accédant aux paquets de données qui circulent entre les points d'accès et les terminaux clients, et ce même si le réseau est chiffré. Elle permet également d'injecter des paquets de données dans ce flux, ce dont se sert l'application SkyJack pour prendre le contrôle d'un drone.
Le Raspberry Pi est installé avec l'antenne longue portée sur le drone Parrot et alimenté par une batterie USBUSB. Lorsque l'engin volant est en action, SkyJack va scanner les environs à la recherche d'un réseau sans fil. Les drones Parrot sont contrôlés à distance via des smartphones ou des tablettes Android et iOS, auxquels ils se connectent par Wi-Fi. Pour établir ces connexions, Parrot utilise un bloc d'adresses MACadresses MAC (media access control) pour toute sa gamme de drones. Si l'application SkyJack détecte l'une des adresses MAC comprises dans le bloc utilisé par les drones de la marque Parrot, elle active le logiciel Aircrack-ng. Celui-ci envoie une commande qui coupe la connexion Wi-Fi entre le drone et le terminal d'origine (iPadiPad, iPhoneiPhone) qui le contrôle et prend la main. C'est alors SkyJack qui commande le drone ciblé.
Entre 10 et 20 drones détournés en une minute
Une fois cette connexion établie, l'application emploie node.js et la bibliothèque node-ar-drone, grâce auxquels elle pilote le drone capturé en se servant de commandes JavaScript. Quelques lignes de code suffisent pour manœuvrer l'appareil à loisir, ou encore activer sa caméra vidéo pour enregistrer et même visionner en direct les images qu'elle capture. « Il ne faut que quelques secondes pour prendre le contrôle d'un drone, révèle Samy Kamkar. À partir du moment où l'on se trouve à portée, on peut détourner entre 10 et 20 drones par minute. »
Le hacker précise qu'il utilise une seconde carte réseaucarte réseau sans fil qui va se connecter au Raspberry Pi et lui permettre de voir tous les « drones-zombies » dont il a pris le contrôle depuis un téléphone ou un ordinateur distant. Le spécialiste ajoute qu'il n'est même pas nécessaire de se servir d'un drone pour réaliser ce détournement. On peut aussi utiliser SkyJack et l'antenne à partir d'un PC portable ou d'un Raspberry Pi et se rendre sur le terrain pour prendre le contrôle des drones à portée de connexion Wi-Fi. Pour le moment, SkyJack ne fonctionne qu'avec les drones de la marque Parrot. « Cependant, j'adorerais mettre la main sur d'autres drones et explorer d'autres failles potentielles », confie notre interlocuteur. En ce qui concerne Parrot, Samy Kamkar n'a pas exploité un bugbug de sécurité, mais simplement le fait que ces drones communiquent par Wi-Fi. « À partir du moment où il y a du trafic, même chiffré, il est virtuellement impossible d'empêcher le scan des adresses MAC. C'est la nature même d'un réseau sans fil, il circule dans l'air, il est visible, explique-t-il. [Parrot pourrait] utiliser un protocoleprotocole différent ou recourir au chiffrementchiffrement. Je pense en tout cas que mon logiciel va forcer les fabricants à prendre des mesures, c'est la raison principale pour laquelle je l'ai rendu public. » Parrot n'a pas répondu aux questions de Futura-Sciences à ce sujet.
Quid d'une utilisation malveillante de SkyJack ? Entre de mauvaises mains, le système permettrait de dérober facilement des drones, d'espionner des personnes via la caméra ou pire encore de les précipiter sur des cibles. « Je ne crains pas que cela représente un danger. Si des personnes malintentionnées voulaient agir ainsi, elles l'auraient déjà fait, ou le font peut-être déjà, estime Samy Kamkar. Ma publication du logiciel met simplement la pression sur les constructeurs pour qu'ils augmentent et améliorent la sécurité de ces drones, empêchant ainsi que le logiciel soit utilisé à mauvais escient. »