SecurityInsider
Le blog des experts sécurité Wavestone

Bring Summer Back ! Compte-rendu des conférences de cet été - SSTIC 2018



 

 

Il fait de moins en moins beau, les journées sont courtes, il fait froid..... Quoi de mieux pour remédier à cette ambiance maussade que de rappeler les meilleurs moments de l'été. Et nous ne parlons pas de plage, de surf ni de soleil mais des conférences auxquelles nous avons pris part !
Nous commençons ce flash-back par un compte-rendu du SSTIC de cette année. Trois jours et un beau panel de sujets traités par des conférenciers d'un très grand niveau, dans la très belle ville de Rennes (voir photo ci-dessus).

 

Day 0


Conférence d’ouverture :

La conférence d’ouverture a été présenté par Halvar Flake aka Thomas Dullien (Google) qui a exposé les principaux problèmes du monde de la rétro-ingénierie (8 au total) et qui l'empêchent d'avancer. Certains de ces problèmes sont également applicables au monde de la cybersécurité en général.
  • Limiter les options de débogage n’apporte pas de sécurité supplémentaire : Au contraire, cela empêche les chercheurs en sécurité d’aider les concepteurs.
  • Apparition d’un « Left Shift » lors de la production : Lors de la réalisation d’un produit les trois étapes : conception du matériel, développement du logiciel, réalisation des tests doivent être successives. Cependant, ces trois étapes ont tendance à être de plus en plus proches, voir superposées, pour vendre plus rapidement détériorant ainsi la qualité de ces étapes.
  • L’économie des outils de rétro-ingénierie : il y a peu de places à pourvoir et les forces sont divisées entre toutes les nations (services secrets...).
  • Mauvaises pratiques de développement des rétro-ingénieurs :
  • Throw away scripts : écriture de scripts à usage unique au lieu de créer des outils complets, modulables et réutilisables dans différents cas ;
  • Poor-tooling pride : la fiertée tirée de l'usage d'outils limités (tel que ed au lieu de vim) au lieu de se simplifier la vie ;
  • Peu de collaboration et de publication.
  • Trop de Frameworks différents : Chacun redéveloppe le même outil dans un langage différent, avec un format de données différent et des fonctionnalités relativement similaires. Certains outils n'ayant pas les mêmes fonctions ne sont pas interopérables à cause des formats de données différents et le manque de collaboration sur les outils engendre encore plus de fragmentation.
  • Paperaware tools : Les outils sont généralement réalisés pour des publications et restent à l'état de PoC et ne sont pas fonctionnels dans des cas réels avec des résultats reproductibles. De plus il n'y a aucune vision sur les problèmes déjà résolus.
  • Il n'existe aucune distribution de rétro ingénierie comme Kali Linux pour les tests d'intrusion.
  • Myopie du code : La rétro-ingénierie ne se base pas seulement sur le code mais également sur les informations autour (système, contexte...) que peu de rétro-ingénieurs prennent la peine de  récupérer.

