Retour sur l’édition 2014 de la Hack.lu (Jour 3)

Retour sur l’édition 2014 de la Hack.lu (Jour 3)

hacklu2014.png

Internet Scanning – Conducting Research on 0/0, par Mark Schloesser (@repmovsb)

SLIDES

La troisième est dernière journée de conférences de cette dixième édition de la Hack.lu a débuté par une keynote Mark Schloesser, un chercheur travaillant pour le compte de la Rapid7 et également l’un des principaux développeurs de Cuckoo Sandbox. Ce dernier est revenu sur l’intérêt des outils permettant de scanner Internet. En effet, dès 1998, les scientifiques ont cherché à quantifier le nombre réel d’adresses IPv4 allouées en réalisant des études et des outils tels que Shodan, Shadowserver, Erratasec, etc.. Mais ces études restaient incomplètes et fastidieuses jusqu’à l’apparition en 2013 de scanneurs de masse tels que Masscan et ZMap. Ces outils gratuits et Open Source ont alors rendu possible la numérisation de l’ensemble d’Internet en moins de 45 minutes, sans l’utilisation de matériel particulier. Principalement dédiés aux chercheurs, ces outils ont donc permis de mener des études à grande échelle d’Internet (nombre d’adresses IPv4 allouées, augmentation de l’utilisation des protocoles sécurisés à la suite des révélations de l’affaire Snowden, etc.), mais également de vérifier et de quantifier l’impact d’une vulnérabilité lors de découverte (UPnP, IPMI, Heartbleed, ShellShock, etc.).

Après cette courte introduction mettant en évidence l’intérêt de ces études à grande échelle et l’importance de sensibiliser la communauté sur les risques liés aux découvertes associées, Mark Schloesser a présenté les projets Scans et Sonar, et leurs ambitions.

Le premier des deux projets, Scans.io, lancé conjointement par Rapid7 et l’Université du Michigan, met à disposition les résultats de scans réalisés à l’aide de l’outil ZMap sur les ports TCP/UDP les plus communs (HTTP, HTTPS, DNS, etc.). À titre d’exemple, la liste des serveurs exposés sur Internet est publiée toutes les deux semaines (cela représente près de 220 Go de données). Le second projet, Sonar, réutilise les résultats de Scan.io pour extraire et collecter des informations sur les certificats SSL utilisés par les serveurs web identifiés, et collecter la racine de chaque serveur web ainsi que des données disponibles dans les entrées DNS.

Les deux projets sont accessibles aux adresses suivantes:

Hacking with Images – Evil Pictures, par Saumil Shah (@therealsaumil)

SLIDES

La présentation suivante a été réalisée par Saumil Shah, qui est venu présenter une nouvelle technique pouvant être utilisée par des pirates pour s’attaquer aux navigateurs des internautes tout en restant invisible . Aujourd’hui, les méthodes utilisées par les pirates complexifient uniquement l’analyse des applications malveillantes par les chercheurs, mais elles restent détectables par les différents équipements sur le réseau :

  • obfucation JavaScript/ActionScript
  • format de fichier non valide
  • composant OLE
  • etc.

En 2013, le chercheur avait déjà présenté durant la première édition de la conférence NoSuchCon une technique d’attaque baptisée 255 Share of Gray . Celle-ci consiste à stocker un code d’exploitation au sein des pixels d’une image à l’aide d’un encodage en nuances de gris. L’image générée est alors parfaitement valide du point de vue de son format, et n’est pas détectée par les équipements réseau. Or, en remplaçant le code d’exploitation par un code JavaScript affichant l’image, le chercheur s’est rendu compte que le navigateur exécute le code JavaScript au lieu de simplement afficher l’image. Cette technique à depuis été mise en application par des attaquants sur Internet pour réaliser des attaques ciblées.

Cette année, le chercheur est donc venu présenter une méthode d’attaque similaire baptisée  Cross-Container Scripting (XSC), mais reposant cette fois sur la modification des attributs de l’en-tête d’une image JPG, BMP ou GIF. Concrètement, cette technique vise à insérer un code d’exploitation JavaScript au sein même de l’image. Le concept est celui des fichiers  Polyglot qui exploite le format et la structure des fichiers pour un fichier valide du point de vue de différents formats. Ainsi, un même fichier peut être à la fois une image et un script JavaScript valide.

Voici un exemple de fichier GIF valide intégrant un script JavaScript :

