mardi 29 octobre 2013

badbios, php.net et la grehack


1/ Badbios
Au mois d'Août, je bloguais sur la "dernière frontière" en sécurité, c'est à dire le matériel: le soft, on sait que ce n'est jamais fiable très longtemps, mais le hardware était censé faire ce qu'il devait faire. Au vu des dernières infos, il semble que cette frontière est simplement atomisée. On entend beaucoup parler de badbios, ou #badbios sur twitter. Si son existence est avérée, alors il s'agit d'une menace extrêmement pernicieuse et résiliente.

Je livre un résumé brut de tout ce que j'ai pu lire sachant que les premières mentions de badbios datent du 11 octobre, qui proviennent d'un site néérlandais. L'outil ayant détecté badbios s'appelle copernicus, outil dédié à l'analyse de BIOS.

Ensuite, dragosr, chercheur en sécurité a fait une série de révélations:
  • L'infection se fait via des clés USB (eh oui)
  • Un PC infecté va à son tour infecter toutes les clés branchées dessus, qui à leur tour etc..
Jusque là, on reste dans le classique. Mais là ou ça devient intéressant, c'est que l'on a pu lire aussi:
  • Une clé USB va infecter un PC quel que soit l'OS (BSD, windows, Mac).
  • Côté clé, l'infection ne touche pas les fichiers sur la clé, mais directement le firmware de la flash (!) ce qui explique le côté OS indépendant de la propagation du malware
  • Côté PC, c'est le bios qui est reflashé, ce qui permet de résister aux réinstallations d'OS, mais qui résiste aussi au reflashage du bios (!!) Ce qui force d'ailleurs le chercheur à utiliser un PC neuf à chaque test...
  • Les firmwares des lecteurs CD sont également impactés (?) Et les fichiers gravés sur CD sont modifiés sans qu'un motif apparent s'en dégage; il devient impossible de booter un live CD d'un système autre que celui installé sur le disque dur (?). Apparemment  les firmwares des cartes sons sont aussi impactés.
  • Un windows8 infecté a vu apparaître plusieurs fontes supplémentaires, et certaines fontes ont grossies en taille tout en gardant une signature correcte (?!)
  • Le malware embarque un hyperviseur (!) et un Software Defined Radio (voir point suivant)
  • Le malware embarque un SDR, c'est à dire qu'il communique sans réseau (ni câblé, ni wifi). J'ai pu lire deux méthodes: la première en utilisant malgré tout la carte wifi, mais de manière invisible pour l'OS, la seconde en émettant simplement via la carte son des fréquences inaudibles [1]
  • Le malware interdit l'accès à deux sites web russes (?!) qui parlent de la manière dont on peut flasher des firmwares de clés USB
  • Le chercheur a constaté des envois de paquets DHCP contenant des options "étranges"
  • Et on ne sait aujourd'hui toujours pas quel est le but de ce malware.

links:
https://www.security.nl/posting/366329/Onderzoeker+ontdekt+mysterieuze+BIOS-malware
https://www.wilderssecurity.com/showthread.php?t=354463
http://www.kernelmode.info/forum/viewtopic.php?f=16&t=2998&p=21195&hilit=BIOS+malware#p21195
https://kabelmast.wordpress.com/2013/10/23/badbios-and-lotsa-paranoia-plus-fireworks/
https://plus.google.com/app/basic/103470457057356043365/posts?cbp=imlk7sx0o27y&sview=1&spath=/app/basic/stream/z13tzhpzvpqyuzv1n23cz52wykrrvjjce
Et bien évidemment le twitter de dragosr https://twitter.com/dragosr

Petit update, sur la faisabilité de transformer une carte son en SDR:
http://www.scoop.it/t/low-cost-software-defined-radio-sdr-panorama/p/1004093133/saqrx-vlf-receiver-by-sm6lkm-just-a-sound-card-and-that-s-it (résumé: c'est possible)
Update 01/11/2013 : Toujours au sujet des transmissions, lire http://blog.erratasec.com/2013/10/badbios-features-explained.html#.UnN58IWA8SQ


Conclusion: un malware hyper résilient, très furtif et caché dans le matériel ça peut faire très mal. L'OS ne peut rien faire (car il est bypassé par la VMM) et il est illusoire de débrancher un PC du réseau car le malware communiquera tout de même.
Cela fait beaucoup de choses. C'est tellement gros qu'on lit sur twitter un certain septiscisme à ce sujet. Un sample d'un BIOS infecté à été envoyé à malware.lu (j'ai eu la confirmation), mais il n'est pas encore disponible pour analyse.

2/ php.net
Dans un registre plus léger, php.net s'est fait corrompre. Une lib js qui embarquait un exploit pack. Que des sites se fassent pirater, on a l'habitude. Mais comment expliquer que php.net se fasse trouer?

La première explication, c'est qu'un scan auto ait détecté la faille, installé le pack et continué son chemin. Et là, on peut se trouver etonnant que php.net se fasse trouer par un bot. La seconde explication c'est qu'un pirate ait pris le temps de percer php.net. Mais dans ce cas pourquoi mettre un exploit pack détecté par stopbadware? Il est évident que ce site est régulièrement scanné et qu'il allait être vite flaggé malveillant, laissant une fenêtre d'infection très réduite. On peut toujours arguer qu'il s'agit d'un site très visité, permettant d'infecter énormément de machines même si la durée est courte.
C'est peut-être une étude à faire: Vaut il mieux infecter des sites à trafic moyen et laisser l'infection présente longtemps, ou des sites à très fort trafic avec une durée d'infection réduite?

