La voix du libre

Émission de radio sur le Web et les logiciels libres

"La voix du libre" est une émission sur les logiciels libres et le Web diffusée sur les ondes de CKIA 88.3 tous lundi de 18h à 20h une semaine sur deux (Québec - Canada).
Vous pouvez nous écouter en direct ou en différé, via notre baladodiffusion

Nouvelle du 2 septembre 2011

Sécurité Clé web USB et sécurité

Sécurité

C'est l'histoire d'une personne qui reçoit un gros document papier, contenant une clé USB en forme de clé de porte (voir la photo en seconde partie de la dépêche). On se dit que la clé USB doit contenir la version numérique du document papier, et on branche négligemment l'objet sur son ordinateur.

Une fois branchée sous Windows, la clé ouvre la fenêtre Exécuter avec le raccourci clavier [Touche windows+R], tape une adresse HTTP de site web et confirme la demande. On se retrouve avec un navigateur (disons Internet Explorer par défaut sous Windows) qui ouvre un site distant inconnu. En l'occurrence la clé pointe vers le site du vendeur de ce gadget (l'adresse était en erreur la première fois que je l'ai branchée...), qui lui-même pointe vers le site désiré par l'acheteur de cet objet promotionnel.

Comment ça marche ? Simple, la clé se fait passer pour un clavier, et envoie des séries de touches dès qu'elle est branchée. Sous Windows, la clé apparaît dans le gestionnaire de périphériques comme un <code style="font-size: medium; white-space: pre-wrap; ">HID Keyboard Device</code>.

Sous GNU/Linux, lsusb montre comme périphérique USB
<code style="font-size: medium; white-space: pre-wrap; ">Bus 005 Device 003: ID 05ac:020b Apple, Inc. Pro Keyboard [Mitsumi, A1048/US layout]</code>
et usb-devices précise 
<code style="font-size: medium; white-space: pre-wrap; ">P: Vendor=05ac ProdID=020b Rev=03.01</code>
<code style="font-size: medium; white-space: pre-wrap; ">S: Manufacturer=WebKey</code>
<code style="font-size: medium; white-space: pre-wrap; ">S: Product=WebKey</code>
et la série de touches envoyées (récupérable sur la console par exemple) est du type <code style="font-size: medium; white-space: pre-wrap; ">^[r^[r^[r^[r^[r^[[1~^[[4http://r.w3bk33.c0m/xxxxxxxxxxxxxxxx $</code>.

Je résume : à des fins promotionnelles, on fournit à un public ciblé un objet qui envoie vers un site tiers via des redirections. Déjà au niveau sécurité c'est moyen (public ciblé donc attaque ciblée possible, site potentiellement hostile, adresse codée en dur qui restera après que l'opération promotionnelle ait disparue mais pas forcément pour un spammeur, etc.), mais surtout on se dit que ce système permet de faire beaucoup plus que ça. Au final, en se faisant passer pour un clavier, inséré à son insu par l'utilisateur, n'importe quelle commande pourrait être exécutée : effacement de données, dépôt d'un exécutable et exécution de celui-ci, <code style="font-size: medium; white-space: pre-wrap; ">sudo kill -9 -1</code>, etc. Ici pas de parefeu USB qui bloquerait l'action, pas de confirmation, rien. Tout est automatique, on branche et c'est fait.

En sécurité informatique, il est largement connu que dès que l'attaquant a un accès physique à la machine, les choses vont de mal en pis. On est malheureusement habitué aux disquettes à secteur d'amorce infecté, aux cédéroms avec <code style="font-size: medium; white-space: pre-wrap; ">autorun</code> hostile, etc. On se méfierait sûrement si quelqu'un nous disait « tiens branche ce dongle qui capture les touches entre ton clavier et ton ordi » ou « connecte cette clé 3G pour me filer un accès à ta machine pour que je contourne ton parefeu d'entreprise ». Et pourtant ici on est tellement habitué aux clés (ou aux souris, cf article The Register) USB que l'on ne se méfie pas... À tort.