GIF89/*<contenu_image>*/=42;alert(/JavaScript/);

Afin de mettre en pratique cette idée, Saumil a développé la librairie IMAJS. L’idée sous-jacente à cette librairie est la technique du caméléon. Chargée dans une page web à l’aide de la balise <script> , l’image est interprétée comme du code JavaScript, mais si elle chargée à l’aide de la balise « <img> », l’image sera interprétée comme étant une image valide.

Le chercheur a ensuite étendu ce concept en couplant l’utilisation d’un fichier polyglotte à de la sténographie, afin de faire disparaitre l’ensemble des traces d’exploitation suspectes pouvant être détectées par les équipements sur le réseau.

D&D of malware with exotic C&C, par Eric Leblond (@Regiteric) et Paul Rascagnères (@r00tbsd)

SLIDES

Cette conférence a été animée par Paul Rascagnères, analyste pour le compte de l’éditeur de solutions antivirales G-DATA, ainsi que par Éric Leblond, un des principaux développeurs de l’IDS Open Source Suricata. À tour de rôle, les deux conférenciers sont revenus sur 6 cas concrets de chevaux de Troie recevant des commandes de leur serveur de contrôle via des canaux de communication plus ou moins originaux. L’objectif était d’illustrer comment il était possible d’identifier ces attaques à l’aide de l’IDS Suricata via la mise en place de règles de détection adéquates.

Ainsi, la présentation a été axée autour des logiciels malveillants suivants :

  • Havex :
    • communication via l’envoi de requêtes HTTP utilisant un schéma spécifique
  • IcoScript :
    • communication au travers des services de webmail (rarement bloqués sur les réseaux d’entreprise), en particulier celui de Yahoo. Les communications sont chiffrées grâce à l’utilisation du protocole HTTPS utilisé par le webmail
  • Uroburos, r*g*n :
    • communication au travers des named pipes (ex: \\machine_name\\pipe\isapi_http) rarement inspectés par les IDS, car il s’agit de flux locaux ne transitant pas sur Internet
  • Houdini :
    • communication au travers de requêtes HTTP classiques, mais dont l’en-tête  User-Agent est altéré (ex: User-Agent: {command}<|>{param1}<|>{param2})
  • FrameworkPOS :
    • communication via DNS
  • Uruburos :
    • communication via de la stéganographie. Les données exfiltrées sont cachées au sein des bits de poids faible d’une image (méthode dite du LSB)

Weak random number generator vulnerability in WPS External PIN protocol implementations, par Dominique Bongard (@Reversity)

SLIDES

La conférence suivante a permis d’aborder la sécurité des mobiles et des systèmes embarqués. Dominique Bongard est en effet venu présenter ses recherches sur le standard Wi-Fi Protected Setup (WPS).

Le WPS est désormais très courant sur les équipements sans fil. Il permet de connecter très facilement un équipement compatible à un réseau WiFi sans saisir de code secret complexe de plusieurs dizaines de caractères. Pour cela, le standard propose généralement d’appuyer sur un bouton placé sur le point d’accès WiFi (méthode PBC – Push Button Configuration) afin d’associer l’équipement avec le point d’accès. Une deuxième méthode d’authentification proposée par le standard est la saisie d’un code PIN (Personal Information Number) de 7 à 8 caractères spécifique au point d’accès WiFi.

Après une courte introduction expliquant le fonctionnement de ce standard, Dominique Bongard a présenté les faiblesses de ce système en se concentrant notamment sur les implémentations défectueuses des générateurs de nombres pseudoaléatoires (PRNG) des équipements réseau.

Cyber attacks during the Revolution in the Ukraine and war with Russia, par Glib Pakharenko (@relocationinfo)

SLIDES

Enfin, la matinée s’est terminée par une présentation d’un membre actif de la communauté de la sécurité IT en Ukraine, Glib Pakharenko, abordant l’évolution des actions opérées par la Russie dans le cadre du conflit ukrainien. il s’agit d’un cas concret de  Cyber-Warfare , qui pourrait parfaitement inspirer les scénarios catastrophes d’Hollywood pour le prochain opus de la saga Die Hard.

