Retour sur l’édition 2015 du SSTIC

Retour sur l’édition 2015 du SSTIC

Cette année, XMCO était présente à l’édition 2015 du SSTIC. Nous vous proposons au sein de cet article, le résumé de quelques conférences auxquelles nous avons assisté.

Jour 1

PICON : Control Flow Integrity on LLVM IR, par Arnaud Fontaine, Pierre Chifflier et Thomas Coudray

PrésentationArticle

Depuis les années 90, de nombreuses vulnérabilités exploitent les techniques de manipulation de la mémoire d’un programme (les fameux « buffer-overflow »). Celles-ci permettent à un attaquant de modifier le déroulement « normal » d’un programme afin de lui faire exécuter un comportement divergent (exécution d’un Shell, ouverture de connexion vers l’extérieur, etc.).

Arnaud, Pierre et Thomas ont donc mis en œuvre un outil permettant la vérification de l’intégrité du graphe de flot de contrôle d’un programme. Sous ces termes un peu abstraits se cache un concept simple : s’assurer que les actions réalisées par un programme sont celles définies par le développeur, et non pas le résultat d’une injection par un attaquant.

Techniquement, cela se fait par l’ajout d’instructions au sein du code du programme. Par exemple, lorsque la fonction « main » appelle la fonction « foo », PICON ajoute des instructions au sein de :

  • La fonction « main » pour dire qu’on va appeler « foo » (avant l’appel classique à la fonction) ;
  • La fonction « foo » pour indiquer qu’on va revenir dans la « main » (avant le retour classique).

Cette surcharge permet de surveiller que le déroulement du programme est conforme à celui attendu par le développeur (si une des étapes attendues, notamment dans la phase de retour, ne se déroule pas, le programme est tué).

Triton – Framework d’exécution concolique, par Florent Saudel et Jonathan Salwan

PrésentationArticle

On reste dans le domaine de l’analyse mémoire des applications avec Florent et Jonathan. Triton est un framework d’exécution concolique permettant aux chercheurs de réaliser des opérations de surveillance et de manipulation sur la mémoire RAM d’un processus.

Ces fonctionnalités permettent ainsi de surveiller comment une variable définie par un utilisateur se propage au sein d’un programme et comment elle va influencer le fonctionnement de l’application (décision d’un saut ou non). Cela permet aux chercheurs de comprendre comment atteindre un état spécifique du programme, notamment afin d’exploiter certaines vulnérabilités ne se produisant que dans des cas précis.

Par ailleurs, un système de snapshot permet de revenir à un état précédent dans l’exécution d’un programme, par exemple pour essayer d’injecter des valeurs différentes et constater les différences de comportement.

REbus : un bus de communication facilitant la coopération entre outils d’analyse de sécurité, par Philippe Biondi, SarahZennou et Xavier Mehrenberger

PrésentationArticle

Tout consultant en sécurité a déjà été confronté à des tâches conséquentes et rébarbatives. REbus se veut un couteau suisse permettant l’automatisation de ces tâches.

Il s’agit concrètement d’un bus de communication entre différents outils (nommés agents). A l’aide d’une sémantique propre à REbus, l’auditeur peut automatiser une tâche ou une suite de tâches au travers de ces agents.

Des démonstrations de cette sémantique ont été réalisées par les speakers sur des cas concrets (extraction d’archives suivie du calcul du condensat des fichiers extraits, corrélation des imports entre différents exécutables).

Airbus a déjà implémenté un bon nombre d’agents (analyse de fichiers, découverte de services réseau, etc.). Par ailleurs, l’architecture se veut modulaire afin que des agents supplémentaires puissent être intégrés facilement lorsqu’un nouveau besoin se présente.

CLIP : une approche pragmatique pour la conception d’un OS sécurisé, par Vincent Strubel

Vidéo

Au cours de cette présentation, Vincent Strubel, sous-directeur « Expertise » à l’Agence nationale de la sécurité des systèmes d’information (ANSSI), a présenté le système d’exploitation sécurisé de l’ANSSI baptisé CLIP.

