SSTIC 2014 – Deuxième journée

Voici le compte rendu de la deuxième journée par Nicolas et Erwan.

« Escalade de privilège dans une carte à puce Java Card » – Guillaume Bouffard & Jean-Louis Lanet

Guillaume Bouffard et Jean-Louis Lanet ont mis en œuvre des attaques sur des cartes à puces dans le but d’accéder aux informations qui y sont stockées, mais aussi afin d’élever leurs privilèges. Après avoir montré que des attaques démontrées il y a quelques années pouvaient toujours être mises en œuvre sur des cartes récentes, ils ont détaillé leur démarche de fuzzing ayant permis de découvrir de nouvelles vulnérabilités (exécution de code natif).

 « Recherche de vulnérabilités dans les piles USB : approches et outils » – Fernand Lone Sang & Jordan Bouyat

Lors de cette conférence, Fernand Lone Sang et Jordan Bouyat nous rappellent que l’USB est déployé sur de nombreux appareils, est géré par des couches bas niveau, et présente donc un intérêt à être fuzzé à la recherche de comportements « intéressants ».  Pour effectuer ce fuzzing, les outils propriétaires difficilement scriptables ou des Arduino nécessitant d’être flashés à chaque fois se sont révélés inadéquats pour cette tâche. Un Facedancer conçu par Travis Goodspeed – cité encore une fois lors de ce SSTIC – a donc été utilisé pour recevoir des paquets USB, les modifier puis les réémettre après modification.

Les paquets originaux provenant d’un Facedancer, d’une machine virtuelle sous qemu et d’un sniffer physique sont collectés dans des fichiers pcap puis via Randansu et sont modifiés avant d’être renvoyés. Un système de monitoring est en place sur les cibles afin de détecter tout comportement anormal.

Deux bugs non exploitables ont été trouvés, un dans le parsing HID, l’autre dans le driver USBSTOR de Windows 8.1.

Une évolution de l’outil est envisagée pour améliorer les performances et gérer l’USB 3 ou encore le fuzzing de périphériques.

 

« Bootkit revisited » – Samuel Chevet

Samuel Chevet a passé en revue l’état de l’art et l’historique des bootkits pour constater que ceux-ci sont souvent constitués de hooks et d’adresses parfois codées en dur. Ils ne constituent donc pas une solution stable.

Pour rappel, les rootkits cherchent à charger un pilote malveillant dans l’espace noyau pour prendre le contrôle du système et ne constituent plus un vecteur intéressant depuis que Windows force la signature des pilotes (à moins d’ « emprunter » un certificat légitime). Les bootkits viennent donc en remplaçant de ceux-ci et cherchent à compromettre le système dès son démarrage.

Le projet, Reboot, permet de maintenir un accès au système tout au long de la séquence de démarrage (BIOS, MBR, VBR, BootMgr, Winload, etc.) et ce malgré les changements de mode (natif, protégé, etc.). L’explication technique déroulée est extrêmement précise, intéressante et complexe. Celle-ci se conclut par une démonstration réussie de l’injection d’un bootkit permettant l’authentification d’un utilisateur sous Windows 8.1 sans connaitre son mot de passe.

« Tests d’intégrité d’hyperviseurs de machines virtuelles à distance et assisté par le matériel » – Benoît Morgan & Eric Alata & Vincent Nicomette

L’objectif était de disposer d’un outil permettant de vérifier l’intégrité d’un hyperviseur. Pour atteindre ce but, ils ont utilisé un périphérique PCI dédié et une carte FPGA. Le projet est toujours en cours de développement et n’est pas encore abouti.

« La sécurité des systèmes mainframes » – Stéphane Diacquenod

Stéphane Diacquenod a montré ce que les mainframes (z/OS plus particulièrement) proposent en termes de sécurité et ce qu’il est possible de faire à partir d’une configuration par défaut. Outre le fait que l’administration est effectuée en Telnet, les mots de passe sont limités à 8 caractères, sans caractères spéciaux, sont stockés sans sel et chiffrés avec DES. De plus, la table RACF qui contient les informations d’authentification et d’autorisation peut être accessible par de nombreux utilisateurs.

Présentation courte : « Reconnaissance réseau à grande échelle : port scan is not dead » – Adrien Guinet & Fred Raynal

L’objectif était de récupérer des informations (bannière, certificats SSL/TLS, etc.) à grande échelle (en scannant toutes les adresses IPv4 d’un pays par exemple). Les outils actuels ne sont pas adaptés, car ils sont synchrones et donc lents (nmap) ou peu scriptables (massscan, zmap). Les orateurs ont donc développé un nouvel outil, distribué, léger, performant auquel il est possible d’ajouter des sondes dynamiquement. Cela leur a entre autres permis de scanner 30 ports sur l’ensemble des 30 millions d’adresses IPv4 d’Espagne avec 100 sondes en 25 heures.

