Share
La norme USB possède une énorme faille de sécurité qui ne pourra pas être comblée

La norme USB possède une énorme faille de sécurité qui ne pourra pas être comblée

Vous savez sûrement déjà que les clés USB sont de très bons vecteurs de virus et malwares en tout genre. Mais avec un bon antivirus, vous ne risquez pas grand chose n’est-ce pas ?

Mais des chercheurs en sécurité informatique viennent de découvrir que l’USB renferme une faille de sécurité bien plus vicieuse, liée au fonctionnement même de cette norme, et que cette faille ne pourra pas être comblée !

Karsten Nohl et Jakob Lell présenteront dans une semaine au Black Hat, l’événement de référence sur le Hacking, le fruit de leurs travaux, ainsi qu’un logiciel de leur création nommé BadUSB.

Ce dernier peut être installé sur une clé ou tout autre périphérique USB. Il suffit ensuite de brancher cette clé à un port USB d’un ordinateur lambda pour pouvoir en prendre le contrôle, rediriger le trafic Internet de la machine, ou altérer des fichiers dans son disque dur !

Détail encore plus dangereux : BadUSB ne s’installe pas dans la mémoire Flash du périphérique USB qui sert à attaquer, mais au sein même de son firmware. Vous aurez beau formater votre clé USB ou votre disque dur externe, BadUSB sera toujours là et ne pourra pas être retiré de votre périphérique.

Nos deux chercheurs affirment de plus que cette faille de sécurité ne pourra être comblée que d’une seule manière : en condamnant physiquement les ports USB des ordinateurs pour qu’aucun périphérique potentiellement dangereux ne puisse être branché. « Le problème ne peut pas être patché, nous exploitons la façon même dont l’USB a été créé. Dans ce nouveau paradigme, vous devez considérer un périphérique USB infecté par défaut dès qu’il touche un ordinateur qui n’est pas digne de confiance. »

Le code malicieux étant planqué au sein même du code permettant à une clé USB d’accéder à ses fichiers, il faut de très bonnes compétences en reverse engineering pour espérer détecter la présence ou non d’un logiciel similaire à BadUSB sur un périphérique USB. Autant dire que personne de suffisamment compétent ne va pouvoir vérifier à chaque branchement si un périphérique est dangereux ou non. L’infection se fait dans les deux sens : du PC au périphérique, ou vice versa. Impossible de pouvoir assurer avec 100% de confiance qu’un ordinateur ou un périphérique puissent rester sains si les ports USB de la machine ou du gadget incriminé sont utilisés.

Et puisque ce problème touche le firmware même des périphériques USB, il ne se limite pas seulement aux clés USB et disque dur externe, mais à tout produit qui utilise cette norme : Webcam, clavier, souris, imprimante, scanner, appareil photo, smartphone… la liste est longue !

J’ajoute aussi qu’il ne dépend pas du système d’exploitation de l’ordinateur. Donc ceux qui pensent être à l’abri car ils utilisent un Mac ou sur une distribution Linux quelconque sont aussi potentiellement exposés…

Si non seulement nos habitudes en tant que particulier vont être difficiles à modifier, j’imagine les dégâts que vont provoquer dans les entreprises ce genre de malwares une fois qu’ils seront tombés dans les mains de personnes peu scrupuleuses. C’est la NSA qui va être contente, si elle n’utilise pas déjà le même genre d’outils pour ses propres besoins…

Source et Image