Halvar Flake propose alors 5 moyen de pallier ces problématiques :
  • Laisser la possibilité de déboguer pour les défendeurs (le gain de sécurité n'est pas réel en désactivant) ;
  • Besoin d'interfaces standards (format de donnée) entre les outils de rétro-ingénierie pour faciliter l'interopérabilité, les tests et la reproduction des résultats ;
  • Une distribution comportant tous les outils pour la rétro-ingénierie (kali-like) fonctionnelle ;
  • Produire des outils fonctionnels fiables et arrêter la fragmentation ;
  • Effectuer des tests en situation réelle pour fournir des outils de qualité.

Enfin, à l'avenir plusieurs éléments sont à prendre en compte :
  • Le Nuage : "Data center as a computer" : Système d'Exploitation à la source et au binaire fermés ;
  • La fin de la loi de Moore et l'apparition de plateformes hétérogènes (CPU, GPU, FPGA...) ;
  • La course vers le bas de la pile : la co-conception du matériel et du logiciel génère un besoin de plus de documentation pour les rétro-ingénieurs.
Ces trois éléments rendent le travail de rétro-ingénierie plus complexe qu'il ne l'a été.

Backdooring your server through its BMC : the HPE iLO4 case

Alexandre Gazet, Fabien Perigaud et Joffrey Czarny ont présenté comment compromettre un serveur en passant par l'interface de contrôle à distance iLO4 sur les serveurs HP ProLiant.
iLO est un "Baseboard Management Controler" (BMC) : un chipset séparé, complètement indépendant du serveur, et démarré dès l'alimentation du serveur.
Le prérequis pour cette attaque est la compromission de iLO qui peut s'effectuer notamment grâce au bypass de l'authentification. Une fois compromis, il est possible de récupérer et d'écrire dans la mémoire du noyau directement depuis iLO. A partir de là les trois chercheurs on compromis la chaîne de confiance du démarrage en retirant la vérification d'intégrité du bootloader et du noyau pour ensuite flasher leur propre firmware sur la flash de iLO.
Il est alors possible de communiquer avec le serveur principal au travers de la DMA. A partir de là les chercheurs ont compromis le noyau Linux s'exécutant sur le serveur hôte en injectant un implant directement en mémoire.
Les failles permettant ce type d'attaque ont été patchées dans les nouvelles versions, donc n'oubliez pas de vous mettre à jour :)


Certificate Transparency ou comment un nouveau standard peut aider votre veille sur certaines menaces

Christophe Brocas et Thomas Damonneville ont présenté un nouveau standard pour les certificats TLS qui permet de suivre et tracer les demandes de signature de certificat par les autorités. Ces journaux sont accessibles publiquement et leur surveillance permettrait de détecter la génération de certificats pour des noms de domaine utilisables dans des campagnes de phishing par exemple. Ce standard sera obligatoire dans chrome 68 et tous les sites n'implémentant pas se nouveau standard seront marqués comme non sécurisé dans cette version.


Risques associés aux signaux parasites compromettants : le cas des câbles DVI et HDMI

Emmanuel Duponchelle et Pierre-Michel Ricordel ont démontré comment extraire les données passant dans un câble vidéo à distance. Il leur a été possible d'obtenir une image précise d'un écran d'ordinateur se situant à 10m de distance. Cette technique se base sur les rayonnements émis lors des fronts du signal. Les câbles HDMI et DVI sont affectés de par leur fréquence. Les câbles VGA et Display Port ne sont pas affectés respectivement à cause de la douceur des pentes des fronts et à cause du fait que le signal est brouillé et non reconstructible. Il est également important d'utiliser des câbles correctement blindés de bout en bout. Souvent le câble fournis avec l'écran l'est correctement, contrairement à la majorité des câbles disponibles dans le commerce.

Smart TVs : Security of DVB-T

Chaouki Kasmi, José Lopes Esteves et Tristan Claverie ont présenté les standards DVB et HbbTV et ont démontré que la spécification ne prend pas en compte la sécurité. Ainsi, il est possible de compromettre les smart TV au travers des signaux radios en injectant des application sur ces dernières. En effet les signaux TNT ne sont pas authentifiés et les applications sont exécutables de manière silencieuse, donnant lieu à des exécutions de code à distance au travers du signal TNT.

Three vulns, one plug

Gwenn Feunteun, Olivier Dubasque ainsi qu'Yves Duchesne ont montré comment compromettre un objet connecté, ici une prise secteur pilotable à distance. L'objet comportait plusieurs failles et de fausses fonctionnalités de sécurité comme :
  • l'envoi de faux paquets IP sur le réseau pour brouiller les pistes lors de l'appairage ;
  • le "chiffrement" du code Wi-Fi envoyé à la prise grâce à un code césar ;
  • un port UDP ouvert acceptant des commandes d'administration.

Escape Room pour la sécurité

