La DEF CON est l’une des plus anciennes conférences de sécurité. Créée en 1993, elle en était donc cette année à sa 25ème édition et se déroulait à Las Vegas, dans le centre de conférence du Caesar’s Palace. Plus de 25 000 personnes étaient présentes cette année.
Immense. Difficile de qualifier autrement cet événement. Voici une liste, non exhaustive, des différents événements :
- 5 tracks de conférences en parallèle
- Les “skytalks”, conférences non filmées et pour lesquelles l’usage d’appareils électroniques est interdit
- Les villages
- ICS : systèmes industriels
- SE : Ingénierie sociale
- IoT : objets connectés
- Hardware hacking
- Car hacking
- Tamper evident
- Wall of Sheep / Packet capture
- Une nouveauté cette année : e-Voting, village dédié aux machines à voter, très utilisées aux États-Unis
- Les concours
- Capture The Flag privé
- Capture The Flag publique
- Crash & Compile
- Scavenger Hunt
- et bien d’autres …
Wavestone était présent à cet évènement où Arnaud SOULLIE de la practice Cybersecurity & Digital Trust a eu la possibilité de présenter ses travaux autour de la sécurité des automates industriels dans le village ICS.
Jeudi 27 juillet
Max Bazaliy - Jailbreaking Apple Watch
Durant cette présentation, Max Bazaliy, chercheur en sécurité chez Lookup, a présenté la manière dont il a créé un exploit permettant de jailbreaker une Apple Watch. La montre connectée d’Apple possède un système d’exploitation proche de celui de l’iPhone
Dans un premier temps, Max Bazaliy a présenté les différents vecteurs d’attaque d’une Apple Watch :
En plus d’un nombre de vecteurs d’attaque relativement limité, le système d’exploitation intègre plusieurs mécanismes de sécurité permettant de complexifier la mise en place d’attaques ou encore de limiter la probabilité des succès des exploits
Afin de mettre en œuvre le jailbreak, le chercheur a effectué les étapes suivantes :
En effet, la récupération de l’adresse de base du noyau est nécessaire sur Watch OS en raison de l’activation de la protection Kernel ASLR ; pour cela le chercheur a utilisé deux vulnérabilités liées à des CVE existantes :
Max Bazaliy a ensuite utilisé une vulnérabilité de type Use After Free (UAF) affectant la gestion de l’objet OSString dont la méthode retain() peut être appelée après que l’objet ait été « dés-alloué » sous certaines conditions et pouvant ainsi provoquer une exécution de code arbitraire dans le noyau Watch OS :
Cependant, l’exploitation de la vulnérabilité d’exécution de code nécessitant différentes informations (notamment l’adresse de la vtable utilisée par la fonction) non disponible a priori (avant jailbreak), Max Bazaliy a ainsi été contraint d’utiliser les journaux de crash de la montre afin de récupérer la vtable souhaitée 4 octets par 4 octets (taille d’une adresse sur un processeur 32 bits) :
L’étape de récupération de la vtable a ainsi pris plus de deux semaines au chercheur et a ensuite permis de récupérer l’intégralité du noyau Watch via l’exploitation plus efficace de cette même vulnérabilité.
Suite à la récupération intégrale du noyau, Max Bazaliy a pu récupérer différentes informations concernant les emplacements des symboles et structures noyaux (tableau des appels systèmes, proc structure…) lui permettant ensuite d’obtenir les droits root sur la montre, de désactiver les différentes protections mises en place (signature de code…) et d’installer un client SSH (bluetooth) afin de pouvoir accéder à l’équipement à distance :
Le succès de cette opération de jailbreak a ainsi permis au chercheur d’explorer l’intégralité du système de fichiers et ainsi de constater la présence de nombreuses informations sensibles telles que :
- Les messages de l’utilisateur
- L’historique de ces appels
- Les contacts
- Les mails
En conclusion l’auteur a rappelé que des informations intéressantes d’un point de vue analyse forensics sont stockées sur une Apple Watch dont entre autres les SMS, l’historique des appels, le carnet d’adresse et les mails.
L’auteur n’a pas précisé s’il allait publier son jailbreak : les informations détaillées dans la présentation devraient néanmoins être réutilisables par des tiers pour produire un outil dans les prochaines semaines.
Patrick Wardle - Offensive Malware Analysis: Dissecting OSX/FruitFly via a Custom C&C Server
Au cours de cette intervention d’une grande qualité, Patrick Wardle expert sécurité chez Synack a présenté la façon dont il a pu analyser le malware iOS nommé « Fruitfly » via la mise en place d’un serveur de C&C dédié.
Pour cela, Patrick Wardle a tout d’abord mis en place différentes sondes visant à étudier le fonctionnement du malware. Pour cela, des méthodes classiques d’analyse dynamique de malware ont notamment été utilisées :
- La supervision réseau du malware, afin d’identifier le domaine avec lequel il essaie de communiquer ainsi que l’ensemble des éléments pouvant être utile pour la suite de l’analyse (protocole réseau, applicatif…) :
- L’étude des fichiers utilisés par le malware, afin d’étudier les moyens d’infection et fichiers présentant un intérêt :
- L’étude des processus lancés par le malware, afin d’étudier les modes de fonctionnement et éventuellement de persistance. Aucun outil open-source n’existant afin de réaliser cette tache sur macOS, le chercheur a donc développé le sien nommé « procMonitor » :
- L’analyse des mouvements souris et des entrées clavier :
Dans un second temps, Patrick Wardle a donc mis en place un serveur de C&C afin de pouvoir communiquer avec l’instance du malware en fonctionnement sur sa machine de tests. Après une première phase d’analyse à tâtons, le chercheur a pu comprendre petit à petit le fonctionnement du malware et commencer à lui transmettre des commandes permettant notamment de :
- Lister les fichiers d’un répertoire (commande « ls –al ») sur la machine infectée ;
- Prendre une capture d’écran de la machine infectée ;
- Récupérer la liste des processus en cours sur la machine infectée ;
- etc.
Après avoir compris comment FruitFly fonctionnait, Patrick Wardle a ensuite tenté de voir s’il était possible d’utiliser le serveur de C&C sur Internet afin d’observer si certaines instances de malwares allaient s’y connecter. Ainsi, à la grande surprise du chercheur, de nombreux domaines de backup du malware étaient disponibles à l’achat :
Patrick Wardle a ainsi sauté sur l’occasion afin d’enregistrer l’un des noms de domaine et a pu constater que de nombreuses machines infectées ont rapidement établi une connexion avec le serveur C&C :
Cette présentation a ainsi pu mettre en exergue la capacité et les différentes possibilités d’analyse d’un malware, n’utilisant quasiment aucune notion de rétro-ingénierie logicielle et pouvant ainsi s’avérer utile en parallèle de méthodes plus classiques.
Matt “openfly” Joyce - Amateur Digital Archeology
Le point de départ des travaux présentés ici est relatif à l’achat aux enchères par l’auteur d’un poste de travail qui a supposément été utilisé lors de missions spatiales dans les années 80 et 90. L’auteur a notamment voulu savoir quelles données pouvaient bien être récupérées sur un tel équipement, et au passage vérifier s’il a véritablement été utilisé dans l’espace.
Après avoir pu récupérer divers programmes de l’époque et les exécuter au sein d’émulateurs ; démonté, analysé et fait parlé chaque composant (disque dur, condensateur, mémoire flash etc.) ; l’apprenti archéologue a croisé d’autres sources d’informations dont des vidéos de missions d’époque, des interviews avec d’anciens techniciens chargés du développement et de l’exploitation de ces postes de travail ; pour arriver in-fine à la conclusion que l’ordinateur acheté n’a jamais été dans l’espace…mais a servi d’environnement de test, identique à ceux ayant réellement voyagé.
Vendredi 29 juillet
Min(Spark) Zheng & Xiangyu Liu - macOS/iOS Kernel Debugging and Heap Feng Shui
Durant cette présentation Min(Spark) Zheng chercheur en sécurité mobile chez Alibaba a présenté les méthodes de debug noyau et de Heap Feng Shui sur macOS et iOS.
La présentation a ainsi commencé par une introduction du système d’exploitation XNU développé par Apple. Alors que la version développée pour la plateforme macOS est open-source, celle développée pour iOS n’est pas accessible officiellement rendant ainsi les analyses sur ce système relativement fastidieux :
Le debug noyau sur macOS s’effectue de manière relativement simple et peut se faire dans différentes configurations :
- Utiliser deux machines physiques fonctionnant sur macOS ;
- Utiliser une machine physique hébergeant une VM macOS.
Dans le cas de l’utilisation de deux machines physiques, un câble ThunderBolt ou FireWire est alors requis afin de connecter les deux équipements.
Par la suite, une installation du Kernel Debug Kit (KDK) sur les deux postes est nécessaire afin de démarrer le processus de debug :
Sur iOS, sans implémentation publique du KDK, la tâche s’avère plus complexe ; il est alors nécessaire d’utiliser certaines vulnérabilités affectant le noyau iOS afin de lire ou d’écrire de façon arbitraire dans la mémoire du noyau et ainsi effectuer la tâche de debug :
Suite à cette première partie dédiée aux méthodes de debug du noyau macOS et iOS, Min(Spark) Zheng a ensuite présenté l’utilisation de ces méthodes afin d’investiguer sur une vulnérabilité de type heap overflow sur une des fonctions de gestion des messages mach implémentée par le noyau XNU. L’exploitation de cette vulnérabilité a ensuite été le prétexte à l’introduction de deux méthodes de Heap Feng Shui dont l’une classique et une plus innovante, et présentant des avantages de stabilité et de simplicité de mise en œuvre.
Cette présentation très technique aura ainsi permis de découvrir une méthodologie de debug noyau sur les plateformes Apple et une méthode innovante d’exploitation de vulnérabilité dans le tas bien que spécifique à la version du système d’exploitation iOS ciblée.
Damien “virtualabs” Cauquil - Weaponizing the BBC Micro:Bit
Le BBC Micro:Bit est, à l’instar de l’objectif initial du projet Raspberry, un micro-ordinateur de 15$ sponsorisé par la BBC au Royaume-Uni pour encourager le développement logiciel auprès des plus jeunes et/ou novices. Cette plateforme se programme en Python et est équipée d’un chipset Nordic Semiconductor nRF51822 pour les communications sans-fil, supportant ainsi de-facto les protocoles ShockBurst Legacy et Enhanced ainsi que le Bluetooth Low Energy. La famille de protocole ShockBurst est notamment utilisée par différents constructeurs de claviers et souris sans-fil (Logitech, Microsoft etc.). L’auteur a ainsi tenu à montrer qu’il est possible d’utiliser cette plateforme pour :
- Mettre en œuvre les attaques « MouseJack » sur les claviers sans-fil révélées présentées l’année dernière par les chercheurs de Bastille Networks visant à intercepter les saisies clavier
- Intercepter passivement des communications Bluetooth
- Mettre en œuvre de nouvelles attaques sur des protocoles utilisant une modulation GFSK : l’auteur a ainsi pu attaquer le drone XN297 en prenant le contrôle de celui-ci avec une radiocommande illégitime
Andy Robbins & Will Schroeder - An ACE Up the Sleeve
Pour la troisième année consécutive, Andy et Will présentent leurs travaux sur la sécurité Active Directory à la DEFCON.
Après le framework de post-exploitation Empire, sa version Mac OSX et BloodHound, ils s’intéressent cette fois-ci à la possibilité d’utiliser les DACL (listes de contrôle d’accès discrétionnaires) en tant que portes dérobées.
Pour cela, une fois des privilèges élevés (type administrateur du domaine) obtenus, il est possible de modifier finement certaines listes de contrôle d’accès pour allouer des privilèges très importants à un utilisateur. Par exemple, le droit de changer le mot de passe d’un utilisateur administrateur d’un contrôleur de domaine ; ou plus finement, le droit de modifier la GPO par défaut du domaine. Il est ensuite même possible de modifier certaines DACL de manière à dissimuler cet utilisateur des yeux des administrateurs, par la démarche suivante :
- Modifier le propriétaire de l’utilisateur par lui-même ;
- Accorder explicitement le contrôle de l’utilisateur à lui-même
- Interdire à tout le monde le droit de lire le contenu de l’OU contenant l’utilisateur
La démonstration réalisée, très impressionnante, montre en effet que l’utilisateur existe mais que même un administrateur du domaine n’est pas en mesure de voir son existence.
Nous restons cependant confiants dans les méthodes permettant de détecter ce type de porte dérobée, notamment par l’analyse à froid de la base NTDS.DIT.
“FuzzyNop” Josh Schwartz & “ceyx” John Cramb - MEATPISTOL : A Modular Malware Implant Framework
Lors de cette intervention, deux pentesteurs ont expliqué leur démarche visant à créer un framework modulaire pour la création d’implants logiciels utilisés lors de campagne de red teaming ou de test d’intrusion. Bien qu’alléchant, cet outil n’est actuellement pas publié, ce qui diminue considérablement l’intérêt de la conférence.
Par ailleurs, il semble que la non-publication de l’outil soit liée à un désaccord entre les auteurs et leur employeur, Salesforce, qui les a par ailleurs licenciés entre-temps.
Artem Kondratenko - Cisco Catalyst Exploitation
Le chercheur a détaillé dans cette présentation une vulnérabilité affectant les équipements Cisco mis en cluster via le protocole Cluster Management Protocol (CMP) pour laquelle aucun code d’exploitation n’avait été publié.
En s’aidant d’informations diffusées par Wikileaks dans le leak « Vault7 » de la CIA, l’auteur a pu retracer la vulnérabilité de type Buffer Overflow affectant l’implémentation du protocole CMP en suivant les étapes suivantes :
- Analyse du trafic de niveau 2 échangé entre deux équipements mis en cluster
- Rétro-ingénierie du firmware : un firmware IOS est composé d’un unique fichier binaire
- Mise en place d’un environnement de debug…et debug de l’outil de debug « IODIDE » spécifique à IOS
En conclusion l’auteur a effectué une démonstration de l’outil d’exploitation qu’il a développé et qui permet d’obtenir un interpréteur de commande avec les privilèges maximum Cisco (level 15) sans authentification.
Samedi 29 juillet
Cheng Lei, Li Donghong & Ma Liang - The spear to break the security wall of S7CommPlus
Lors de cette conférence, les chercheurs se sont intéressés à la dernière version du protocole propriétaire S7CommPlus de Siemens. C’est ce protocole qui est utilisé pour la programmation et la réalisation d’actions administratives sur les automates de la gamme S7-1200 et S7-1500.
Après analyse des échanges réseau entre l’automate et le logiciel TIA Portal, les chercheurs ont réalisé une rétro-ingénierie de celui-ci pour identifier les bibliothèques en charge des routines de chiffrement. C’est la bibliothèque « OMSp_core_managed.dll. » qui est en charge du chiffrement. Deux types de chiffrement sont utilisés, le premier étant un simple XOR, le second étant plus complexe (mais non précisé par les auteurs). En revanche, aucun secret n’est partagé entre le logiciel et les automates. Ainsi, les chercheurs ont pu identifier la clé de chiffrement employé dans le code de la bibliothèque, celui-ci n’étant par ailleurs pas obfusqué.
Yves Le Provost & Romain Coltel - WSUSpendu : How to Hang WSUS clients
Lors de cette intervention, les deux auteurs ont présenté leurs efforts de rétro-ingénierie du fonctionnement des serveurs WSUS de Microsoft, en charge de la distribution des mises à jour. Ils ont réussi à identifier les étapes nécessaires à l’insertion d’une « fausse » mise à jour, si l’on dispose des droits d’administration du service. Ces étapes sont désormais automatisées dans l’outil WSUSpendu. Après un rappel des architectures cibles proposées par Microsoft, les auteurs ont détaillé deux cas où l’attaque du serveur WSUS avait pu permettre de compromettre des ressources autrement inaccessibles.
Joe FitzPatrick & Michael Leibowitz - Secure Tokin’ and Doobiekeys: How to Roll Your Own Counterfeit Hardware Security Devices
Les chercheurs, experts dans le domaine du hacking matériel, ont tenu à faire passer un message simple : « ne faites pas confiance au hardware », en détaillant comment ils ont pu introduire une porte dérobée ou contrefaire différents tokens hardwares populaires communément utilisés comme second facteur d’authentification.
Un token RSA SecurID a été modifié afin d’intégrer un chipset faisant fuiter par Bluetooth la valeur courante du code à usage unique (OTP) :
En remarquant que des YubiKey sont parfois offertes par des tiers comme goodies lors de conférence, les chercheurs ont également tenu à prouver qu’il était possible de construire une vrai-fausse YubiKey basée sur une plateforme Arduino :
Zenofex, 0x00string, CJ_000, & Maximus64 - All Your Things Are Belong To Us
Ces différents chercheurs faisant de la société Exploitee.rs ont présenté comment ils ont obtenu les privilèges maximum sur une quarantaine d’équipements appartenant à l’écosystème IoT. Les vulnérabilités découvertes peuvent se regrouper en 2 types :
- Présence d’une faille applicative type « injection de commande en tant que l’utilisateur root » sur l’interface d’administration Web, sans accès préalable au firmware, ou après extraction du firmware (téléchargé sur Internet ou récupéré via un port eMMC du circuit imprimé)
- Présence d’un port de debug UART sur le circuit imprimé offrant un interpréteur de commande en tant que l’utilisateur root
Cette étude quantitative a permis de confirmer le fait que différents produits, à priori concurrents, peuvent utiliser une même base logicielle vendue en marque blanche par un éditeur : dans de multiples cas, une vulnérabilité découverte pour un équipement d’un constructeur a pu être directement rejouée sur l’équipement d’un autre constructeur.
Pour terminer ce talk, les auteurs ont diffusé une séquence vidéo compilant l’exploitation de toutes les vulnérabilités évoquées ; et show à l’américaine oblige, ont conviés le chanteur de Nerdcore « Dualcore » à monter sur scène pour interpréter son fameux morceau « Hack all the things ».
Sean Dillon “zerosum0x0” & Zach Harding “Aleph-Naught” - Koadic C3 : COM Command & Control
À l’image du framework « MEATPISTOL » évoqué précédemment, cette présentation portait sur un nouvel outil de post-exploitation destiné à Windows. Après une brève présentation des limitation de agents Metasploit (détecté par les antivirus) et Empire (nécessite Powershell, mécanismes de journalisation performants), les auteurs ont présenté leur solution, se basant sur les objets COM.
Cette solution à l’avantage de fonctionner sur tous les systèmes Windows depuis Windows NT, et de ne nécessiter aucun module additionnel ; en revanche, de nombreuses limitations sont également présentes (gestion des erreurs, absence de fonctionnalités de base, …).
Marc Newlin, Logan Lamb, & Chris Grayson - CableTap: Wirelessly Tapping Your Home Network
« Reference Dev Kit (RDK) » est une souche logicielle open-source développée par une filiale du cablopérateur américain Comcast offrant des fonctionnalités de base à destination des fabricants de set-top box.
Les chercheurs ont analysé ce framework et ont découvert différentes informations intéressantes dont :
- L’algorithme de génération de clé partagée (PSK) utilisée par certaines set-top box pour les réseaux Wi-Fi préconfigurés, rarement modifiée par les utilisateurs finaux, permettant ainsi de calculer une clé basée uniquement sur la connaissance de l’adresse MAC de la box
- Des failles applicatives sur le composant applicatif FastCGI exposé sur de multiples services permettant l’exécution de commande sans authentification, couplé au fait que bon nombre de ces services sont exposés sur Internet
- Des vulnérabilités dans l’appairage de télécommande, permettant à un attaquant de réinitialiser le code d’appairage et prendre ainsi le contrôle de la set-top-box et par extension de la télévision
En conclusion les auteurs ont tenu à signaler que Comcast a corrigé un nombre important de vulnérabilités relatives à l’exécution de commande sans authentification.
Jason Haddix - Introducing HUNT: Data Driven Web Hacking & Manual Testing
Les travaux présentés par les auteurs, travaillant pour la plateforme de bugbounty bugcrowd, répondent à 3 problèmes inhérents aux tests d’intrusion Web :
- De plus en plus d’applications Web doivent être testées, beaucoup sont complexes
- L’expérience des auditeurs chevronnées n’est pas facilement transmissibles aux débutants : un testeur averti arrive à « sentir » quel paramètre ou fonctionnalité va être vulnérable
- Les outils populaires de tests d’intrusion n’intègrent pas de guide méthodologique
Afin de tenter de répondre à ces challenges, les chercheurs ont développé une extension pour l’outil PortSwigger BurpSuite nommée « HUNT » qui concentre les fonctionnalités suivantes :
- Affichage de messages d’avertissement lorsqu’un paramètre « sensible » est rencontré lors de la navigation sur une application Web : en se basant sur les précédents rapports bugcrowd, les auteurs ont effectué des statistiques sur les noms des paramètres communément vulnérables (par ex. « page », « file », « id » etc.)
- Affichage d’un recueil exhaustif des classes de vulnérabilités existantes et des ressources de références (sites, articles, blogs) lié à chaque vulnérabilité (mise en évidence, exploitation etc.)
L’extension est disponible sur le dépôt Github des auteurs.
Dimanche 30 juillet
Avi Bashan & Slava Makkaveev - Unboxing Android: Everything You Wanted To Know About Android Packers
Ce talk a eu pour objectif de détailler le fonctionnement de différents packers Android, principalement retrouvés sur des applications chinoises :
Les scripts d’unpacking pour ces packers ont été publiés par l’auteur.
Gus Fritschie & Evan Teitelman - Backdooring the Lottery and Other Security Tales in Gaming over the Past 25 Years
Quoi de plus pertinent comme sujet que la fraude au Casino pour une conférence à Las Vegas ?
Les auteurs ont tout d’abord évoqué un rapide historique des attaques et fraudes ayant eu lieu depuis 2011 en Amérique du Nord :
Puis, une affaire en particulier a été détaillée et concerne Eddie Tipton, qui était un développeur de logiciel de loterie au sein duquel où il a simplement introduit une porte dérobée dans le générateur de nombre aléatoire (RNG), porte dérobée qui permettait de prédire les nombres gagnants pour deux dates précises (23 novembre et 29 décembre) :
Le fait étrange dans cette affaire est que le code du générateur de nombre aléatoire a, conformément aux réglementations, été audité en boite blanche par le régulateur…qui n’a détecté aucune vulnérabilité lors de l’audit du code source, alors que celui-ci faisait intervenir des fonctions basées sur le temps, ce qui aurait pu mettre la puce à l’oreille des auditeurs.
Puis les chercheurs ont évoqué une autre fraude, cette fois-ci plus sophistiquée :
- En 2009, la Russie a rendue illégal la plupart des jeux de Casinos
- Les établissements ont ainsi cherché à se débarrasser de leurs machines à sous
- Un attaquant en ayant acquis une a trouvé une faille de le générateur de nombre aléatoire, pour la fonction de « spin » des rotors et à conçu une application qui lui prédisait 0.25 seconde à l’avance le moment où il fallait appuyer sur le bouton « spin » de la machine pour gagner
En conclusion les auteurs ont rappelé que conformité ne rime pas toujours avec sécurité, et que l’industrie des jeux de Casinos n’est actuellement pas mature en matière de développement sécurisé.
Ilja van Sprundel - Are all BSDs are created equally? A survey of BSD kernel vulnerabilities
En 2005, le mainteneur d’une distribution BSD déplore dans une interview la qualité du code du noyau Linux en matière de sécurité :
Le chercheur est ainsi parti de cette citation pour tenter de savoir si le code noyau des distributions BSD était véritablement plus sécurisé que celui de Linux.
L’auteur a ainsi effectué d’avril à juin 2017 une revue de code de certaines parties clés du noyau à savoir :
- La gestion des appels système
- La pile TCP/IP
- Les drivers
- Du code historique de compatibilité
- La gestion des traps
- Le système de fichier
Pour chaque section, le chercheur préjugeait qu’il n’allait pas trouver de vulnérabilité puisque par définition ces sections sont critiques, massivement utilisées, régulièrement revues et par conséquent plus sécurisées.
Les résultats sont sans appel, plus d’une centaine de vulnérabilités importantes ont été découvertes dans les distributions FreeBSD, OpenBSD et NetBSD, invalidant quelque peu les hypothèses et à priori qualitatifs que les experts peuvent parfois avoir.
Mahdi BRAIK
Thomas DEBIZE
Arnaud SOULLIE