SecurityInsider
Le blog des experts sécurité Wavestone

Bring Summer Back ! Compte-rendu des conférences de cet été - DEF CON 2018



 



Wavestone était présent à la 26ème édition de la conférence de sécurité DEF CON du 9 au 12 août à Las Vegas. Plus de 25 000 personnes étaient présentes. Toujours plus grande, cette année, en plus des 4 tracks de conférences en parallèle, il y avait plus d’une quinzaine de villages thématiques.
Arnaud SOULLIE et Alexandrine TORRENTS de la practice Cybersecurity & Digital Trust ont eu la possibilité de présenter un workshop de 4 heures sur la sécurité des systèmes industriels (tinyurl.com/ics101-dc26).
Nous vous proposons ci-dessous un compte-rendu d’une sélection de talks, les supports des présentations étant disponibles sur le site officiel (https://media.defcon.org/DEF%20CON%2026), les vidéos étant publiées sur la chaine Youtube (https://www.youtube.com/watch?v=gmgV4r25XxA&list=PL9fPq3eQfaaD0cf5c7wkzMoj2kifzGO4U).
Les 10 et 11 août ont essentiellement été consacré à l’ICS Village avec le CTF Hack the Plan[e]t et les conférences dédiées aux systèmes industriels.


Le CTF était organisé par les différents sponsors de l’ICS Village. Chaque stand proposait des challenges différents, intégrés dans un seul et même CTF : Grimm avec sa maison connectée, Security matters, Dragos et son Killer Robots, etc. La team Dragos #FUZZYSNUGGLYDUCK a remporté le CTF avec 6600 points !

Conférences sur les systèmes industriels

Through the eyes of the attacker : designing embedded systems exploits for ICS – Marina KROTOFIL, Jos WETZELS

Marina et Jos ont présenté via l’exemple de TRITON comment construire une attaque embarquée sur des systèmes industriels. La nouveauté en 2017 avec l’attaque TRITON est que la cible est le SIS, le système de sûreté, dernière barrière de défense des systèmes industriels. Ces systèmes sont souvent connectés au système industriel principal. Avec TRITON, l’attaquant a obtenu un accès distant sur la console opérateur de Triconex. Ils ont injecté une backdoor passive et utilisé un implant de Triconex pour attaquer le SIS.
Pour développer une attaque complexe, l’attaquant doit développer un scénario détaillé de dégâts. Il faut connaître les relations entre les équipements afin de savoir lequel fera le plus de dégâts et à quel moment.
L’approche d’une attaque industrielle est donc divisée en 3 étapes :
  • Manipuler le process
  • Obtenir un feedback : souvent la partie la plus difficile
  • Empêcher la réponse du système de sûreté



Il faut donc manipuler les boucles de contrôle afin d’obtenir un état non sécurisé. Pour cela, il va falloir des implants permettant d’exécuter des payloads OT et de superviser le déroulé de l’attaque. Les étapes de l’exploitation sont les suivantes :
  • Obtenir le matériel nécessaire : la documentation, le logiciel, l’équipement industriel, le firmware
  • Analyse de l’équipement et de sa carte PCB
  • Reverse engineering du logiciel, du protocole et du firmware
  • Découverte de vulnérabilité
  • Développement de l’exploit

Avec l’attaque TRITON, la vulnérabilité utilisée est le fait de pouvoir télécharger un programme de sûreté sans authentification. Les attaquants ont ajouté leur code à la suite du code existant afin que le programme légitime continue à s’exécuter normalement.



La suite est de développer un implant pour l’équipement. Pour cela, il faut analyser le firmware afin de trouver des fonctions intéressantes. L’implant TRITON est un payload en 4 étapes :
  • Définition des arguments
  • Installation de l’implant
  • Implantation de la backdoor
  • Exécution du payload OT


La dernière étape n’a pas fonctionné dans le cas de TRITON mais il aurait été possible de faire du spoofing d’entrée / sortie ou même de supprimer des alarmes.
La partie la plus difficile de l’attaque est donc de développer le payload OT. Cela requiert une analyse approfondie du firmware ainsi qu’une connaissance précise du process SIS.

Analyzing VPNFilter's Modbus module – Patrick DESANTIS, Carlos PACHO

VPNFilter est une campagne de malware lancée depuis 2016 et ayant infecté plus de 500 000 postes. Ce malware est multi-plateforme et permet d’attaquer plus de 75 modèles d’équipements réseau différents.
Patrick et Carlos ont créé un réseau de honeypots avec de vrais équipements afin d’analyser le malware. 3 étapes composent ce malware :
  • Le loader persistant
  • La plateforme primaire
  • Les modules et plugins
Ce talk s’intéresse à la dernière partie et en particulier aux modules HTTP et Modbus. Dans le sniffer de VPNFilter, une boucle parse les paquets afin de trouver des paquets HTTP ou Modbus. Il vérifie ensuite si le port 502 (port utilisé par Modbus) est utilisé. Si oui, il vérifie ensuite si l’adresse IP correspond à une adresse IP prédéfinie. Si oui, il crée un fichier de logs contenant les adresses IP source et destination, ainsi que les ports. Enfin, s’il ne s’agit pas d’un paquet Modbus, il vérifie s’il s’agit d’un paquet HTTP. Le paquet doit contenir une authentification Basic ou avec un login / mot de passe. Si les conditions sont satisfaites, un fichier de logs est également créé.
Ce sniffer ne fait que créer des fichiers de logs. On peut se demander pourquoi les attaquants ne sont pas allés plus loin, considérant notamment les autres capacités destructrices de l’attaque.

A ACT that teaches : challenging the next generation of ICS ethical hackers – Brandon WORKENTIN

Brandon a expliqué la façon dont il s’est pris pour créer une CTF SI industriel chez Security Matters. Tout d’abord, il a été confronté à de nombreux problèmes :
  • Les équipements industriels coûtent cher
  • Il y a beaucoup d’OS différents
  • Le transport est difficile
  • Il y a toujours d’autres difficultés techniques ou des erreurs humaines
Une fois ces problèmes surmontés ou acceptés, pour la construction du CTF, il convient de limiter les chemins d’attaque et de rendre certains vecteurs d’attaque hors-périmètre ou trop difficile à compromettre.
Mais le plus important avec un CTF Si industriel est de parler aux participants et de leur poser des questions guidées ou de leur donner des indices. Un CTF doit être plus orienté sur l’apprentissage que le simple test.
Par ailleurs, afin d’améliorer le CTF continuellement, il peut être intéressant de collecter les captures réseau afin d’analyser les actions des participants.
Security Matters, lors de l’ICS Village proposait également des challenges intégrés au CTF Hack the Plan[e]t.

Reverse engineering physical processes in ICS – Marina KROTOFIL

Marina KROTOFIL a également présenté un talk à l’ICS Village cette année sur des travaux de recherche sur le reverse engineering de procédés industriels.
Les attaques industrielles ne sont pas si simples que ça et il ne suffit pas d’être sur le même réseau que les équipements industriels. En effet, une attaque réussie requiert une connaissance approfondie du comportement dynamique du procédé industriel. Et ce n’est pas si facile à obtenir ! Plusieurs précédents travaux ont montré à quel point il était difficile d’obtenir des informations sur les procédés industriels. Néanmoins, des travaux plus récents tentent de créer un système de découverte automatisé des procédés industriels. Il serait en effet possible d’obtenir une image d’un procédé industriel et de trouver des capteurs et signaux corrélés dans ce procédé. Aucune approche standard n’a encore été trouvée et Marina encourage la communauté à participer aux recherches.

Autres conférences


Finding xori : malware analysis triage with automated disassembly – Amanda ROUSSEAU, Rich SEYMOUR

Les chercheurs de Endgame ont présenté leur nouvel outil open source, Xori, un désassembleur automatisé permettant d’analyser les malware.
Le développement de cet outil est parti d’un constat simple : il y a des millions d’échantillons de malware à analyser et pas assez d’experts en reverse. Xori vise donc améliorer l’analyse de malware à grande échelle et à la rendre automatisée.
Xori est développé en Rust, ne supporte que les architectures i386 et x86-64 pour le moment, affiche les strings basés sur des références d’adresses mémoire, gère la mémoire et fournit une sortie sous format JSON. Il existe deux modes : avec ou sans émulation.
Xori est composé de plusieurs modules :
  • Un loader de PE
  • Un gestionnaire de mémoire
  • Un module d’analyse, contenant notamment le désassembleur
  • Un module d’état, notamment pour la pile et les registres CPU


Amanda et Rich ont fait une démo de l’outil et ont invité la communauté à le tester et à contribuer à son amélioration.

barcOwned : Popping shells with your cereal box – Michael WEST, Colin CAMPBELL

Les codes-barres sont partout ! Et qui dit code-barre, dit scanner de code-barre. Les codes-barres, une fois décodés, forment un texte. La plupart des scanners fonctionnent de la même façon et agissent comme un clavier qui tape les caractères un à un. Et s’il était possible de modifier le texte à la volée ? C’est ce qu’ont présenté Michael et Colin durant ce talk. Il est possible et simple de programmer les scanners. En effet, des règles peuvent être ajoutées afin que des actions soient déclenchées lorsque les critères sont satisfaits. Avec ces règles, il est possible de modifier du texte, ignorer du texte, ajouter des caractères, ou simplement ne rien faire.
Michael et Colin ont ainsi développé barcOwned, un éditeur de payload au format JSON, open source, permettant de programmer les règles d’un scanner.




Plusieurs démonstrations ont été faites à la suite de la présentation : afficher un calc.exe, lancer un cmd.exe et taper la commande net user, et même jouer à Tetris ! Il est également possible de désactiver le scanner avec un code barre.
Malheureusement, il n’est pas possible de protéger les scanners contre la programmation. Il faut donc considérer qu’il s’agit de claviers dangereux et appliquer des règles de protection classiques comme le retrait des droits admin ou le blocage de cmd.exe.

Edge Side Include injection : abusing caching servers into SSRF and transport session hijacking – Louis Dion Marcil

Les Edge Side Include (ESI) sont une classe d’attaques sur certains serveurs de cache. Certaines applications web présentent sur leurs pages des fragments statiques, ainsi que des fragments variables. Les serveurs d’applications vont envoyer des marqueurs dans les réponses HTTP, des tags ESI, qui vont être parsés par le load balancer ou le proxy afin de mettre à jour les fragments variables.
L’un des tags ESI est le tag « include » qui permet d’inclure le contenu d’une autre page. Si la page mentionnée n’est pas présente dans le cache du load balancer ou du proxy, le serveur applicatif enverra le tag ESI afin que le contenu soit récupéré dans le serveur de cache.
Comment le moteur ESI peut savoir si un tag est légitime ou non ? Le tag ESI est envoyé par le serveur applicatif et est traité par le load balancer ou le proxy. Le moteur ESI ne peut donc pas être certain de la légitimité du tag et il s’agit d’un défaut de conception !
Il est ainsi possible de réaliser des injections ESI et récupérer les valeurs des cookies de session par exemple, même s’ils possèdent l’attribut httpOnly.




Louis a ensuite démontré ce type de vulnérabilités sur deux implémentations ESI :
  • Apache Traffic Server
  • Oracle Web Cache
Avec ces vulnérabilités, il est également possible de réaliser des SSRF (Server Side Request Forgery).


Ces vulnérabilités peuvent être détectés relativement simplement, soit manuellement, soit avec le scanner de Burp.


Hacking BLE bicycle locks for fun and a small profit – Vincent TAN KWANG YUE

Vincent a montré comment hacker des cadenas de vélo connecté utilisant la technologie BLE. Tout d’abord, il a acheté un cadenas en ligne afin d’étudier sa composition. Il a ensuite capturé les paquets échangés avec l’application mobile et le serveur central afin de comprendre le mécanisme d’ouverture.
Il a également étudié les informations transmises en BLE et capturé les requêtes de lecture et écriture. Deux fonctions semblent particulièrement intéressantes pour découvrir les caractéristiques du cadenas : CBPeripheral et CBPeripheralDelegate.



La cinématique complète de déblocage du cadenas est la suivante :



Il s’est ensuite intéressé à deux sociétés de Singapour utilisant des cadenas connectés : Obike et Mobike. Il a analysé les communications et reversé l’algorithme d’ouverture du cadenas, avec succès !

What the fax ?! – Yaniv BALMAS, Eyal Itkin

Yaniv et Eyal ont présenté une attaque contre un fax. Oui, un fax ! Ces équipements à priori obsolètes sont encore largement utilisés, notamment dans les banques et les institutions gouvernementales. Même Microsoft possède un numéro de fax. Il existe en effet des fax récents, qui sont plutôt des imprimantes multi-fonctions et ces équipements sont connectés sur le réseau. Attaquer un fax serait donc un point d’entrée sur le réseau que vous souhaitez compromettre. Challenge accepté pour les chercheurs de Check Point ! Ils ont donc fait l’acquisition d’un fax HP.
Ils ont démonté ses composants afin de trouver un moyen de récupérer le firmware, sans succès. C’était sans compter un site public de HP contenant toutes les mises à jour de firmware de leurs imprimantes.
En analysant le firmware, ils se rendent compte qu’il est compressé, avec un algorithme peu robuste, utilisant des sliding window. Une fois décompressé, ils identifient les différentes sections et en particulier des taches, comme la tache t30.






Par chance, ils découvrent une vulnérabilité affectant l’imprimante permettant d’exécuter du code. Ils en profitent donc pour installer leur propre débogueur sur le fax, Scout, afin de comprendre le fonctionnement du fax.



Ils ont ensuite commencé à chercher des vulnérabilités dans la couche applicative, au niveau du parser JPEG et découvert un stack-based buffer overflow. Bingo ! Ils ont pris la main sur le fax.
Que faire pour éviter ce genre d’attaques ? Patcher ses imprimantes, ne pas connecter ses fax inutilement sur le réseau et les cloisonner du reste du réseau. Mais surtout, arrêter d’utiliser des fax !





Alexandrine TORRENTS

Aucun commentaire:

Enregistrer un commentaire