Un incident de sécurité ? Faites-vous assister : 01 47 28 38 39

Comme chaque année, le célèbre Symposium sur la Sécurité des Technologies de l’Information et des Communications (SSTIC) se déroule à Rennes ! Intrinsec assiste à ces conférences et vous propose un résumé de chaque journée.

« Innovation en cryptographie symétrique » – Joan Daemen (STMicroelectronics, Belgium)

Le SSTIC commence fort cette année avec Joan Daemen, cryptologue belge co-concepteur de Rijndael, algorithme qui a remporté en octobre 2000 le concours AES.

La conférence débute par des rappels sur la cryptographie symétrique depuis les années 90 et repasse notamment sur l’algorithme de chiffrement DES. Il expose les principales propriétés attendues des algorithmes symétriques et les différentes contraintes : non-linéarité, diffusion maximale, temps de traitement.

La deuxième partie de la conférence s’intéresse à Keccak, un algorithme de hashage réalisé conjointement avec 3 autres chercheurs. Keccak est devenu SHA-3 en octobre 2012 suite à la NIST hash function competition.

Joan conclut en insistant qu’il est souvent nécessaire de repartir à zéro et qu’il ne faut jamais écarter une idée sans essayer, même si beaucoup de tentatives se révèlent non satisfaisantes.

 

« Mise à plat de graphes de flot de contrôle et exécution symbolique » – Eloi Vanderbeken (OPPIDA)

Après la pause, la journée continue avec une « présentation d’escroc » comme le dit l’orateur lui-même. Il nous emmène sur les traces du brouillage de code. Enfin plutôt du débrouillage de code, afin de nous présenter l’outil qu’il développe.

Il commence par quelques notions sur le brouillage de code, haut / bas niveau, puis enchaîne sur les différentes techniques de débrouillage de code avec leurs avantages et leurs inconvénients :

  • Méthode d’approche avec suivi d’exécution
  • Méthode d’approche avec suivi de données
  • Méthode statique, la méthode qu’il a choisie

Les slides manquent de précision, il n’a que 30 minutes et il enchaîne les notions à une grande vitesse : « traces », « basic blocks », « graphes d’exécution », « gestionnaires », tout y passe.

La présentation continue sur une démonstration en direct de l’outil. La démonstration ne semble pas convaincre le public et il finit par avouer à l’audience que son outil ne fonctionne pas vraiment.

La présentation se termine par une série de questions-réponses assez piquantes qui achève avec brio cette présentation.

 

« Polyglottes binaires et implications » – Ange Albertini

Les binaires polyglottes sont des fichiers permettant d’intégrer plusieurs formats de données: un PDF, un zip, de l’HTML, un exécutable… Face aux malwares de plus en plus complexes, il est important de pouvoir correctement les identifier et les analyser. En effet, on peut imaginer un binaire reconnu par l’antivirus comme une page HTML saine, mais étant en réalité aussi un exécutable malveillant.

Contrairement aux idées reçues, l’identification du format d’un fichier est loin d’être triviale, principalement en raison de documentations de formats incomplètes et de logiciels laxistes. La conférence illustre des différences marquantes de rendu entre différents lecteurs PDF, bien loin de la fausse idée du rendu unique de ce format.

Le sujet semble actuellement pris en compte par plusieurs antivirus récents. Par exemple, les fichiers détectés comme ayant plusieurs formats sont considérés comme malveillants.

Le conférencier conclut avec diverses suggestions : renforcer les contrôles au niveau du système d’exploitation (par ex. un fichier téléchargé avec une extension pdf ne doit pas pouvoir être exécuté par la suite), la mise en place d’une isolation pour les fichiers téléchargés, ou encore la définition d’une signature longue par type pour éviter les confusions.

 

« Recompilation dynamique de code binaire hostile » – Sébastien Josse (DGA)

Après la prestation d’Ange, on enchaîne avec de l’analyse de malware. Ici, l’orateur se concentre sur l’obfuscation de code. On commence par une présentation actuelle des outils d’analyse de malware. Peu d’outils existent, la plupart manque d’automatisation, peu d’outils sont multi plateforme… La conclusion est claire, l’outillage actuel est incomplet et inapproprié.