Au cours de sa présentation, Glib a démontré que les actions des hacktivistes pro-russes ont rapidement dépassé le simple déni de service sur les ressources ukrainiennes. Ces attaques ont eu majoritairement lieu lors des manifestations ukrainiennes (avant janvier 2014) et furent utilisées pour rendre indisponibles les sites des principaux médias et du gouvernement ukrainien. Elles furent également utilisée pour cibler les comptes des opposants politiques, empêcher l’utilisation des institutions bancaires, ou encore pour rendre indisponible le poste de contrôle du système électrique de Varsovie (cette attaque a d’ailleurs été à l’origine d’une panne de courant généralisée au sein de la capitale Ukrainienne, résultant temporairement en un black-out).

À l’apogée de la révolution ukrainienne (février 2014), les attaques ont été intensifiées et ont ciblé cette fois les technologies mobiles :

  • les membres du parlement reçurent des centaines d’appels et de SMS afin de les inciter à éteindre leur téléphone portable ;
  • de fausses stations GSM furent déployées pour écouter les communications des manifestants ;
  • certains numéros d’urgences dont celui de la police ont été rendu indisponible ;
  • la diffusion des émissions de la principale chaine de l’opposition pro-ukrainienne a été stoppée.

Au début de l’invasion de la Crimée (février-mars 2014) :

  • les sites du gouvernement furent attaqués pour empêcher la publication des nouveaux projets de loi ;
  • des attaques ont ciblé les infrastructures réseau nationale ;
  • des données gouvernementales et/ou personnelles ont été dérobées et récupérées par les forces militaires russes ;
  • des campagnes de censure ont été réalisées, notamment sur Wikipedia.

Depuis le début de l’invasion par l’armée en Crimée, plusieurs attaques ont été réalisées sur les institutions financières et les distributeurs de billets. Une partie du trafic Internet aurait été intercepté par la Russie. Enfin, plusieurs tentatives d’attaques ciblant le système ferroviaire ukrainien, les opérateurs de télécommunication ainsi que les systèmes de vote électronique ont été signalées.

Bien que ces attaques ont été accentuées par une dépendance ukrainienne aux infrastructures et services russes (vk.com, mail.ru, yandex.ru, systèmes industriels SCADA, etc.), ces actions soulèvent une fois plus de plus la question de la dépendance d’un pays à un autre, et les capacités de réponse d’un pays en cas de cyberattaques.

Mitmproxy, the man-in-the-middle HTTPS proxy, par Maximilian Hils (@maximilianhils)

Après un nombre de records de Lightning Talks (présentation courte de 10 minutes au plus), l’après-midi débuta par une présentation de Mitmproxy, un outil permettant de faire de l’interception SSL. Mitmproxy est un proxy utilisable en ligne de commande (cli) qui permet d’intercepter des communications entre un client et un serveur. Tout comme ses équivalents disposant d’une interface graphique (Burp, Zap, CharlesProxy, etc), il permet l’interception et la modification des requêtes HTTP, mais également d’agir comme un proxy passif afin d’être utilisé de la même manière que tcpdump pour étudier les échanges HTTP. Son principal avantage réside dans le fait qu’il est facilement extensible grâce à une interface en ligne de commandes et ses fonctionnalités modulaires et scriptables. La présentation a été l’occasion d’annoncer la publication de la version v0.9.3, ainsi que de la mise à disposition d’une interface web complétant l’interface en ligne de commandes.

How I hacked my city, par Amihai Neiderman

Amihai Neiderman, un chercheur indépendant d’origine israélienne, est venu partager son retour d’expérience en matière de recherche de vulnérabilité. L’expérience dont il nous a fait part a été présentée de manière chronologique avec tous les rebondissements, ses succès et surtout, ses échecs. Cette présentation est très représentative de ce que peut être la recherche de vulnérabilités. En effet, les présentations de ce type mettent rarement en évidence l’ensemble de la démarche ayant permis la découverte de la vulnérabilité, et passent sous silence les différentes péripéties rencontrées. Or, le chemin entre l’identification des premiers indices, l’exploitation de la faille et les conséquences qui en découlent peut être long, fastidieux et parsemé d’embuches.

