SSTIC 2017 – deuxième journée

Liens vers les compte-rendus des autres jours :

CrashOS : recherche de vulnérabilités système dans les hyperviseurs

Anaïs Gantet (Airbus) nous a présenté un système d’exploitation, CrashOS développé dans le but de rechercher des vulnérabilités présentes au sein d’hyperviseurs.

Ce système d’exploitation minimaliste, développé en C et en assembleur, a nécessité 2 mois de travail et a été éprouvé principalement sur deux solutions de virtualisation : Ramooflax (développé en interne à Airbus) et VMWare. Des tests couvrant les aspects suivants ont notamment été écrits :

  • accès à la mémoire physique ;
  • mécanisme de traduction d’adresses ;
  • vérification des droits en mode protégé ;
  • gestion du changement du mode d’exécution ;
  • communication avec les périphériques.

Lorsque ces tests montrent une vulnérabilité, cela provoque un crash de la machine virtuelle, avec un message d’erreur explicitant la cause du crash, permettant d’identifier la vulnérabilité.

Article et vidéo : https://www.sstic.org/2017/presentation/crashos/

ProTIP : Sachez quoi attendre de vos périphériques PCI Express

Cette présentation de Marion Daubignard et Yves-Alexis Perez (ANSSI) s’intéresse aux menaces liées aux périphériques PCI Express malveillants.

Après des rappels sur PCI Express, les présentateurs ont présenté leur outil ProTIP (Prolog Tester for Information Flow in PCIe networks) qui calcule la connectivité réelle d’un composant à un autre. L’objectif est de détecter quel composant a le droit de communiquer avec d’autres composants et quel composant peut faire accepter ses paquets à d’autres composants. ProTIP est capable de générer des traces décrivant ces communications possibles.

Article et vidéo : https://www.sstic.org/2017/presentation/protip/

From Academia to real world: a practical guide to Hitag-2 RKE system analysis

Dans cette conférence, les quatre orateurs (Chaouki Kasmi, José Lopes-Esteves, Mathieu Renard et Ryad Benadjila de l’ANSSI) ont voulu mettre en évidence les vulnérabilités dans le contrôle d’accès contenu dans certains types de clés de voitures se basant sur l’algorithme Hitag-2. L’approche prise par les orateurs a été celle d’un attaquant en boîte noire, n’ayant donc pas accès physique préalable à un véhicule ou à une clé :

  1. capture des trames radio et analyse radio ;
  2. recherche de la clé secrète ;
  3. forge de trames radio valides.

Les orateurs ont rappelé les protections mises en place dans les systèmes RKE (Remote Keyless Entry) de communication monodirectionnelle entre une clé et un véhicule et ont présenté l’algorithme de chiffrement par flot Hitag-2, créé par Philips Semiconductors en 1995 et ayant été reversé en 2007.

Après avoir analysé l’implémentation de Hitag-2 dans une clé de voiture, les orateurs ont pu formaliser les conclusions suivantes :

  • il existe différentes implémentations RKE Hitag-2 suivant les constructeurs ;
  • la cryptographie mise en place est propriétaire, obsolète et vulnérable, sans obligation de maintien en sécurité ;
  • un attaquant disposant de seulement deux trames pourrait forger des trames d’ouverture de voiture valides.

Article et vidéo : https://www.sstic.org/2017/presentation/from_academia_to_real_world_a_practical_guide_to_hitag-2_rke_system_analysis/

De bas en haut : attaques sur la microarchitecture depuis un navigateur web

Clémentine Maurice (Secure Systems de Graz University of Technology, Autriche) a voulu mettre en évidence des attaques « side-channel » qui prennent pour origine des fuites d’information matérielles.

Après quelques rappels sur la DRAM, l’oratrice nous a présenté son attaque DRAMA (DRAM Adressing attacks) sur les row buffers de la DRAM, proche de l’attaque rowhammer. L’objectif est d’obtenir les accès mémoire de la victime qui partage les mêmes ressources que l’attaquant :

  • par canal caché : deux processus qui communiquent entre eux, même s’ils n’y sont pas autorisés
  • par canal auxiliaire : un processus malveillant espionnant des processus bénins, tels que des frappes de clavier

Clémentine nous a présenté son attaque par « template » :

  1. partage d’un row du buffer avec la victime ;
  2. profilage de la mémoire et sauvegarde des ratios de row hit pour chaque adresse

On sait donc avec précision quand la victime fait une frappe clavier. L’oratrice a ainsi pu implémenter son attaque en JavaScript (qui peut donc être incorporée dans une application web), malgré quelques complications à contourner :

  • absence de connaissance des adresses physiques ;
  • absence d’instruction pour flush le cache ;
  • absence de timer haute résolution (à la nanoseconde près) dans les navigateurs web récents, ce qui a obligé l’équipe à en construire un.

