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 :)

mercredi 9 octobre 2013

1000 offres d'emploi dans la sécurité informatique

Les assises de la sécurité viennent d'avoir lieu et je lisais à ce sujet des commentaires sur l'ANSSI qui recrute à son habitude. Cela a fait écho pour moi à un article du figaro sur le recrutement des hackers. On y lit que le recrutement est difficile, que les hackers s'arrachent, et que les demande des recruteurs ne sont pas satisfaites par les personnes en recherche d'emploi.

1/ Quel est aujourd'hui le marché de l'emploi dans la sécurité informatique?
Le meilleur moyen d'y répondre consiste à lire les offres d'emploi visibles. J'ai utilisé un site agrégateur d'offres d'emplois: indeed. J'ai donc téléchargé les 1000 dernières offres d'emploi sur la France entière labellisée "sécurité informatique", termes les plus larges possibles pour remonter le maximum d'offres d'emplois triées par date. Il s'agit donc du marché visible de l'emploi, agrégé depuis plusieurs sources différentes.
Je n'ai pas lu dans le détail les 1000 offres d'emplois. Les résultats dont je parle dans cet article proviennent de recherche en texte brut à l'aide de script basés sur grep et wc. Ces résultats sont donc approximatifs, mais permettent de ressortir des points intéressants.


2/ Résultats bruts
La recherche "sécurité informatique" remonte beaucoup d'annonces liées à la sécurité (pharmaceutique, médicale, BTP, etc..) qui demandent également des connaissances informatiques (Excel, etc..). Sur deux échantillons de 50 offres, j'ai 5 et 6 offres qui n'ont manifestement rien à voir. Cela donne une marge d'erreur de 10% sur les offres d'emplois.

2/1/ Durée de l'échantillon
L'offre la plus ancienne datait de 30 jours. La récupération s'est faite fin septembre, donc le panel est une représentation des offres du mois de septembre 2013.

2/2/ Géographie des offres
Plus de 90% des offres donnent le département d'emploi. Voici une infographie:
En abscisse le numéro de département, en ordonnée le nombre d'offres.
Si on additionne les départements 75, 91, 92, 93, 94, 95 on arrive à la somme écrasante de 372 offres, soit plus du tiers total des offres (!!). Le second département en nombre d'offres, Rhône est à 73 offres, 5x moins que la région parisienne, et 3x moins que Paris (208 offres).

2/3/ Salaires
Les salaires sont très peu indiqués dans les annonces. Il n'y a pas non plus d'accesseurs simples pour accéder à leur valeur. Le mot "euros" apparaît dans seulement 80 offres, le caractère € dans moins de 50 (et dans plusieurs d'elles, € sert à indiquer le CA de l'entreprise).

Ce qu'il en ressort malgré tout, c'est une petite fourchette entre 20-30kE pour des postes de techniciens. Ensuite, une fourchette 30-40kE pour des profils plus ingénieurs, et deux offres à plus de 50kE (50kE et 70kE).

2/4/ Quelques mots-clés
J'ai écrit une fonction qui me donne le nombre d'annonces contenant une ou plusieurs fois un mot-clé. Voici, sur 1000 offres quelques résultats.
Sur le niveau demandé (stag permet d'avoir stage et stagiaire):
mot-cléoccurence
stag97
technicien229
ingénieur411
expert369
rssi24
consultant109

Sur les compétences (pour le reverse, il faut grepper avec engineering, sinon cela remonte toutes les annonces contenant reverse-proxy):
mot-cléoccurence
crypto31
crack0
hack3
engineering11
malware2
offensif0
offensiv0
pentest6
redteam0
scada2
fuzz2
forensic3
cybersécurité7
cybersecurity0

Si on sort seulement 3 annonces du lot des 1000 (!), alors ce tableau devient pratiquement vide.

2/5/ Les entreprises
Il n'y a pas de moyen simple d'accéder aux entreprises qui recrutent. Néanmoins, on retrouve quelques tendances:
Cassidian: les 3 offres dont je parlais ci-dessus, Thales, EADS, anssi et sogeti pour 63 offres. 42 offres labellisées SSII. C'est plutôt varié dans l'ensemble.

2/6/ Quelques offres "choisies"
Une offre intitulée 'expert sécurité' qui cherche quelqu'un pour installer des antivirus sur des postes windows (ça c'est de l'expertise, coco).
Beaucoup de stages dont un qui demande au stagiaire de refondre l'archi sécurité et SI du groupe (rien que ça...).
Une mission de mise en place de firewalls, "brassage et câblage compris"

3/ En conclusion, peu d'offres intéressantes
La conclusion de ce passage en revue des 1000 offres est plutôt déprimante. Je n'ai pas vu beaucoup d'offres de sécurité informatique qui font rêver. On en supprime seulement 3 sur 1000 et il reste une quinzaine d'offres avec des mots-clés potentiellement intéressants.

Pour le reste, on a une première majorité d'offres est une recherche pour des développeurs, ayant vaguement une compétence sécurité. Une autre grosse majorité d'offres concerne des admins systèmes se voyant ajouter des missions "sécurité" (reverse proxy, VPN, firewall)[1]... Enfin, une troisième majorité qui se contente de demander des certifications (ISO27k, PCI etc..) pour effectuer de la compliance genre PCA/PRA, AMOA, AMOE, etc... (et dans l'écrasante majorité de ces cas, ce sont des SSII). De plus, en dehors de Paris, aucun espoir de travailler dans un domaine innovant. Si je sors Paris +  9[12345] des annonces, alors le tableau de compétences cité plus haut est vide et il ne reste que des offres de SSII et d'administration système.

Il y a peut-être deux explications. La première vient du fait que je me suis intéressé qu'au marché visible de l'emploi. Je connais des offres qui n'apparaissent pas dans ce panel alors qu'elles existent. La seconde est que les SSII n'hésitent pas à innonder les job-boards, écrasant sans doute en nombre d'autres offres. Et pour le parisiano-centrisme, je sais qu'il existe des pépites innovantes (Tetrane, Netasq (kikoo mes nouveaux amis ;) ), Vupen, quelques sociétés et grands groupes à Sophia, etc..) mais au vu de leur nombre réduit leurs offres sont bien évidemment rares

Je terminerai en donnant le titre d'un article: cybersecurity should be seen as an occupation not a profession.

---
[1]Cela me rappelle une citation lue dans un MISC 66 dont j'avais déjà parlé : "Et les gens qui sont la tête dans le guidon n'ont pas forcément le temps de s'en préoccuper, quand il faut déjà faire marcher le réseau pour que le PDG puisse consulter ses mails depuis n'importe où.(...)En attendant, côté réseau, la réponse est toujours la même : empiler des équipements. Et les équipes ne changent pas plus, toujours en sous-effectif, avec de plus en plus de missions à remplir avec de moins en moins de moyens. Et bizarrement, les effets sont toujours les mêmes : les attaques passent.". Les offres reflètent bien cette idée.