En plus d’offrir un socle Linux durci, CLIP permet de travailler sur deux environnements de travail isolés l’un de l’autre ; l’un des environnements étant plus « sécurisé » que l’autre. L’objectif de cette architecture est de dédier l’environnement « sécurisé » à la manipulation de données sensibles et à la réalisation de tâches d’administration.

Vincent Strubel a conclu cette présentation en rappelant que CLIP n’a pas pour vocation à devenir une distribution sécurisée du système Linux. CLIP a pour vocation d’être utilisé dans des contextes spécifiques (ex: poste d’un administrateur). Nous rappelons que ce système d’exploitation n’est pas disponible publiquement.

FlexTLS : des prototypes à l’exploitation de vulnérabilités dans TLS, par !Benjamin Beurdouche et Jean Karim Zinzindohoue

PrésentationArticle

Le protocole TLS (Transport Layer Security) est le protocole le plus utilisé pour sécuriser les communications à travers Internet. Pour autant, les outils permettant de manipuler des échanges TLS sont rares sur le marché.

C’est dans ce contexte que les orateurs ont développé l’outil FlexTLS. Développé en F#, ce dernier permet de réaliser et de manipuler des échanges TLS. FlexTLS apparait comme un couteau suisse pour tester à tous les niveaux le protocole TLS.

Jour 2

Analyse de sécurité de technologies propriétaires SCADA, par Alexandre Gazet, Florent Monjalet et Jean-Baptiste Bédrune

PrésentationArticle

Les trois orateurs ont réalisé une analyse d’un système industriel (PLC) récent. Durant cette présentation, ils ont présenté la démarche suivie et les résultats obtenus.

L’étude a commencé par une analyse en boite noire du protocole de communication propriétaire employé par le PLC. Très vite, il est apparu que les données échangées étaient chiffrées. L’analyse d’un client de supervision disponible sur les systèmes Windows a permis de révéler l’utilisation du protocole « HMAC SHA-256 ». L’analyse approfondie des échanges ainsi que le débogage du client de supervision ont permis de mettre en évidence un défaut dans le générateur de nombres pseudo-aléatoires (PRNG). En effet, ce dernier était inutilisé avec une graine statique. Ainsi, il était possible de prédire les valeurs de clé HMAC. En menant une attaque de bruteforce avec les valeurs des clés HMAC générées, les orateurs ont été en mesure de mener une attaque de type Man In The Middle. Notons qu’une fois signalée, cette erreur a rapidement été corrigée par l’équipementier.

Durant cette étude, une analyse du firmware du PLC a également été menée. Ce dernier a été récupéré sur le site du constructeur. Cette démarche n’a pour le moment révélé aucune vulnérabilité.

Protocole HbbTV et sécurité : quelques expérimentations, par Eric Alata,Jean-Christophe Courrege, Mohammed Kaaniche, pierre lukjanenko, VincentNicomette et Yann Bachy

PrésentationArticle

D’intéressants travaux,d’une équipe du CNRS, représentée par Yann Bachy, montrent comment compromettre le LAN d’un particulier à partir de vulnérabilités au sein des télévisions connectées.

Les télévisions connectées implémentent le standard HbbTV (HybridBroadcast Broadband TV). Ce standard permet aux éditeurs d’enrichir leur contenu avec la diffusion de services annexes (contenu interactif, proposition de vidéos en replay, liste de programmes, etc.). Concrètement, les ondes hertziennes transmettent une URL qu’un navigateur intégré au sein du téléviseur récupère et interprète. Nous parlons ici de technologies web habituelles (HTML, CSS, JavaScript, AJAX, etc.) qui sont affichées en même temps que la vidéo regardée par l’utilisateur (overlay).

Dans un premier temps, les chercheurs placent une antenne à proximité de la télévision connectée ciblée. Ils vont surcharger le flux hertzien reçu par le téléviseur afin d’y diffuser un contenu différent. Ce contenu utilise le standard HbbTV afin de forcer la télévision victime à se connecter à un serveur malveillant qu’ils contrôlent.