Il nous présente ainsi l’outil qu’il est en train de développer, permettant d’analyser, de désobfusquer des malwares dans n’importe quel environnement.

Basée autour du moteur Qemu et de la chaîne de compilation LLVM, une suite de modules permettant l’extraction, la réduction et la normalisation de code a été développée.

La présentation se termine par une vidéo de démonstration un peu lente, qui a tout de même le mérite de faire fonctionner les différents modules et de montrer l’analyse d’un pseudo malware créé pour l’occasion.

 

Présentations courtes

Juste après manger, nous assistons à 2 présentations courtes de 15 minutes.

La première, faite par Olivier Levillain (ANSSI), nous présente « Parsifal », un parseur robuste réalisé en OCaml.

Après avoir tenté des PoC en python et C++, il s’est rendu compte que le langage OCaml présentait des caractéristiques intéressantes pour réaliser des programmes robustes et stables. Ainsi, il espère utiliser son parser pour analyser plusieurs centaines de Go de données SSL récoltées sur Internet.

La simplicité du code permet de développer rapidement des parsers assez stricts. L’introduction de cette conférence reflète bien sa conclusion : « Pour comprendre un protocole, le mieux c’est de l’implémenter ».

Par la suite, on découvre « NFTables », présenté par Eric Leblond. Après quelques retours sur les défauts majeurs d’IPTables (manque de réactivité lors de l’ajout d’une règle, explosion combinatoire de la gestion des règles lorsque l’on multiplie les IP et les ports…).

En 2008, Patrick McHardy développe et présente NFTables. Parmi les améliorations apportées, on trouve une nouvelle grammaire de configuration, la possibilité d’accès par le biais de bibliothèques de code basées sur NetLink, un système de modification atomique afin de ne pas avoir à recharger toutes les règles, et un système de notifications.

Cette nouvelle implémentation est basée sur BPF, et propose 3 modes de fonctionnement :

  • Mode fichier de configuration
  • Mode ligne de commande
  • Mode bibliothèque de code

On trouve également une meilleure gestion des ensembles permettant ainsi de gérer des ensembles en une seule règle, une meilleure clarté du jeu de règles, et une gestion des évolutions.

 

« Compromission de terminal de cartes à puce » – G Vinet

Les cartes à puce aujourd’hui sont de plus en plus utilisées au sein des systèmes d’information. Parmi les points forts de cette technologie, on trouve la possibilité de stocker des informations de manière sécurisée, de chiffrement ou de signature de données.

Les données présentes sur la carte à puce sont protégées par un code PIN. L’utilisation de ce code sur un poste de travail vérolé peut mener à un vol du code.

Afin de se protéger de ce type de scénario, il existe des terminaux externes USB qui permettent de protéger les données de la carte même en cas de compromission du poste de travail.

Des études ont été menées sur certains de ces terminaux afin d’évaluer leur niveau de sécurité. Pour ce faire, un émulateur de carte à puce a été développé à base d’une plateforme Arduino pour simuler des actions malveillantes.

Ainsi, il a été possible de récupérer des informations des sessions précédentes, potentiellement le code PIN d’une carte…

Cependant, ces terminaux ne sont pas protégés contre les attaques physiques telles que les analyses des rayonnements magnétiques, ou le piégeage de connectique.

 

« Attaques applicatives via périphériques USB modifiés » – Benoît Badrignans (Seclab FR)

15h45, on reste dans les attaques basées autour du hardware. Dans cette présentation, Benoît Badrignans nous présente comment, à l’aide de périphériques USB modifiés, il est possible de prendre le contrôle d’un poste de travail, en contournant une grande partie des mécanismes de protection qui peuvent être mis en place au sein d’un SI.

Dans les premiers slides, il nous montre comment fonctionne un périphérique USB classique, et quels sont les vecteurs d’attaques connus à ce jour. À ce niveau, on trouvera des attaques par le biais du file system, de l’autorun… Dans un second temps, une comparaison entre les équipements classiques et les équipements modifiés nous est présentée. Ainsi, les mêmes vecteurs (USB Stack, File System, périphériques) apportent leur nouveau lot d’exploitations.

On enchaîne sur différents systèmes existants. Du DIY à base d’Arduino à des solutions commerciales, on découvre des périphériques permettant de compromettre un système d’exploitation d’une manière étonnante.