L’expérience d’Amihai a débuté avec la mise en place l’année dernière d’un réseau WiFi public au sein de la capitale israélienne, Tel-Aviv. A cette occasion, il a découvert par hasard un point d’accès accessible sans authentification (réseau WiFi ouvert de type « hotspot ») et s’est donc empressé de noter son adresse IP. Il poursuivit ainsi ses recherches sur le point d’accès à distance, jusqu’à identifier une interface d’administration et des fichiers sensibles exposés publiquement. Cette phase d’exploration lui a permis d’identifier l’éditeur du routeur (Peplink). Cette interface d’administration était exposée directement sur Internet sans aucune restriction d’accès, au lieu d’être restreinte aux seules adresses IP des personnes en charge de son administration. Dans l’optique de compromettre l’équipement, Amihai a donc tenté de s’authentifier avec des comptes reposants sur des mots de passe faibles ou triviaux, sans succès. Il a également essayé d’identifier des paramètres vulnérables à l’injection de code SQL, dans l’espoir de contourner le mécanisme d’authentification. Cependant, ses recherches se soldèrent par un échec. Enfin, il ne découvrit aucune vulnérabilité publique affectant cet équipement.

Là où beaucoup d’attaquants se seraient arrêtés, Amihai a décidé de poursuivre ses recherches en se focalisant sur l’analyse du point d’accès WiFi, et l’audit du firmaware. Ce dernier était disponible en téléchargement sur le site de l’éditeur. Très rapidement, il a rencontré de nouvelles difficultés, notamment liées à l’identification de la version logicielle exacte de l’application et à son analyse (rétro-ingenierie : format de fichier, dépendances logicielles, etc.). Il a également rencontré des difficultés liées à la création d’une machine virtuelle émulant le point d’accès afin de s’attaquer à une copie conforme de point d’accès, sans alerter les équipes techniques en charge du réseau de Tel-Haviv. Une fois ces dernières surmontées (non sans peine), il a enfin pu débuter la phase de recherche de vulnérabilités à proprement parler.

Dans un premier temps, il a identifié une vulnérabilité liée à un manque de filtrage au sein des paramètres de l’application. Il s’agissait, en l’occurrence, d’une vulnérabilité de type  format string au sein de la gestion des cookies par l’application. Toutefois, les conditions d’exploitation étaient limitées par les attributs des Cookies. En effet, l’exploitation de cette faille impliquait l’utilisation d’une chaine de caractères relativement longue. Or, la taille des cookies ne pouvait pas dépasser les 4096 caractères (RFC2119).

Il est finalement parvenu à identifier une seconde vulnérabilité similaire, qu’il parvint à exploiter sans restriction. L’exploitation de cette vulnérabilité lui a enfin permis de prendre le contrôle du point d’accès et d’en modifier sa configuration afin, par exemple, de rediriger le trafic et d’intercepter les communications.

Enfin, Amihai a présenté les échanges qu’il a eu avec l’éditeur pour corriger les vulnérabilités identifiées. Ce dernier accueilli relativement bien les recherches du chercheur et alla même jusqu’à le remercier de sa contribution bénéfique.

Breaking Out of VirtualBox through 3D Acceleration, par Francisco Falcon (@fdfalcon)

Francisco Falcon, chercheur chez Core Security nous présenta également un retour d’expérience concernant la recherche et l’exploitation de faille de sécurité. Ce dernier est revenu sur ses recherches sur l’un des outils de virtualisation les plus connus du public, VirtualBox, ainsi que sur comment les fonctionnalités d’accélération 3D proposées avec le composant  Guest Additions peuvent être exploité pour compromettre le système hôte. Cette fonctionnalité d’accélération 3D permet aux machines virtuelles émulées d’utiliser le GPU de la machine hôte dans le but d’améliorer les performances du rendu des graphismes 3D, en tirant parti des APIs OpenGL ou Direct3D. La complexité de l’application qui s’exécute dans le contexte de l’hyperviseur de VirtualBox ouvre ainsi la porte à des problèmes de sécurité.

La présentation a débuté par une rapide mise en contexte avec la présentation des processus de communication entre les machines invitées/hôtes sur Virtualbox et, comment l’application implémente l’accélération matérielle 3D pour les rendus graphiques d’OpenGL. Il a détaillé trois vulnérabilités référencées CVE-2014-0981, CVE-2014-0982 et CVE-2014-0983 découvertes lors de ses recherches, ainsi que la technique d’exploitation de ces failles, qui nécessite de contourner le mécanisme de distribution aléatoire de l’espace d’adressage du système (ASLR). Ces trois vulnérabilités résultaient d’un manque de validation des entrées pouvant être exploité afin de provoquer de multiples corruptions de la mémoire permettant à un attaquant de s’échapper de la machine virtuelle et de prendre le contrôle du système hôte.

Botnets Behavioral Patterns in the Network, par Sebastian Garcia (@eldracote)

SLIDES