Le navigateur de la télévision ne vérifie pas toujours la Same-Origin-Policy. Profitant de cette faiblesse, le serveur malveillant expose du code JavaScript qui va demander à la télévision de réaliser des actions sur le réseau local. Les chercheurs du CNRS utilisaient ces instructions JavaScript pour demander à la box du réseau local d’ouvrir des ports sur Internet via une requête UPNP.

Ainsi, l’attaquant pirate localement le téléviseur et peut essayer d’en prendre le contrôle afin de rebondir sur le réseau local.

Fuddly : un frameworkde fuzzing et de manipulation de données, par Eric Lacombe

PrésentationArticle

Fuddly est un framework de fuzzing développé en python. Ce dernier, encore à l’état expérimental, permet de définir des formats de données à l’aide de graphes orientés acycliques. Brièvement, les terminaisons du graphe correspondent le format de la donnée et les arcs décrivent sa structure.

L’automatisation du fuzzing sur un format de données est réalisée par un « disrupteur ». Les disrupteurs peuvent être génériques et s’appliquer à plusieurs types de format de données ou spécifiques à un format de données en particulier. Afin de fuzzer un format de données en profondeur, il est donc nécessaire de formaliser ledit format à l’aide d’un graphe, puis de développer un ou plusieurs disrupteurs associés.

Mais le framework ne s’arrête pas là. Ce dernier permet de combiner des formats de données entre eux, de chainer des disrupteurs, etc. D’après l’orateur, Fuddly serait utilisé afin de tester des équipements anioniques.

A Large-Scale Analysis of the Security of Embedded Firmwares, par Andrei Costin

PrésentationArticle

Pour cette dernière conférence courte de la journée, Andrei Costin nous a présenté un projet d’analyse de firmware de masse, disponible à l’adresse suivante http://www.firmware.re/ . Ce dernier, déjà présenté à la BlackHat par le précédent orateur Jonas Zaddach, permet de réaliser une analyse à grande échelle de firmwares, et ce, via différentes techniques :

  • Analyse statique simpliste ;
  • Analyse de la configuration des différents composants (serveurs web, identifiants parfois écrits en durs, repositories, etc.) ;
  • Corrélations d’informations entre les firmwares (certificats SSL par exemple) ;
  • Fuzzing.

Parmi les différentes problématiques rencontrées, Andrei Costin s’est attardé sur la difficulté d’obtenir un large panel de firmwares. Ces derniers ne sont pas toujours disponibles sur internet. De plus, les firmwares ne sont pas toujours au même format (bin, zip, voire pdf). Pour cette raison, il a été nécessaire d’appliquer des techniques afin d’obtenir des données analysables (« file carving » ou bruteforce des firmwares avec différents unpackers).

Jour 3

Utilisation du framework PyCAF pour l’audit de configuration, par Maxime Olivier

Présentation

Après avoir rappelé les objectifs d’un audit de configuration, Maxime Olivier a illustré les contraintes bien connues des auditeurs lors de ces audits. L’extraction des informations techniques nécessaires à un audit de configuration requiert systématiquement des privilèges élevés, ce qui pose déjà un problème. A cela vient s’ajouter la diversité des systèmes pouvant en faire l’objet : serveur Linux, poste Windows, Firewall, Switch, etc.

C’est dans se contexte que Maxime Olivier à présenté l’outil PyCAF, disponible sur GitHub. Développé en Python, ce dernier à pour objectif d’aider un auditeur dans les deux phases d’un audit de configuration, à savoir : l’extraction des données et leur analyse à posteriori.

Analyse de documents MS Office et macros malveillantes, par Philippe Lagadec

Présentation

L’exécution de code malveillant présent au sein de macros de documents Microsoft Office est un vecteur d’attaque qui a longtemps été délaissé. Depuis 2010, Microsoft a choisi de modifier le mécanisme de gestion des Macros qui peuvent être activées par un simple clic. Dès lors, la popularité de ce vecteur d’attaque a drastiquement augmenté.