Éric Alata, Erwan Beguin et Vincent Nicomette ont présenté, une fois n'est pas coutume, un moyen de sensibiliser de manière efficace à la cybersécurité. Cette opération s'effectue au travers d'un escape game, jeu à la mode dont le but et de résoudre une suite d'énigmes en moins d'une heure afin de s'échapper d'une pièce close. Ce type d'activité est notamment utilisé à des fins pédagogiques. Ici les énigmes portaient sur la cybersécurité et prenaient la forme d'un combat blue team / red team avec de l'ingénierie sociale. Cet activité comporte également un récapitulatif avec les participants à la fin de l'épreuve pour fixer les bonnes pratiques de sécurité. Cette méthode innovante pour la sensibilisation à la cybersécurité leur permet d'introduire le sujet auprès des étudiants de première années ainsi qu'à l'administration de l'INSA Toulouse.

WooKey: USB Devices Strike Back

Arnauld Michelizza, Jérémy Lefaure, Mathieu Renard, Philippe Thierry, Philippe Trebuchet et Ryad Benadjila, membres des laboratoires de l'ANSSI, ont présenté un clef USB de stockage sécurisé : Wookey. Le but de l'opération est de répondre à la menace bad USB.
Wookey est une clef USB de stockage chiffrée embarquant un module cryptographique, la clef de chiffrement est fournie par un module sécurisé : une carte à puce associée à un code pin. Le noyau conçu pour ce système est un microkernel maison, réalisé principalement en ADA / SPARK afin de prouver le code dans le but d'assurer un niveau de sécurité maximum. Le système d'exploitation est conçu de façon modulaire et comporte des mécanismes de protection mémoire entre les différentes applications. De plus le matériel et le logiciel sont open source.

Attacking serial flash chip : case study of a black box device

Emma Benoit, Guillaume Heilles et Philippe Teuwen ont exposé leur méthode pour extraire les données d'une puce flash au format BGA (Ball Grid Area). Pour réaliser cette opération, ils ont dû employer diverses méthodes, la plus concluante étant le retrait du PCB d'origine, la fabrication d'un adaptateur (PCB intermédiaire) pour s'interfacer à la flash au format DLP (Dual Line Package). Il est ensuite aisé de copier, effacer ou réécrire la mémoire flash grâce à une interface SPI.

Day 1


Easy TLS for Everyone: Integrating Let's Encrypt at Scale [Conférence invitée]

Daniel Jeffery, membre de Let's Encrypt a présenté comment Let's Encrypt a permis de révolutionner la sécurité sur internet. En effet avant son apparition la majorité des sites utilisant Let's Encrypt (> 90%) soit n'utilisaient pas le HTTPS ou utilisaient des certificats auto-signés.
TLS est compliqué et dur à configurer, Let's Encrypt permet avec un minimum d'opérations d'obtenir un certificat signé, correctement configuré et implémenté dans le serveur web. En effet, certbot avec le protocole acme, ont permis une grande simplification des opérations menant à l'obtention d'un certificat signé par une autorité.
De plus Let's Encrypt est passé de rien à une autorité de certification publique en 8 mois. Aujourd'hui ce sont 13 personnes à temps pleins qui travaillent sur le projet.
Daniel Jeffrey a présenté en plus de l'histoire de Let's Encrypt, les problématiques rencontrées et les erreurs à éviter pour une telle entreprise.

YaDiff: Corrélation de binaires, méthodes empiriques et machine learning

Benoît Amiaux, Eric Renault, Frédéric Grelot, Jérémy Bouétard, Martin Tourneboeuf et Valérian Comiti, ont présenté un outil permettant la propagation de symboles entre binaires (dans les bases IDA) lors de la rétro ingénierie de binaires. Cette propagation s'effectue grâce à deux méthodes. Une analyse et propagation statique, et l'utilisation d'une intelligence artificielle aussi appelée réseau de neurones. Cette méthode permet de palier aux défauts des méthodes classiques qui ne sont pas résistantes aux variations d'implémentation et d'architecture.

  • Analyse statique :
