Si, bien souvent, les envolées techniques de NoSuchCon perdaient quelques participants sur des sommets quasiment inaccessibles, trois orateurs ont soulevé des tonnerres d’applaudissements. Saumil Shah, tout d’abord, en dévoilant une forme d’attaque html quasiment imparable : le pixel de la mort. Le principe est simple, et se limite à utiliser une image en 256 niveaux de gris pour encoder n’importe quel caractère. De là à imaginer remplacer une image pointilliste en un code java destructeur grâce à la traduction de la couleur par une fonction eval(), il n’y a qu’un pas. Les tâches grises plus ou moins unies pouvant paraîtres suspectes, Saumil Shah conseille de plutôt utiliser les niveaux de transparence des pixels d’un GIF quelconque, et de lancer l’exécution sur un simple « on mouse ». Certes, il serait simple de supputer l’existence de cette forme de camouflage stéganographique, mais quel éditeur d’antivirus serait assez téméraire pour se mettre à filtrer chaque image, chaque graphique d’une page Web ? L’impact sur les temps de réponse serait tel qu’entre sécurité et souplesse d’utilisation, aucun usager n’hésiterait. D’autant plus que les navigateurs Web ne sont pas capables de n’interpréter que des images. On pourrait imaginer une attaque à la Saumil Shah avec des inserts musicaux. Ou tout autre medium géré nativement par HTML et comportant 256 valeurs ou plus. Aussi simple que soit ce genre de hack, il prouve que la recherche en matière de sécurité est avant tout une question de culture et de sens de l’observation et ne se réduit pas à une simple pratique réservée aux virtuoses du reverse.
Même virtuosité de la part de Travis Goodspeed qui montrait comment injecter un shellcode dans un microcontroleur genre MSP430 ou à base de l’antique 8051 (que l’on retrouve généralement dans des circuits très répandus tels que le CY7C68013A). Savoir ce qui se passe « à l’intérieur » d’un PIC à l’aide de deux LED ou réaliser une modification de firmware de téléviseur après vérification de la validité de sa signature (version « burinée silicium ») mais avant son chargement en mémoire relève presque de la sorcellerie électronique. Il faut dire que les industriels qui emploient force microcontroleurs ne sont pas (ou très rarement) issus du sérail informatique. Les notions de sécurité des processus sont généralement embryonnaires, voire inexistantes ou limitées au claquage d’un fusible d’interdiction de lecture. Or, ces fausses sécurités une fois contournées, le chercheur se trouve face à un composant qui ignore tout d’ASLR, ne possède pas d’équivalent de sécurité « no execute » et contient même parfois en ROM (et non en flash ou eprom) un bootloader que l’on peut aisément récupérer (voir les exploits des reversers MAME ou les aventures acides d’Adam Laurie et Zac Franken ). Notons au passage que les badges d’entrée de NoSuchCon étaient des circuits imprimés destinés à construire un GoodFET Facedancer 21. Il s’agit d’un outil de fuzzing de port USB qui « semble » n’être qu’un composant HID vis-à -vis de l’équipement espionné. La programmation peut s’effectuer en python, l’un des usages intéressant étant la récupération des firmware par simulation du DFU. Les utilisateurs souhaitant jouer avec un outil un peu plus généraliste peuvent éviter de souder le Max3421 et utiliser le circuit comme un simple GoodFet41. L’assemblage du circuit est trivial et ne demande pas plus de 10 minutes de montage… près de 300 badges NSC#1 étant dans la nature, on peut penser que quelques centaines de ports USB vont parler sous la torture dans les mois à venir.
Karsten Nohl emboîte le pas de Goodspeed et reprend l’air et la musique de « la sécurité des embedded est nettement plus embryonnaire que ce que l’on peut trouver sur un simple téléphone mobile ». Et de montrer comment lancer une attaque brute force contre les clefs électroniques de quelques automobiles européennes, les unes « protégées » par un circuit Texas Instrument, les autres par un sytème Hi-Tag2 NXP voir des circuits Megamos. Et d’expliquer le cheminement complexe de l’attaque elle-même qui demande tout de même un temps certain mais qui n’est pas d’une complexité aussi grande que ce que l’on pourrait croire. Cette démonstration doctorale une fois achevée, Nohl fait remarquer que ça, c’était la méthode « hacker intello », mais que dans le monde du trafic de pièces détachées, les méthodes sont autrement plus expéditives. « certains voleurs ont réalisé qu’en effectuant certaines manipulations illogiques (genre débrancher deux fois de suite l’ampoule d’un feu arrière), il était possible d’initialiser l’ordinateur de bord et… de partir avec la voiture. Aucun voleur ne s’inspirera jamais des méthodes que je viens de décrire, trop complexes à leur goût ». L’empirisme est parfois plus efficace qu’une approche savante. Un discours qui s’achève par le passage d’une séquence vidéo qui montre comment hacker une Audi en passant par la prise de diagnostic OBD2, non seulement pour désactiver le système d’immobilisation du véhicule, mais également pour museler l’alarme et reprogrammer la clef Hi-Tag2 (ce que même certains spécialistes du monde automobile pensaient franchement impossible).Il est vraiment dommage que le badge de NoSuchCon de cette année n’ait pas été un GoodThopter12, précisément un lecteur de bus OBD2 (en fait un CAN) : les travaux pratiques dirigés par Nohl auraient alors fait un malheur.
1 commentaire