3/ GreHack
Et enfin, je serais à la GreHack pour les confs et pour le CTF. Ce sera mon premier CTF, let's pwn!

---
[1] Si c'est possible, je veux bien que ça soit open sourcé, ça permettrait de faire du réseau vraiment à pas cher :)

6 commentaires:

  1. Yop. Faut pas rêver, SDR ne rime pas avec magie. Faut quand même un peu de composants avant de pouvoir sortir un signal. Et la carte son n'est là que pour jour le role de CAN CNA, pas d'étage final ni de mixer..... ;-)

    RépondreSupprimer
  2. C'est un peu du pinaillage, mais c'est pas le hardware qui est compromis, c'est le middleware ou firmware (couche driver bas-niveau), et encore pour les éléments reprogrammables ( les OTP sont encore sûrs). La solution est simple : rajouter des OTP avec clés de cryptage pour empêcher les reprogrammations non désirées.

    Sinon le SDR ça sent un peu l'effet d'annonce : même en supposant qu'il soit possible d'émettre avec la carte son (quelle antenne ?) la portée d'émissions sonores ne dépasse pas le cadre d'un appartement. Idem pour le wifi : le bâtiment au maximum.

    Par contre le contrôle du BIOS (et du mbr je suppose) est une mauvaise nouvelle...

    RépondreSupprimer
  3. @IT, @Anonyme: Pour le SDR, ça reste imaginable.
    Si on lit par exemple https://www.schneier.com/blog/archives/2013/10/air_gaps.html, Schneier indique utiliser un portable déconnecté du réseau et qu'il échange uniquement des fichiers chiffrés via clés USB. Il est plus que probable que son PC connecté à internet et celui déconnecté de tous réseaux soient dans la même pièce: son bureau. Et nous sommes précisément dans une situation ou badbios est efficace.

    RépondreSupprimer
  4. @Kevin: Ne mélangeons pas, l4air Gap est une notion bien connue qui consiste à introduire un "espace vide" entre deux possibles connexions, afin de s'assurer de l'absence de liaison électronique. Tonton Bruce ne parle pas de liaison radio.
    En ce qu iconcerne le SDR, en réception comme en émission, il faudra bien une antenne (un aérien dans le vocable radio ham), probablement une préamplification en réception et une amplification en émission. Il faudra également un multiplexeur (on fait quoi de nos I &Q ?). Le DAC/ADC de la carte son ne fait pas tout. Je pense qu'on peut évincer de cette démarche le rêve de laision radio. Par contre, à la GreHack, il y aura des gens pour t'en causer (MarcO ou BrunoK...).
    Amicalement,
    ITI

    RépondreSupprimer
  5. @ITI: merci pour ces précisions

    Et pour la GreHack, n'hésitez pas à me voir pour discuter de ça ou autre chose [ou juste boire une bière, c'est sympa aussi :-) ]

    RépondreSupprimer
  6. On m'a envoyé plusieurs fois le même lien qui "prouverait" que badbios ne serait que du vaporware:
    http://www.rootwyrm.com/2013/11/the-badbios-analysis-is-wrong/.

    Quelques réactions face à ça:
    -Comme indiqué, je n'ai fait que compiler quelques liens sur un sujet qui me semble d'intérêt, et je dis juste que l'histoire mérite d'être suivie.

    -L'analyse faite par rootwyrm repose sur trois points:
    1/ il est impossible d'avoir un code unique infectant tous les BIOS du marché. 2/ Un BIOS modifié serait immédiatement détecté grâce au checksum d'intégrité. 3/ Certaines supposées fonctionnalités de badbios sont impossibles à réaliser depuis le BIOS (émettre du son ou manipuler des process).

    C'est intéressant, mais dragosr n'a jamais indiqué que toutes les machines du monde seraient infectées, il a seulement dit que le malware résistait au reflashage d'un BIOS. Concernant le contrôle d'intégrité supposé rendre les modifications de BIOS immédiatement détectables, je pense qu'on peut juste rire un grand coup (intégrité != signature et je contournais déjà des routines d'intégrité dans des jeux sous DOS). Et enfin dragosr indique bien que des fonctions sont effectuées au niveau de l'OS (puisqu'il parle d'un hyperviseur).

    Ainsi, je pense que rootwyrm a partiellement raison: imaginer que badbios soit un malware uniquement logé dans un BIOS est impossible. Le problème, c'est que dragosr indique dans ses tweets qu'il s'agit bien d'un malware à multiples étages, dont l'infection du BIOS ne serait qu'une partie, il reste l'hyperviseur, la carte son, les fontes, les firmwares des clés USB, les CD, etc..

    Comme on me faisait remarquer aussi, dragosr s'est peut-être fait owner non pas ses machines, mais seulement son compte twitter et on est juste en face du troll de l'année :-)

    RépondreSupprimer