Rendre le travail BadUSB pour vous - DerbyCon - Adam Caudill
La semaine dernière, Brandon Wilson et moi avons été honorés de parler à DerbyCon. sur le travail que nous avons fait sur le contrôleur Phison trouvé dans de nombreux lecteurs USB pouce. Ce fut ma première fois à parler DerbyCon - c'est un grand événement, avec une équipe fantastique faisant la magie se produire.
Vidéo (que j'ai ai pas pu me résoudre à regarder):
Nous avons fait trois démos - ils étaient assez simple que je ne pensais pas qu'il y avait risque d'avoir des problèmes. Eh bien, leçon apprise.
La machine que nous avons utilisé était une nouvelle installation de Windows juste pour parler - mais dans la précipitation, il y avait quelques différences près entre elle et la machine que nous avions testé avec. Dans la panique d'essayer d'obtenir le discours fait à court fente de 25 minutes, je prenais ces différences pour un défaut de l'une des démos.
HID Firmware personnalisé
La première des trois démos était un firmware totalement sur mesure, qui se présente comme un dispositif HID (et en tant que périphérique de stockage de masse, mais sans la présence des médias - est de faire des mises à jour du firmware plus facile) - la démo est allé sans accroc.
J'aurais aimé montrer les outils et le processus de mise à jour, mais il était tout simplement pas le temps. Brandon travaille sur des vidéos qui seront affichées sur YouTube qui marche à chaque étape de démonstration par étape.
L'équipe derrière le caoutchouc Ducky nous a sauvé beaucoup de temps, grâce aux outils dont ils avaient construit - comme nous avons pu soutenir le même format encodée ils ont utilisé.
La partition cachée est un patch, car il n'y a aucun moyen de dire qu'il est là - tout fonctionne comme prévu, aucune raison de soupçonner que quelque chose a été modifié.
Il divise l'espace en deux partitions NAND, et le firmware est de la taille, pour indiquer que seulement la moitié de l'espace est là. La section « public » est le premier qui est suspendu au, et seule une action spécifique entraînera la seconde, partition cachée pour devenir visible.
Il est un simple changement, mais il envoie un message clair qu'il peut y avoir plus que rencontre l'oeil avec ces appareils. Du point de vue de la médecine légale, la seule façon d'assurer que ce que vous obtenez est exacte et complète, est de vider la NAND directement - sans permettre au contrôleur d'y accéder.
Mot de passe Protection Bypass
Cette démo semblait aller mal, mais il fait parfaitement fonctionné - j'étais juste trop pressé de penser que ce qui se passait, et pourquoi je ne vois pas ce que je pensais.
Lorsque je l'ai branché l'appareil dans, je me attendais à voir deux disques de lui - un « public », l'autre démonté. Je ne ai vu un. Deux choses ont mal tourné ici:
- « Afficher les lecteurs vides dans l'Explorateur » - Par défaut, Windows ne montre pas les lecteurs amovibles non montés dans « Poste de travail »; c'est un paramètre que je change toujours, et devrait voir le lecteur non monté. Comme ce fut une nouvelle installation, le réglage par défaut est toujours réglée - le lecteur était là, je ne pouvais pas le voir. Cela me jeta.
- Mot de passe incorrect - Au cours de la démonstration, je tapais dans une ordure au hasard dans le champ de mot de passe de l'outil « Lock », et au lieu de déverrouiller le lecteur comme prévu, il m'a donné la mauvaise boîte de dialogue de mot de passe. La question est ici un bug dans le code Phison, en fournissant un mot de passe plus de 16 caractères, il le traite comme un mauvais mot de passe. Donc, il fonctionnait, mais le mot de passe que je fournis était trop long, ce qui déclenche ce bogue.
Nous avons testé plus tard ce disque à nouveau, et bien sûr - cela a fonctionné parfaitement, tant que le mot de passe aléatoire n'a pas été plus de 16 caractères.
Le patch en modifiant le tampon qui stocke les données reçues une fois par USB; elle l'oblige à 16 s « A », de sorte que tout mot de passe fonctionnera. En raison de la façon dont cela fonctionne, le patch doit être appliqué avant que l'utilisateur définit son mot de passe - sinon, il vous reste plus qu'à rendre les données inaccessibles.
Ce fut pénible.
Au cours de la conférence, je parlais aux modes 7 et 8 comme étant crypté - c'est probablement faux, au moins sur les appareils que nous demoed. Les deux modes sont protégés par mot, et selon certains documents sont cryptés, et selon d'autres documents qu'ils ne sont pas.
La question a été soulevée lors d'une conversation après la conférence - nous avons pas eu le temps de creuser dans cette fonction plus depuis lors, mais il cherche comme il est juste un chèque de mot de passe sans cryptage.
Le mot de passe a été ajouté changement de patch à la dernière minute, pour remplacer une autre démonstration que nous n'avons pas aimé - nous avons identifié la commande USB étant envoyé, et il patché. En raison des contraintes de temps nous ne creusons dans la fonction de vérifier le document (d'un fabricant de l'appareil) était correct; après que la question a été soulevée nous avons creusé un peu plus et a cherché d'autres documents et code pour soutenir la demande - il semble que le document que nous référençons était incorrect.
Ainsi, il semble que je me suis trompé - le patch fonctionne toujours comme prévu, bien que la fonction elle-même semble offrir moins de protection que nous pensions au départ. Pardon!
Le code - Docs
Nous avons tout sur la prise en pension, et nous avons ajouté des documents supplémentaires sur le wiki.
Ce n'est pas simple - le code est compliqué à écrire, et l'effort d'utiliser les patches et custom firmware est un peu plus que ce que je voudrais. Nous avons essayé des choses de documents ainsi que nous le pouvons, nous l'espérons, il est assez facile à comprendre.
Prochaines étapes
Nous espérons vraiment que la publication de ce poussera dispositif fabrique d'insister sur les mises à jour du firmware signé et que Phison va ajouter le support des mises à jour signées à tous les contrôleurs qu'il vend.
Phison n'est pas le seul joueur ici, mais ils sont les plus communs - J'aimerais les voir prendre les devants pour améliorer la sécurité de ces appareils. Ils ont l'occasion de se lever et de protéger les utilisateurs - comme le fournisseur le plus commun de ces contrôleurs, j'adorerait vraiment les voir prendre cela comme une occasion de diriger l'industrie.
Ce que nous avons publié qu'effleurer la surface de ce qui peut être fait ici - jusqu'à ce que les mises à jour signées sont mises en application, on ne sait pas à quels jeux ces appareils pourraient jouer.