Pour commencer sa présentation, Philippe Lagadec a rappelé les impacts que pouvaient avoir l’exécution d’une macro sur un système, à savoir, les mêmes qu’une application malveillante. En effet, avec une macro, il est possible (par exemple) de télécharger et d’exécuter un programme sur le système (a.k.a Dropper). Avec le temps, les macros malveillantes se sont complexifiées avec des techniques d’obfuscation et d’anti-sandboxing, à l’instar des malwares classiques.

Puis, l’orateur a rapidement évoqué les outils disponibles pour effectuer une analyse d’un document contenant une macro malveillante (Oledump, Olevba, officeparser, OfficeMalScanner, etc.), en précisant les limitations de ces derniers face à des techniques d’obfuscation. C’est alors qu’il a présenté l’outil ViperMonkey, qui en plus d’intégrer un parseur VBA, permet de faire de l’exécution symbolique du code potentiellement malveillant.

Entre urgence et exhaustivité : de quelles techniques dispose l’analyste pendant l’investigation ?, par Amaury Leroy

Article

Un retour d’expérience d’Amaury Leroy, expert en réponse à incident chez Airbus, qui nous explique sa méthodologie dans le traitement des APT. La situation d’un expert en réponse à incident arrivant chez un nouveau client est compliqué : celui-ci doit identifier des compromissions pointues, au sein d’un réseau très vaste avec lequel il n’est pas familier.

Selon le présentateur, l’approche permettant de gérer cette situation compliquée tout en étant exhaustive est la suivante :

  • Commencer par les actions rentables et simples permettant de gérer l’urgence : récupérer les indices de compromission (IOC), les dégrossir et les classer. Afin de les trouver, l’auditeur peut essayer d’identifier les machines ayant des comportements « extrêmes » (ex : beaucoup trop de données envoyées sur Internet par rapport au reste du réseau). Ces IOC constituent les éléments auxquels l’auditeur doit se raccrocher pour éviter de partir dans de mauvaises directions ;
  • Une fois ces informations obtenues, les utiliser pour répondre aux questions relatives à la compromission : l’auditeur élargit l’investigation en observant les actions de l’attaquant sur les machines précédemment identifiées afin de comprendre le mode opératoire et répondre aux grandes questions relatives à l’attaque ;
  • Enfin, élargir le champ du problème pour s’assurer que rien n’a été oublié : cette phase a pour objectif de vérifier qu’aucun élément n’a été oublié en réalisant des analyses plus complexes sur les IOC (corrélations mathématiques).

IRMA : Incident Response and Malware Analysis, par Alexandre Quint, Fernand Lone Sang et Guillaume Dedrie

Article

Au cours de cette présentation, les orateurs ont présenté IRMA, un framework d’analyse de malware. Une solution antivirale offre rarement une protection, ou du moins un mécanisme de détection exhaustif face à un code ou un programme malveillant.

À cela, IRMA propose de soumettre un fichier ou un programme suspect à une batterie de solution antivirale. Comparable au célèbre outil en ligne virustotal, IRMA permet de garder une maitrise des fichiers qui sont analysés et des résultats d’analyse.

Snowden, NSA : au secours, les journalistes s’intéressent à la sécurité informatique !, par Martin Untersinger

Martin est journaliste au monde dans le domaine du numérique et de la sécurité (sécurité, vie privée, surveillance, etc.).

Martin a travaillé sur les documents fournis par Edward Snowden en 2013. A partir de cette expérience, il relate la difficulté des journalistes à traiter des sujets de sécurité informatique. Ces sujets fortement techniques ne sont pas facilement explicables au grand public. Le journaliste a pour fonction de vulgariser le sujet afin de l’expliquer aux lecteurs, mais celui-ci n’est pas suffisamment armé techniquement afin de comprendre les sujets les plus pointus pour pouvoir les expliquer. Martin en appelait donc aux experts présents au SSTIC pour les encourager à discuter et à collaborer avec les journalistes pour communiquer sur les problèmes de société impactés par la sécurité informatique (surveillance, espionnage, etc.)


Cert-XMCO