Journal L'USB c'est moisi, ça propage des virus

25
1
août
2014

Un bon petit article alarmiste pour commencer ce trolldi.

L'article source, que je préfère résumer car le ton m'a l'air trop alarmiste : La norme USB possède une énorme faille de sécurité qui ne pourra pas être comblée

Qui a lui-même une source sur Wired.

La Black Hat Security Conference à Las Vegas, c'est dans une semaine ! On va donc faire monter la hype avec une annonce fracassante d'une des conférences : à cause d'une faille de conception, il est possible de créer un virus qui se planque dans le firmware usb, et qui profite en open bar de l'ordinateur, peu importe son OS. Les deux auteurs ont modestement appelé leur fierté "BadUSB". Un petit "On ne peut pas patcher le firmware, on ne peut pas détecter le virus, les antivirus sont inutiles".

Ah si, il y a une chose possible : s'assurer que sa clé n'est pas infectée, et qu'elle n'est pas insérée dans un ordi potentiellement infecté. Le SIDA appliqué à la sécurité informatique ? Miam !

Les clés USB sont concernés, mais aussi tout ce qui se branche par USB : souris, webcam…

L'article de Wired finit sur un "bouh les constructeurs d'appareils ils veulent pas écouter qu'il y a un problème".

Des moules ici ont déjà vu des scénarios similaires ? Gros risque en vue ? Pétard mouillé ? Ne ratez pas la suite de cet épisode palpitant sur Direct8 après la pub, ce programme vous est présenté par le fabuleux Morandini !

  • # D'autres choses moisies

    Posté par  (site web personnel) . Évalué à 10.

    Les ordinateurs c'est moisi ça propage des virus
    Les humains c'est moisi ça propage des virus
    Les oiseaux c'est moisi ça propage des virus
    Les mammifères c'est moisi ça propage des virus
    Les végétaux c'est moisi ça propage des virus
    la vie c'est moisi ça propage des virus

    C'est le mantra du nécromancien.

    kentoc'h mervel eget bezan saotred

  • # Pas détectable...

    Posté par  (site web personnel) . Évalué à 3.

    Je reste un peu dubitatif quand au fait que ce ne soit pas détectable… car à moins que le truc s'attaque au démarrage avant l'os à la pile USB du bios (et même)… je ne vois pas pourquoi la pile USB de l'os ne pourrait pas détecter un comportement malicieux de ce type… qu'il ne le puisse pas actuellement ok, qu'il ne puisse jamais le faire, j'y crois pas trop.

    • [^] # Re: Pas détectable...

      Posté par  (site web personnel) . Évalué à 5.

      Il me semble (souvenirs lointain) que sur les PC il y a un mode processeur appelle superviseur mode, et que les périphériques USB peuvent l'activer, permettant ainsi l’exécution de code de manière arbitraire… On m'avait parle (en 2006!) de système temps-réel qui prenaient du retard a cause de cela: un périphérique USB prenait de temps en temps la main sur le processeur pour exécuter je ne sais quoi, et ça retardait le traitement temps-réel. La seule solution avait été de désactiver l'USB…

      Donc je veux bien croire qu'on puisse créer un périphérique USB malicieux de la sorte, de manière complètement indétectable…

      http://l-lang.org/ - Conception du langage L

      • [^] # Re: Pas détectable...

        Posté par  (site web personnel) . Évalué à 5. Dernière modification le 01 août 2014 à 11:35.

        Mais pour faire cette activation, il doit quand même passer par le kernel je suppose et la pile USB… du coup, je veux bien qu'on ne peut le détecter maintenant, mais je vois pas pourquoi (a moins d'un grand déficit de performance) on ne pourrait pas monitorer cela en faisant une virtualisation de mode processeur, sans vrai accès direct… enfin n'importe, mais je ne crois pas trop à cette indétectabilité… ça l'est certainement actuellement, mais présupposé que cela le soit toujours est un peu osé…

      • [^] # Re: Pas détectable...

        Posté par  . Évalué à 5.

        Il me semble (souvenirs lointain) que sur les PC il y a un mode processeur appelle superviseur mode, et que les périphériques USB peuvent l'activer, permettant ainsi l’exécution de code de manière arbitraire…

        Les périphériques USB ne peuvent l'activer que si le CPU ne le permet. Et ce n'est pas du code arbitraire qui est utilisé. C'est le code du noyau (traitement d'interruption).

        un périphérique USB prenait de temps en temps la main sur le processeur pour exécuter je ne sais quoi, et ça retardait le traitement temps-réel

        Le périphérique usb ne "prend pas la main" : il envoie une requête d'interruption, et le processeur traite cette requête en exécutant la routine associée. Mais cette routine n'est pas "magique" : c'est le code du pilote USB de ton OS.

        • [^] # Re: Pas détectable...

          Posté par  (site web personnel) . Évalué à 7.

          OK je vois que mon commentaire pouvait être mal interprété: je ne parlais pas du traitement d'interruption normal, mais du System_Management_Mode, qui permet de bypasser complètement l'OS.

          http://l-lang.org/ - Conception du langage L

          • [^] # Re: Pas détectable...

            Posté par  (site web personnel) . Évalué à 1.

            Ceci dit apparemment le code exécute par le SMM n'est pas fourni par le périphérique USB, mais installe par le BIOS. Mais il suffit d'une faille dans ce code BIOS pour que le périphérique USB puisse prendre le contrôle de la machine, sans que l'OS ne puisse rien faire. Avec ça, on peut créer une clé USB qui copie des données, ou infecte une machine, sans que l'OS n'en sache rien…

            http://l-lang.org/ - Conception du langage L

          • [^] # Re: Pas détectable...

            Posté par  . Évalué à 2. Dernière modification le 01 août 2014 à 14:51.

            mais du System_Management_Mode W,

            Lien invalide. Celui-ci est mieux SMM

  • # Exemple basique en 2011

    Posté par  (site web personnel) . Évalué à 9.

    Une illustration plus simple évoquée en 2011 avec une clé USB qui se fait passer pour un clavier et envoie des commandes. Et là, BadUSB fait bien pire.

  • # ?!

    Posté par  (site web personnel) . Évalué à 3.

    Une faille de protocole qui s'appliquerait sur le firmeware de toutes les clefs usb, alors que celui-ci dépend de chaque puce ? J'ai un gros doute.

    Si il s'agit d'un système de mise à jour du firmeware, le virus aura besoin de s'adapter à chaque type de clef.

    "La première sécurité est la liberté"

    • [^] # Re: ?!

      Posté par  . Évalué à 3.

      En parcourant rapidement l'article de wired (http://www.wired.com/2014/07/usb-security/) on lit :

      The malware they created, called BadUSB, can be installed on a USB device to completely take over a PC, invisibly alter files installed from the memory stick, or even redirect the user’s internet traffic. Because BadUSB resides not in the flash memory storage of USB devices, but in the firmware that controls their basic functions, the attack code can remain hidden long after the contents of the device’s memory would appear to the average user to be deleted.

      They spent months reverse engineering the firmware that runs the basic communication functions of USB devices—the controller chips that allow the devices to communicate with a PC and let users move files on and off of them. Their central finding is that USB firmware, which exists in varying forms in all USB devices, can be reprogrammed to hide attack code.

      Franchement il y a rien de nouveau. Les devices usb font tourner des firmware et sur certains il est possible de les reprogrammer. On peut faire tourner des device usb sous linux (par exemple les téléphone android).
      Ayant contrôle sur le device on peut faire des clefs usb pour lequel on ne peut pas effacer les fichier (un virus par exemple) (malgrès le reformatage) ou qui stocke des info de manière permanente.
      On peut faire aussi en sorte que notre clef usb simule un clavier, une carte réseau, … pour tenter d'injecter/récuper des infos.

      Mais de la à dire que l'USB à une énorme faille de sécu…
      Le plus simple serait que les OS aie un moyen de demander à l'utilisateur s'il veut activer tel fonctionnalité du périphérique qui vient d'être branché.
      D'ailleurs c'est déjà possible sous linux : https://www.kernel.org/doc/Documentation/usb/authorization.txt

  • # Proxy matériel

    Posté par  . Évalué à 7. Dernière modification le 01 août 2014 à 13:08.

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

    La faille pourrait être comblée par un proxy matériel basé sur une carte microcontrôleur ayant deux ports usb indépendants. Le firmware du microcontrôleur fait transiter les données entre ses ports externes et interne. Le port externe peut être en contact avec des périphériques infectés, il ne passe pas l'infection au port interne qui est lié à l'ordinateur. Le microcontrôleur peut reprogrammer le firmware de ses deux contrôleurs USB à chaque démarrage pour être sûr qu'ils ne sont pas contaminés. Il peut aussi utiliser la même technique que BadUSB pour nettoyer les clefs USB en obligeant le téléchargement d'un firmware propre.

    • [^] # Re: Proxy matériel

      Posté par  . Évalué à 10.

      Il y a du business à faire!
      Ma pauvre dame, ne connectez jamais une clé USB directement sur un ordinateur. Entre votre clé et votre ordinateur, utilisez mon dongle USB-Protect (existe en version "cable" et "hub", et en 4 couleurs différentes) a 12,90€ seulement! Achetez-en pour toute votre famille!

      • [^] # Re: Proxy matériel

        Posté par  (site web personnel) . Évalué à 10.

        Attention mon brave monsieur, ne connectez jamais un dongle USB-Protect directement sur un ordinateur. Entre votre dongle et votre ordinateur, utilisez mon plug USB-DonglePacificator (existe en version vu à la télé et avec ou sans fourrure artificielle) à 18,49€ Achetez-en pour toute votre famille!

        • [^] # Re: Proxy matériel

          Posté par  . Évalué à 7.

          Bonjour,

          Je viens d'acheter le USB-DonglePacificator de chez Sibaud, mais ça ne fonctionne pas avec mon USB Protect de chez fabricius, d'après des forums sur internet il semble que ces deux appareils ne soient pas compatibles.

          Pourriez-vous m'indiquer la procédure de remboursement ?

          Cdlt,

          • [^] # Re: Proxy matériel

            Posté par  . Évalué à 8.

            Acheter mon USB-DongleUnificator à insérer entre le le USB-DonglePacificator et le USB Protect de chez fabricius pour 18.99 euros. Si vous voulez qu'il supporte d'autres associatyions de périphériques, ce sera prévu à la prochaine mise à jour (qui vous coutera 14.99 euros). Vous pouvez aussi prendre un abonnement à 9.99 euros par mois pour avoir les dernières mises à jour au fur et à mesure.

          • [^] # Re: Proxy matériel

            Posté par  . Évalué à 2.

            J'ai un ami qui a eu le même problème, il a flashé le firmware de l'USB-DonglePacificator (celui avec la fourrure léopard). Depuis ça fonctionne nikel

            Le lien vers la page contenant le firmware : http://goo.gl/j9GVw

            The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

        • [^] # Re: Proxy matériel

          Posté par  (site web personnel) . Évalué à 3.

          Attention mon cher Directeur Général des Systèmes d'Information, ne connectez jamais un plug USB-DonglePacificator directement sur un ordinateur. Entre votre dongle et votre ordinateur, utilisez mon indispensable USB-DongleSecurityFactoryOfProtectFactoryOfDongleSecurity, réalisé en Java par les plus grands experts de la sécurité (existe avec des témoignages des plus impressionnantes sociétés bancaires françaises) à 42€ ! Achetez-en pour toute votre entreprise !

          Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

      • [^] # Re: Proxy matériel

        Posté par  . Évalué à 0.

        USB-Protector :-)

  • # prior art

    Posté par  (site web personnel) . Évalué à 3.

    J'ai pas lu cette itération mais aller se mettre dans le firmware pour éviter la détection par l'OS c'est pas nouveau. Un papier sympa sur le sujet : https://www.sstic.org/2011/presentation/sticky_fingers_and_kbc_custom_shop/

    À une époque c'était dans firewire qu'on a découvert une magnifique faiWfonctionnalité.

    Je suis sûr qu'il y a eu d'autres proof of concept bien avant.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.