bluebay2014 - Fotolia
Pirater un ordinateur via son port n’a jamais été aussi simple
L’outil PoisonTap s’installe sur un modeste Raspberry Pi Zero et peut largement compromettre un PC laissé sans attention par son utilisateur, même s’il l’a verrouillé.
« C’est super simple et cela ne devrait pas fonctionner. Mais ça fonctionne ». C’est ainsi que Rob Fuller, ingénieur en sécurité chez R5 Industries, présentait cet été une attaque physique qu’il avait découverte et qui permet de dérober rapidement l’empreinte de l’identifiant d’un utilisateur sur une machine verrouillée, mais session active. Le tout en utilisant seulement un nano-ordinateur et un adaptateur USB Ethernet.
Mais ce n’était pas la première fois que le port USB était mis à contribution pour compromettre des ordinateurs. On se souviendra peut-être d’ailleurs de BadUSB, une menace dévoilée à l’été 2014.
Autant d’exemples qui pourraient bien avoir inspiré Samy Kamkar pour son démonstrateur PoisonTap. Ce dernier s’appuie sur un simple Raspberry Pi Zero et emploie Node.JS. Il assure une émulation d’interface Ethernet sur USB ou Thunderbolt et, de là, intercepte l’ensemble du trafic réseau. De quoi collecter et stoker les cookies de session Web, mais aussi provoquer des attaques par DNS rebinding, et surtout installer une porte dérobée persistante dans le cache du navigateur Web.
Et pour que PoisonTap fonctionne, il suffit de quelques instants, un peu plus que le temps pour le Raspberry Pi Zero de démarrer, alimenté par le port USB de sa cible : « par défaut Windows, OS X et Linux reconnaissent le périphérique Ethernet, le chargeant automatiquement comme un périphérique réseau à faible priorité, et lancent une requête DHCP, même si la machine est verrouillée », explique Samy Kamkar. Les mécanismes d’affectation de priorité réseau sont là détournés car le trafic réseau local est prioritaire sur le trafic lié à Internet ; dès lors, « tout le trafic Internet passe par PoisonTap alors même que la machine est connectée à un autre équipement réseau avec une priorité plus élevée et une véritable passerelle ». Et le routeur local, dans le cas d’une petite installation, est également susceptible d’être compromis par attaque par DNS rebinding.
Les mesures de protection sont limitées. Côté serveur, Samy Kamkar recommande de n’autoriser que les connexions https et de prévenir les attaques par abaissement de la sécurité sur https. Côté poste utilisateur, les possibilités de prévention sont limitées : « boucher vos ports USB et Thunderbolt avec du ciment peut être efficace » ; « fermer votre navigateur à chaque fois que vous vous éloignez de votre machine peut fonctionner, mais n’est pas commode », de même que désactiver ces ports. Sur Mac, toutefois, placer la machine en veille profonde, où un mot de passe est nécessaire pour déchiffrer la mémoire vive, peut être efficace.
Les menaces ciblant les ports USB des ordinateurs personnels ont conduit, en début d’année, le groupe de promotion de l’USB 3.0 à annoncer une spécification pour l’authentification des appareils connectés à un port USB de type C, avant tout échange de données ou alimentation électrique. Reste à savoir si les mécanismes prévus pour empêcher la connexion de certains périphériques seront suffisamment efficaces pour éviter ces attaques locales. Mais avec des machines utilisant exclusivement l’USB type-C pour leurs périphériques, à l’instar des tous derniers MacBook d’Apple, ce type de contrôle apparaît plus que jamais indispensable.