« Cryptocoding » – Jean-Philippe Aumasson

Jean-Philippe Aumasson a passé en revue quelques bibliothèques de cryptographie (surtout OpenSSL) pour montrer la faible qualité du code qui mène parfois à des vulnérabilités critiques comme Heartbleed et gotofail. Il a ensuite montré qu’il était difficile de trouver de bons développeurs dans ce domaine du fait de la complexité de conception et d’implémentation des mécanismes cryptographiques. Il a terminé en présentant le récent projet Cryptography Coding Standard, un Wiki recensant des conseils pour écrire du code cryptographique sécurisé.

 

« Buy it, use it, break it … fix it : Caml Crush, un proxy PKCS#11 filtrant » – Ryad Benadjila & Thomas Calderon & Marion Daubignard

Ryad Benadjila, Thomas Calderon et Marion Daubignard ont présenté un outil permettant de se mettre en coupure de requêtes PKCS#11 pour renforcer la sécurité d’un token (carte à puce par exemple) réputé faible. L’objectif est de bloquer des attaques (positionnement d’attributs conflictuels par exemple) ou d’ajouter de nouvelles fonctionnalités au standard (distinction d’utilisateurs, imposition d’une politique de code PIN robuste,etc.).

 

« Martine monte un CERT » – Nicolas Bareil

Nicolas Bareil a présenté un retour d’expérience sur la création du CERT d’Airbus Group. CERT qu’il qualifie d’industriel, type n’existant pas auparavant selon lui et dont la création a été réalisée à partir de zéro. Ce CERT ne gère que les APT (Advanced Persistent Threats) détectées dans le groupe et s’occupe de la mise en place de la réaction sur incident adaptée. Les cas évoqués montrent certains comportements et éléments intéressants :

  • Les attaques semblent être menées par des groupes hiérarchisés (niveau 1, 2, 3) :

Une personne de niveau « élevé » met en place le premier accès

Un groupe de plus bas niveau revient quelques jours après pour dérouler une sorte de checklist de collecte (schéma retrouvé dans différents APT). Le groupe est qualifié de moins évolué, car des essais de différents paramètres sur une commande sont parfois retrouvés dans les journaux, avant une interruption des tentatives, pour que celles-ci reprennent au final avec directement la bonne commande. Comme ci un groupe de niveau supérieur était venu assister le déroulement des opérations.

  • Les attaques menées ne sont pas discrètes (utilisation de paramètres d’exfiltration souvent journalisés : GET à la place de POST par exemple)
  • Une étape de listage du contenu des répertoires est souvent réalisée. L’exfiltration des données précises n’est réalisée qu’ultérieurement (plusieurs semaines après parfois)
  • Les attaquants font des archives des informations à extraire : une petite et plusieurs grosses. Seule la petite est extraite dans un premier temps, probablement pour être présentée comme échantillon de données sur le marché … (plusieurs semaines après parfois)
  • Les attaques ne sont que très rarement détectées par les sondes IDS ou par les équipes internes, même si des URL de serveurs C&C finissent parfois dans le top 10 des URLS les plus visitées dans les journaux des proxys.

Enfin, Nicolas Bareil recommande de remplacer le forensics par une réaction sur incident adaptée.

Rumps

La journée s’est terminée par 27 rumps traitant de sujets tels que :

  • installation de Miasm
  • équipements ARM peu coûteux (NAS Netgear) dont des images systèmes libres sont proposées
  • Suricata 2.0 et gestion des journaux avec Kibana
  • évolutions du parseur Parsifal présenté l’année dernière
  • framework personnel sstic.py utilisé pour résoudre des challenges
  • exfiltration de données et de chatons par ultrasons
  • jeu où le but est d’obtenir le plus grand nombre de lignes de bytecode
  • choix d’un langage et comportements surprenants
  • la sécurité ADSL en Suisse par news0ft
  • événement privé pas si privé sous Outlook
  • dump de NAND sans dessoudage
  • retour d’expérience sur un DDoS
  • fichier polyglotte JPG/MP4
  • contournement d’IDS via TCP Fast Open
  • projet REbus
  • hack pour déclarer correctement ses impôts en ligne
  • IRMA (service d’analyse antivirale similaire à VirusTotal)
  • 0day Android < 4.4.3
  • actes du SSTIC en ebook
  • social-engineering de l’assemblée
  • scan à grande échelle sur des routeurs vulnérables
  • No Such Con
  • chiffrement maison Perseus