Yadiff effectue des signatures de fonction : ces signatures sont résistantes aux petites variations (ne pas utiliser d'octets invariants). Ex : mv r0 r1 devient mv reg reg puis un hash de l'instruction est effectué. La signature de la fonctions base sur un cluster de hash. Enfin une détection de collisions de signatures entre deux binaires permet de propager toutes les fonctions identifiées.

  • Intelligence Artificielle :
Les fonctions sont définies avec des vecteurs de dimension 1000 (prototype, arguments, typage...). Plusieurs vecteurs différents peuvent représenter la même fonction.
Ces vecteurs sont ensuite passés dans un réseau de neurones pour apprentissage. Le corpus utilisé dans l'exemple sont les dépôts Debian Wheezy, Jessie et stretch. Les résultats de cette technique sont très probants, à savoir qu'en 9 minutes d’entraînement du réseau de neurones, les fonctions similaires de test sont détectées et regroupées, et ce, avec des définitions sur plusieurs architectures et différentes implémentations (versions). Les fonctions ainsi analysées peuvent être alors propagées dans la base IDA de destination.

Cette nouvelle technique de propagation de symbole et de fonction dans les bases IDA semble permettre d'obtenir des résultats plus satisfaisants que les anciennes méthodes.

Day 2


HACL* une bibliothèque de cryptographie formellement vérifiée dans Firefox

Benjamin Beurdouche et Jean Karim Zinzindohoue ont présenté une bibliothèque cryptographique formellement prouvée. L'intérêt de cette bibliothèque est de pallier les problèmes des failles rencontrées souvent dans les bibliothèques classiques telles que OpenSSL. En effet, le langage utilisé pour cette bibliothèque est le F* permettant ainsi de prouver formellement tout le code écrit vis à vis de la spécification mathématique. Cette bibliothèque a été intégrée dans Firefox et remplace, avec de meilleures performances, NSS (Network Security Service, la bibliothèque cryptographique utilisée par Firefox) pour certains algorithmes. Cependant, la génération de code implique une transformation de F* vers C, puis une étape de nettoyage du code (suppression de branches mortes, code inatteignable ou variables intermédiaires).
Ce projet démontre que faire de la cryptographie n'est pas trivial mais qu'une implémentation correcte et formellement prouvée reste possible. Il montre qu'en plus d'un gain de performance flagrant, des garanties peuvent être fournies sur un projet prêt pour et utilisé en production, ici dans Firefox.

Ça sent le SAPin !

Yvan Genuer a présenté une nouvelle faille présente dans SAP. Pour cela il s'est penché sur un module encore très peu ou pas étudié d'un point de vue sécurité, pour y trouver des failles et des points d'entrée. Le message principal de cette présentation est que si une application ou un module ne possède pas de faille c'est que, souvent, personne ne s'est encore penché dessus d'un point de vue sécurité. Il reste encore beaucoup de modules non étudiés dans SAP bien que ce progiciel soit utilisé dans une grande partie des entreprises aujourd'hui pour manipuler des données souvent critiques.


Hacking Harness open-source

Ivan Kwiatkowski se basant sur des travaux de 2007, a implémenté et montré sont hacking harness ou "costume de fripon" pour remédier au principal problème suivant : "vous avez déjà eu l'expérience de travailler sur un Shell un peu dégradé où il n'y a pas de tty, 7 proxy qui rajoutent de la latence, tant et si bien que lorsque vous essayez de taper un chemin pour effectuer un ls ou un cd vous avez 2 ou 3 secondes de décalage entre le moment où vous tapez votre caractère sur le clavier et le moment où il s'affiche à l'écran et vous pouvez faire un bon nombre de fautes de frappe et diverses boulettes. [...] Les Tabs apparaissent si je veux revenir en arrière parce que j'ai fait une erreur on a des caractères bizarres qui s'affichent. Ctrl + A, Ctrl + K ça marche pas [...]à la fin par frustration je vais faire un Ctrl + C je vais perdre mon Shell et je vais être en colère."

Ce filet garde-fou est en fait un wrapper autour du Shell et permet notamment de n'envoyer la commande au serveur qu'une fois la touche entrée frappée et d'obtenir de l'auto-complétion. Il implémente également des fonctions de téléchargement et téléversement directs. En résumé cet outil rend plus agréable l'interaction homme machine en phase de post-exploitation.



Le programmes des conférences est disponible en accès libre en ligne tout comme les vidéos de toutes les conférences :
https://www.sstic.org/2018/programme/

Perceval ARENOU

Aucun commentaire:

Enregistrer un commentaire