Par la suite, 2 scénarios entièrement fonctionnels nous sont présentés :

  • Exfiltration d’un fichier depuis un poste de travail montant les clés USB en read-only

À l’aide d’un firmware modifié, le périphérique USB se présente au système d’exploitation à la fois comme un stockage, et comme un périphérique de type clavier / souris. Aucune méfiance n’est apportée à ce périphérique de la part du système d’exploitation. À l’aide d’un script maison exécuté sur la machine, et d’une série d’appels en lecture tout à fait légitimes, le fimware arrive à reconstituer le fichier à exfiltrer et ainsi écrire un document sur son système de fichier, alors qu’il a été monté en lecture seule. Assez impressionnant, tant dans le dispositif mis en place que dans l’ingéniosité du « protocole » d’exfiltration.

  • Exécution d’un malware sur un poste de travail après passage de la clé dans un sas de décontamination

Parmi les mesures de protection contre les attaques par clé USB, certaines sociétés font installer des SAS de décontamination afin d’analyser les clés USB avant leur entrée dans le SI, voire de les formater. Il nous présente ainsi un périphérique capable d’identifier le système sur lequel il est branché, et de monter un système de fichier différent selon certaines conditions (par exemple le nombre de fois ou la clé a été connectée). Une fois le système de fichier « malsain » présenté, le périphérique se comporte comme un clavier / souris simulant un utilisateur devant son poste de travail et tente de lancer le malware qui se trouve dans le lecteur.

Certaines mesures de protection existent, parmi lesquelles on trouve des mécanismes de virtualisation comme Qubes OS qui permettent d’isoler dans certaines machines virtuelles les actions des périphériques USB. Ces solutions sont lourdes à mettre en place et nécessitent une formation spécifique pour les utilisateurs.

Des cartes PCI permettant d’isoler la couche USB de l’OS afin de filtrer et d’analyser les comportements des périphériques existent également.

En conclusion, ce genre de périphériques permet de faire rentrer virtuellement l’attaquant devant le poste de travail de sa victime et peut potentiellement devenir très dangereux.

 

Retours sur l’opération « Red October » – Nicolas Brulez (Kaspersky)

Courant octobre 2012, Kasperksy a identifié un réseau de cyber espionnage à grande échelle visant essentiellement des organismes de recherche, diplomatique et gouvernementaux de différents pays.

Les traces les plus anciennes de cette campagne remontent à mai 2007 et se sont poursuivies jusqu’en juillet 2012.

L’architecture sous-jacente est classique et utilise un C&C protégé par plusieurs niveaux de proxy (au moins 2 niveaux identifiés) ; plus de 60 noms de domaine ont été enregistrés pour l’opération. Différents types d’équipements ont été ciblés : des postes de travail, smartphones, équipements d’entreprise (Cisco), disques amovibles.

L’infection a été réalisée via des campagnes de mails de phishing contenant des pièces jointes malveillantes. Contrairement à Stuxnet ou Duqu, aucun 0day n’a été utilisé, les pièces jointes malicieuses utilisant principalement des exploits Word ou Excel anciens et largement connus.

La conférence n’a malheureusement pas apporté de nouveaux faits ou détails marquants.

 

« L’embarqué, entre confiance et défiance » – Aurélien Francillon (Eurecom)

L’embarqué est aujourd’hui partout. Une grande partie des objets que nous manipulons au quotidien en contient. Ces systèmes sont en général petits et peu complexes, mais relativement opaques et sans aucune sécurité.

Aurélien Francillon présente à travers quelques exemples concrets les travaux qu’il mène avec ses étudiants d’Eurecom. Parmi les exemples marquants, on retrouve la réécriture du firmware d’un disque dur pour intégrer une backdoor, le détournement des clés sans contact permettant l’ouverture et le démarrage de véhicules, ainsi que des attaques sur le système de positionnement des avions. La conférence, très différente des autres, est agréablement agrémentée de photos de bidouilles, d’anecdotes et d’idées à creuser.

 

Cette première journée se termine autour d’un cocktail convivial, moment idéal pour rencontrer d’autres passionnés, échanger et revenir sur les conférences de la journée.

Par Maxime le Metayer et Antoine David