18 Commentaires sur cet article

  1. S’il présentent un logiciel tel que BadUSB, j’espère au moins qu’ils ont une idée de logiciel pour le contrer, sinon c’est tout simplement une très mauvaise idée de leur part. On utilise tellement la technologie USB de nos jours qu’elle risque d’être difficile à remplacer en peu de temps, autant se concentrer sur des moyens software d’éviter de telles menaces…

    Répondre
  2. J’ai du mal à comprendre comment on peut modifier le firmware d’un devis à la volée ? Sachant que c’est compilé, que la procédure pour mettre à jour un device change suivant le device, comment on met à jour le firmware d’une clé USB ? pour un disque passe encore… quoique en USB c’est pas gagné pour flasher un firmware. Bref j’aimerai en savoir plus sur la partie technique si tu as des infos ?

    Répondre
    • J’imagine de la même façon que l’on peut infecter un firmware de carte mère à la volée je pense. Peut-être plus de détails techniques ici : http://blog.spiderlabs.com/2014/04/detecting-a-surveillance-state-part-3-infected-firmware.html

      Répondre
    • A la limite le faire à la volée si c’est pas possible, tu demande a une usine de te la fabriquer direct avec le firmware vérolé. Si ça permet d’infecter pleins de postes etc ça se fera comme ça. C’est sûr que les firmwares de peripheriques peu complexe comme les clef USB a quelques euro, ne doivent pas avoir ni une quantité de mémoire importante, ni en plus de la mémoire reinscriptible. ça va limiter l’usage malveillant. Mais ce que je comprend pas au final c’est pourquoi est-ce lié à l’USB? pourquoi les firmware des SSD par ex ne serait pas touché?

      Répondre
  3. On a bien compris qu’aujourd’hui, pour faire transiter des données en tout sécurité il faut avoir son cloud personnel. Je veux dire, « personnel ».

    Répondre
  4. Ce bug me fait directement penser à la faille de sécurité permise par le Firewire : http://progdupeu.pl/tutoriels/285/jouons-avec-lauthentification-windows/

    Répondre
  5. Encore une faille que la NSA aurait bien voulue garder pour elle seule ? 😀
    Sinon, c’est pas réglé en USB3 ?
    Parce que du coup, va bien y avoir un jour de l’USB4 pour ça 🙂

    Répondre
  6. Alexis

    Whaou, ça fait froid dans le dos ça !

    Maintenant, il faudra prévoir un mode sandbox pour tous les périphériques branché en USB.

    Répondre
  7. Bismuth

    Ca me fait penser au USB Rubber Ducky.
    Une clé usb qui fait croire au pc qu’elle est un clavier. Redoutable.

    Répondre
  8. DoubleJ

    Je ne vois pas en quoi c’est pas contournable… qu’on ne puisse pas patcher le truc parce que c’est lié au proto usb toussa, OK, je veux bien, (bien qu’il faille me dire comment un user lambda flashe un firmare de cle usb du commerce) mais qu’on ne puisse pas détecter un reroutage du traffic ou de l’accès fichier non autorisé, là je pige pas… Il suffit que les analyseurs comportemental des suites de sécurité d’adaptent en conséquence non ?

    Répondre
  9. hyperi0n

    Traduction du premier commentaire sur l’article source qui me semble intéressant :

    Je gagne ma vie à concevoir et à vendre des contrôleurs USB et je peux dire que cet article est sensationnel et ne dit les choses qu’à moitié.
    Oui, quelques périphérique USB reposent sur un firmware pour les opérations fondamentales et oui, le firmware de *QUELQUES* périphériques USB peut être mis à jour, mais dire qu’USB est fondamentalement compromis est un non sens du fait d’une fenêtre d’attaque limitée.

    Il y a 3 choses qui rendent cette attaque très spécifique et difficile à mettre en oeuvre :

    1) la plupart des contrôleurs USB sont « ASICs », ou Application Specific Integrated Circuits. Ils sont généralement hautement optimisés pour très bien réaliser leur fonctionnalité de base, et ne possèdent habituellement pas la possibilité de devenir d’autres périphériques. Par exemple, un des produits de mon entreprise est un « USB 3.0 to Sata Bridge », qui est utilité dans les disques durs externes USB3.0. Ce produit contient des « points de sorties » USB pour le stockage de masse, et c’est tout. Même si vous reprogrammez le firmware, tout ce que vous pouvez obtenir reste un périphérique de stockage de masse puisque les numéros et le type des « points de sorties » USB sont fixés au niveau matériel. Nous faisons ceci afin que les circuits soient les plus léger possibles. Il est impossible de les reprogrammer pour qu’ils deviennent un contrôleur réseau ou une souris dans la mesure ou ces fonctionnalités ne sont pas supportées par le circuit.

    >>>> Tous les périph USB ne peuvent pas être infectés. Même si vous parvenez à infecter le périph., il y a de fortes chances que vous le cassiez plutôt que de le transformer en quelque chose de néfaste. Les fabricants sont généralement sensibles sur la maitrise des coûts et trouvent des techniques pour les réduire partout là où ils le peuvent – utiliser des contrôleurs « génériques » pour des périphériques spécifiques est par définition, inefficace.

    2) Les producteurs sont généralement très protecteurs vis à vis de leurs périphériques puisque les firmware contiennent généralement des choses qu’ils ne souhaitent pas diffuser tels que les méthodes pour contourner des bugs dans le circuit, ou des algorithmes propriétaires qui peuvent améliorer la performance et la stabilité, etc. Le code source de la plupart des firmwares est rarement publié, et même si il l’est, il y a très peut de documentation et de support. Enfin, les producteurs ont généralement des routines de vérification en place au niveau des contrôleurs pour vérifier l’intégrité du firmware tels que des hash ou des vérifications de taille.

    >>>> Avoir accès et modifier le firmware est difficile. La plupart des ASICs utilisent des microcontrôleurs customisés et ne publient pas de guide concernant les registres/la programmation. Ils sont très difficile à reverser.

    3) En supposant que vous trouviez un périph USB qui, pour certaines raisons, peut être reprogrammé à la volée pour supporter d’autres classes USB et d’autres points de sortie, et en assumant également que vous trouviez le code source du firmware ou que vous le reversiez. Vous devez alors reprogrammer le périphérique. La majorité des périph. USB2.0 et 1.1 ont des firmware fixes qui ne peuvent pas être mis à jour. Le code du firmware est souvent stocké sur une couche de métal sur le circuit lui même, et il n’y a aucune chance de le modifier. Si le firmware est stocké sur un périphérique de stockage externe vous devez trouvez un moyen de le reprogrammer en utilisant des commandes du constructeurs non documentées ou en utilisant du matériel spécifique.

    >>>> Le plupart des contrôleurs USB ne supportent pas d’être reprogrammer du tout, même si ils tournent sur le firmware. Certaines ASICs n’ont pas de microcontrôleurs et reposent uniquement sur une « machine logique » donc toute cette catégorie est non vulnérable. Beaucoup d’ICs ont un « MASK ROM » de telle sorte que le firmware est stocké sur des supports sans les droits d’écritures et sont donc totalement immunisés également.

    Répondre
  10. question d’un « non spécialiste »:
    Une clé USB Ancienne que je possède qui était « propre »peut-elle être contaminée par un site ou un mail??

    Répondre
  11. Datawolf

    Faille ou backdoor ?

    Répondre
  12. Personnellement, je constate :
    — comme d’habitude, une annonce sensationnelle, un peu trop, donc premier réflexe : prendre une très grande paire de pincettes pour laisser le sujet refroidir ;
    — le fameux « c’est un problème de la norme donc pas corrigeable », quand en fait c’est un problème d’implémentation (même si, dans le monde presque « physique » des firmwares il faut un certain temps pour apporter la correction) : il est normal que les constructeurs cherchent à réduire les coûts en utilisant des puces génériques pour la pile USB, puces ensuite paramétrées par le firmware. C’est bien de la faute du firmware s’il accepte de se faire écraser ;
    — comme toujours, j’imagine l’impact est grand car il ne doit pas y avoir milliards d’implémentations de la pile USB sur puce pour pas cher. C’est un peu comme pour les BIOS ou 3 entreprises fournissent la base à tous les constructeurs. On en avait parlé à l’époque BadBios…
    — techniquement parlant, ce n’est pas spécifique à l’USB : on pourrait faire ça sur du SATA. Les ingrédients sont les mêmes : un canal de communication et des implémentations vulnérables à chaque bout.

    En gros, ça va faire mal s’il s’avère que les quelques puces/familles de puces qu’ils ont testées sont utilisées très largement dans les équipements causant USB. Sinon, ça dépendra des cas. Le sujet est intéressant à suivre.

    Répondre
  13. G-ronimo

    seuls les firmwares en cartons de certaines clés ou autres supports usb pourront être reprogrammés !
    ce n’est pas le protocole USB en lui même qui est touché..!
    et ce n’est pas nouveau…un exemple, « USB rubber ducky ».

    Répondre

Laisser un commentaire