Cette présentation a donc permis de mettre en évidence des fuites d’informations possibles dues au matériel, qu’il est possible d’exploiter à l’aide d’un navigateur web malgré les protections mises en place (pas de timer haute résolution natif). Les contremesures sont compliquées à implémenter sans réduire les fonctionnalités ou les performances du moteur JavaScript des navigateurs.

Vidéo : https://www.sstic.org/2017/presentation/2017_invite_1/

Binacle : indexation « full-bin » de fichiers binaires pour la recherche et l’écriture de signatures Yara

Après quelques rappels sur l’indexation full-text, Guillaume Jeanne (ANSSI) a présenté l’objectif de son outil Binacle (contraction de « binaire » et « oracle ») : créer une base de données probabiliste afin d’indexer directement les données binaires de fichiers binaires. Le principal domaine d’application visé est l’analyse de codes malveillants : identifier les fichiers qui partagent du code, identifier des fichiers semblables…

Binacle, outil écrit en Rust, repose sur une table de hachage de n-grammes. Chaque n-gramme est associé à une liste qui contient les identifiants de tous les documents qui contiennent ce n-gramme.

Guillaume a pu mettre en pratique son outil pour accélérer des scans Yara : un premier scan est effectué par Binacle, qui retournera un ensemble de résultats sur lequel sera ensuite effectué le scan Yara. Binacle peut également aider à générer des règles Yara.

Article et vidéo : https://www.sstic.org/2017/presentation/binacle_indexation_full-bin_de_fichiers_binaires/

YaCo : rétro-ingénierie collaborative

YaCo (Yes Another Collaborative Tool) est un plugin pour le logiciel IDA, qui permet aux utilisateurs de travailler de manière collaborative sur le même projet au sein d’IDA. YaCo gère par exemple les changements de noms de fonctions, les modifications des commentaires… Les auteurs (Benoît Amiaux, Frédéric Grelot, Jérémy Bouétard, Martin Tourneboeuf, Valerian Comiti de la DGA-MI) expliquent que le plugin repose sur le système de gestion de version Git. En effet, chaque utilisateur travaille sur une copie locale du projet et chaque changement est versionné puis répercuté sur les copies locales des autres utilisateurs, une fonctionnalité de gestion des conflits étant également disponible.

Vidéo : https://www.sstic.org/2017/presentation/YaCo/

Sibyl : function divination

Camille Mougey (CEA) a présenté l’outil Sibyl, basé sur MIASM2, permettant d’identifier les bibliothèques utilisées dans les codes malveillants. L’idée est ici d’avoir une approche différente de l’analyse statique classique en se basant sur les entrées et sorties des fonctions. Plus précisément, l’outil cherche à identifier une fonction à une adresse donnée.

L’ensemble est ensuite exécuté dans un sandbox avec des paramètres types. Si la sortie est correcte, la fonction a été correctement identifiée. Dans le cas contraire, l’analyse crash ou les sorties divergent.

Vidéo : https://www.sstic.org/2017/presentation/sibyl__function_divination/

Breaking Samsung Galaxy Secure Boot through Download mode

Frédéric Basse a expliqué l’exploitation d’un bug dans les téléphones Galaxy permettant à l’aide d’une carte SD vide de récupérer la mémoire NAND de l’équipement.

Il est à noter que cette attaque est difficilement détectable, étant donné que le bit de garantie de Knox n’est pas modifié.

Article et vidéo : https://www.sstic.org/2017/presentation/attacking_samsung_secure_boot/

Oups, votre élection a été piratée… (Ou pas)

Journaliste pour Le Monde, Martin Untersinger est revenu sur les attaques informatiques observées autour des élections présidentielles autour du glob,e avec un focus particulier sur les États-Unis. Le message passé montre clairement que l’attribution d’une attaque de ce type dépasse grandement les considérations des techniciens pour laisser place aux affaires géopolitiques.

Il a notamment expliqué que la prise de position des agences gouvernementales américaines (FBI/CIA/NSA) sur l’attribution et la divulgation des rapports est une première historique. En effet, la reconnaissance d’une attaque sur un gouvernement peut mettre à mal le processus démocratique et créer plus de torts que de bien selon Martin.

Pour l’orateur, des questionnements majeurs ralentissant le travail d’investigation se posent :
– Doit-on publier les documents en fonction des impacts ?
– Les documents sont-ils authentiques ou altérés ?
– Faut-il ignorer l’information ou participer éventuellement à de la désinformation ?

La conclusion apportée est que la couche politique venant se superposer à une partie technique relativement ardue pour les non-initiés relève maintenant des travaux d’Héraclès. Il est absolument nécessaire, pour le conférencier, de bien contextualiser et de mettre en place des garde-fous lorsque vient le temps de manipuler ce genre d’information.

Article et vidéo : https://www.sstic.org/2017/presentation/oups_votre_election_a_ete_piratee/