La présentation suivante fut réalisée par Sebastian Garcia, un étudiant à la  CTU University  en République tchèque. Sebastian a proposé un état de l’art des mécanismes de détection des botnets. Il s’est en particulier intéressé à leur efficacité, en terme d’identification de Traces, de réputation, de détection d’anomalie et d’apprentissage comportemental. Chacun de ces procédés ayant ses avantages et ses inconvénients.

Sebastian a ensuite proposé un nouveau concept permettant d’optimiser la détection des botnets. Ce concept repose sur l’agrégation de 4 informations les adresses IP et les portd d’origine et de destination. Via l’agrégation de ces informations, il a proposé un modèle permettant l’analyse de ces événements.

Ce modèle repose sur :

  • la taille des paquets ;
  • la durée des échanges ;
  • la périodicité des flux.

En se basant sur ces informations, Sebastian a expliqué comment attribuer un code spécifique (36 états possibles) afin de mettre en place un mécanisme de détection de botnet tirant parti des chaînes de Markov.

En environnement de test, il est intéressant de noter que ce modèle de détection est l’un de ceux qui obtient les meilleurs résultats avec taux de détection de 78% (pouvant atteindre 93%).

Microsoft Vulnerability Research: How to be a Finder as a Vendor, par Jeremy Brown

SLIDES

Enfin, la dernière conférence a été donnée par Jeremy Brown, de Microsoft, et a abordée la problématique de la divulgation de faille en interne. Créé en 2008 par Microsoft, le MicroSoft Vulnerability Research (MSVR) ne doit pas être confondu avec le MSRC (Microsoft Security Response Center) ou encore avec le programme de récompense (Microsoft Bounty Programs) qui s’intéressent pour le premier aux vulnérabilités affectant les produits Microsoft (et qui donne lieu au célèbre Patch Tuesday) et pour le second à la découverte de nouvelles techniques d’exploitation fonctionnelles contre les produits Microsoft.

Ainsi, le MSVR est un programme interne à Microsoft spécialement conçu pour coordonner la remontée de failles de sécurité découvertes par les employés du groupe aux éditeurs de logiciels tiers (Apple, Adobe, Google, IBM, HP, etc). Ce programme permet ainsi d’assister les personnes identifiant de nouvelles vulnérabilités dans la démarche d’échange avec l’éditeur de la solution impactée et d’obtenir un support auprès de celui-ci en toute transparence et avec tout le poids que peut représenter la firme de Richmond. Il est à noter que ce type de programme favorisant la publication responsable de vulnérabilité permet à l’éditeur de conserver de bonnes relations avec les autres éditeurs et réduit le risque de divulgation publique de vulnérabilité jusqu’alors inconnue par les employés de Microsoft.

Enfin, il est intéressant de constater que malgré le poids que Microsoft peut représenter, les responsables du MSVR rencontrent les mêmes difficultés que les chercheurs indépendants ou les plus petites structures souhaitant remonter une faille de sécurité à un éditeur pour contribuer à l’amélioration de ses produits. Parmi les obstacles rencontrés, on notera notamment :

  • la difficulté d’identifier un contact technique chez l’éditeur en question ;
  • l’absence de réponse de certains éditeurs (jusqu’au jour ou la vulnérabilité est rendue publique) ;
  • ou encore, comme très souvent, le manque de considération du travail réalisé résultant l’absence de correctifs.

La liste des vulnérabilités remontées par les employées de Microsoft est accessible à l’adresse suivante : https://technet.microsoft.com/en-us/security/msvr/dn602600.aspx#APUMA.

CTF results and more

Pour finir, cette dernière journée de conférence, nous avons assisté à la remise des prix de l’épreuve de CTF organisé par FluxFingers de l’Université de Ruhr Bochu.

Nous avons également eu l’occasion de participer à cette remise des prix puisque l’équipe d’XMCO, I Don’t Know , a été classée sur la troisième marche du podium parmi les dix-sept équipes qui ayant participé localement à ces deux jours de challenges.

Pour les personnes souhaitant s’essayer aux épreuves, ces dernières restent accessibles jusqu’a l’année prochaine à l’adresse suivante: https://wildwildweb.fluxfingers.net

Nous attendons maintenant avec impatience la onzième édition de la Hack.Lu. En attendant, nous vous donnons rendez-vous dans le numéro 39 de l’ActuSécu pour le résumé complet de ces conférences.


Cert-XMCO