Résumé de l'édition 2014 d'Hackito Ergo Sum

La cinquième édition de la Hackito Ergo Sum s’est déroulée à la Cité des Sciences de la Villette du 24 au 26 avril dernier. XMCO était présents à cette conférence dont voici un compte-rendu des trois jours de présentation.

Jour 1

Keynote – An amazing keynote, par Edmond “bigezey” Rogers

Edmond Rogers, qui a animé ces 3 jours de conférence, a ouvert le bal. Le chercheur de l’université de l’Illinois a commencé par un bref discours d’ouverture durant lequel il a insisté sur la difficulté qu’ont les professionnels de la sécurité à caractériser les multiples vulnérabilités rencontrées sur leurs systèmes et à isoler les informations pertinentes.

Afin de procéder à cette caractérisation, Edmond a présenté le modèle CPTL (Cyber-Physical Topology Language), un modèle basé sur la théorie des graphes ayant pour objectif l’utilisation de métriques compréhensibles par tous. Ce modèle a été appliqué avec succès par des chercheurs afin de dérouler un audit de vulnérabilités sur les infrastructures électriques aux États-Unis.

L’utilisation de ce modèle, et d’autres systèmes adaptés seront d’après lui nécessaires pour faire face aux nombreuses vulnérabilités rencontrées et sécuriser les différents systèmes.

Hacking Telco equipment : The HLR/HSS, par Laurent Ghigonis

SLIDES

Laurent Ghigonis, consultant chez P1 security, a présenté une étude de la sécurité des HLR (Home Location Register) et des HSS (Home Suscriber Server) au sein des réseaux de téléphonie mobile.

Les HLR/HSS sont les équipements du réseau responsables du stockage des données utilisateurs (identifiant et localisation de l’abonné, services souscrits, etc.). Ils sont massivement interconnectés (Internet, réseau opérateur) et s’appuient sur un grand nombre de services et d’applications internes.

Les consultants de P1 ont constaté qu’un HLR/HSS peut être mis hors service à l’aide de paquets forgés par un attaquant. Si ce déni de service cible l’ensemble des équipements du réseau d’un opérateur, le réseau en question sera entièrement indisponible. Par ailleurs, des vulnérabilités locales sont aussi présentes puisqu’un utilisateur connecté sur un HLR/HSS peut facilement élever ses privilèges afin de devenir administrateur sur le système.

Ces vulnérabilités soulèvent donc le problème de la disponibilité des réseaux mobiles et des possibilités qu’ont les attaquants à les compromettre.

LTE vs Darwin : The Evolution Strikes Back ?, par Hendrik Schmidt & Brian Butterly

SLIDES

Hendrik Schmidt et Brian Butterly, consultants chez ERNW, ont poursuivi la matinée sur le thème de la sécurité des réseaux LTE (Long Term Evolution) de téléphonie mobile.

LTE est la norme la plus récente des réseaux de téléphonie mobile, commercialisée sous le nom de 4G. Hendrik et Brian ont réalisé une analyse de sécurité de ces réseaux tant au niveau du front-end (communication radio entre les terminaux mobiles et les antennes) qu’au niveau du back-end (cœur de réseau des opérateurs de téléphonie mobile).

Leur constat est que les réseaux LTE souffrent de différentes vulnérabilités permettant la reconnaissance d’éléments de l’architecture réseau (depuis les terminaux mobiles ou via le scan de plages IP d’opérateurs), le déchiffrement des communications entre les différents équipements et l’intégration d’antennes maîtrisées par l’attaquant au sein des réseaux d’opérateur.

Cette présentation soulève la question de la confidentialité des échanges utilisateurs via les terminaux mobiles sur les réseaux LTE.

WMI Shell : A new way to get shells on remote Windows machines using only the WMI service, par Andrei Dumitrescu

SLIDES / OUTIL

En début d’après-midi, Andrei Dimitrescu, consultant chez Lexsi, a réalisé une présentation sur les objets WMI (Windows Management Instrumentation) et la possibilité de les utiliser afin de compromettre un système distant.

Les objets WMI permettent d’obtenir des informations (utilisateurs, paramétrage réseau, processus) et d’exécuter des commandes (création/suppression de processus, appel de commandes systèmes) sur un système Windows. Ces objets peuvent être appelés à distance à l’aide d’outils spécifiques (wmic sur Windows et wmis sur Linux).

Andrei a développé un outil nommé « wmi-shell » permettant d’utiliser ces propriétés d’appel à distance lors d’un test d’intrusion. L’auditeur spécifie des commandes qui seront passées au système distant. Si des informations sont à exfiltrer, elles seront écrites dans un fichier temporaire et rapatriées sur le système de l’auditeur.

La réalisation de cette action nécessite l’ouverture du port 135 sur le système distant et la possession des identifiants/hash d’un compte habilité à requêter les objets WMI.

Applying science to eliminate 100% of buffer overflows, par Andreas Bogk

SLIDES

Andreas Bogk est un membre actif du CCC, actuellement architecte sécurité pour applications mobiles au sein de la société HERE.

Sa présentation portait sur l’outil SoftBoundCETS. Cet outil, à intégrer dans le processus de compilation des binaires, permet de prévenir les vulnérabilités de type « dépassement de tampon » (erreurs spatiales) et « use-after-free » (erreurs temporelles). En plus de la présentation de l’outil, cette présentation a permis un rappel des bonnes pratiques lors du développement en C (vérifications à réaliser, gestion de la mémoire partagée).

Andreas a porter cet outil sur le système d’exploitation FreeBSD.

Jour 2

Vaccinating APK’s, par Milan Gabor & Danijel Grah

SLIDES

La première conférence de la seconde journée, présentée par Milan Gabor et Danijel Grah (deux chercheurs de l’entreprise slovène Viris), part d’un constat simple : Android est selon les statistiques, le système mobile le plus ciblé par les pirates. Cette problématique est essentiellement liée aux tests des applications qui n’entrent pour ainsi dire plus dans le processus de développement. Autre constat, les développeurs comme les utilisateurs sont davantage concentrés sur les fonctionnalités plutôt que sur les composants de sécurité. Tous ces éléments offrent donc de multiples vecteurs d’attaques.

Après avoir rappelé les bases des applications Android (qu’est-ce qu’un .apk, Java, principe des Activities, Services, etc.), les deux conférenciers ont évoqué les méthodes permettant de reverser des applications en listant quelques outils utilisés (Dex2Jar, JD-GUI, etc.) ainsi qu’en rappelant la différence entre analyse statique (lecture du code) et dynamique (monitoring, remoting, debugging, etc.).

Ils ont ensuite présenté leur projet permettant d’injecter un service au sein d’une application via l’utilisation des outils Fino et BeanShell. Ils peuvent ensuite analyser et modifier le comportement de l’application lors de son exécution (modification des valeurs des variables, appels de fonctions arbitraires, exécution de code Java). Une démonstration a été réalisée leur permettant de tricher dans des jeux (la modification des variables en temps réel leur permettant d’obtenir le meilleur score), mais cela pourrait également servir à envoyer des SMS d’urgence (classe 0), consulter des informations normalement inaccessibles, etc.

L’objectif est désormais de tout réunir en un seul et même outil et si possible d’injecter le service en amont et non en réinstallant l’APK.

The government as your hacking partner: using public data to block passports, national ID cards, steal tax data, and other mischievous deeds, par José Garduño

José Garduño a ensuite présenté une étude opposant la politique de publication des données du gouvernement chilien (transparence de l’information) au respect de la vie privée.

José est parti d’éléments publiés sans restriction sur les bases de données du gouvernement (nom, adresse, numéro d’identité, sexe). Ces informations ont pu être utilisées pour obtenir d’autres données. De proche en proche, il a ainsi pu réaliser une cartographie complète des informations accessibles pour n’importe quel citoyen chilien (famille, numéro d’immatriculation, numéro de passeport, données médicales, fonds de pension, etc.).

Les informations ainsi obtenues sont suffisantes pour usurper une identité, réaliser des actions à la place d’une personne (révocation ou création de documents officiels, récupération d’actes de naissance/mariage/décès, etc.).

Il a également développé un outil (basé sur le framework python Django et sur diverses librairies) permettant d’automatiser cette agrégation d’éléments d’identité. Il a par ailleurs réalisé une application de phishing utilisant ces éléments. L’application simule le comportement d’un serveur vocal interactif afin de demander à l’utilisateur des informations confidentielles complémentaires.

Il a ensuite élargi cette problématique de la confidentialité des données personnelles en ajoutant qu’en plus des données publiées par le gouvernement, les utilisateurs publient eux aussi de nombreuses informations sensibles (réseaux sociaux, blogs, etc.).

Hardware Security Modules: attacks and secure configuration, par Graham Steel

SLIDES

Graham Steel a ensuite parlé des Modules Matériel de Sécurité (HSM). Les HSM sont des équipements cryptographiques ayant pour fonction de conserver les clés privées dans les infrastructures de gestion des clés (applications gouvernementales, guichets automatiques, systèmes de paiement/monétiques). Ces équipements et leur contenu sont réputés inviolables.

Graham a pris pour exemple la génération de code PIN par un HSM, et a montré qu’en influant sur les différentes entrées fournies à l’équipement, et à l’aide de multiples essais, il est possible d’obtenir des informations partielles sur le PIN généré (valeur de certains chiffres du PIN), voir le PIN complet.

Afin d’illustrer ces principes, Graham a présenté les différentes attaques déjà connues et les informations qu’elles permettaient de récupérer (« ISO-0 Reformatting attack », « Extended Reformat Attack », « Statistical Attack », etc.)

OSMOSIS – Open Source Monitoring Security Issues, par Christian Sielaff & Daniel Hauenstein

SLIDES

Pour terminer cette seconde journée, Christian Sielaff et Daniel Hauenstein ont présenté OSMOSIS (Open Source Monitoring Security Issues). La principale question était : « Comment profiter des solutions de supervision afin de compromettre un réseau ? »

Afin de mener à bien leur étude, ils ont examiné plusieurs solutions basées sur des logiciels Open Source (CACTI, NAGIOS, ICINGA, Check_mk). Ces dernières présentent de nombreux avantages : libres et gratuites, mais la sécurité et les failles liées peuvent apporter de nombreuses problématiques sur un réseau.

L’analyse de ces produits a permis d’identifier de nombreuses failles (XSS, des CSRF, des RCE, Buffer Overflow, etc.) les ayant conduits jusqu’à l’obtention d’un shell persistant. Ceci leur a permis de contourner les restrictions réseau et de rebondir vers le réseau interne de l’entreprise.

Enfin, des solutions de mitigation ont été présentées afin de prévenir ces attaques (il s’agit dans la plupart des cas de bonnes pratiques à mettre en place côté développement).

Les vulnérabilités ont été remontées aux éditeurs, mais seuls NAGIOS et Icinga ont corrigé leur application. D’autres éditeurs se sont montrés moins collaboratifs (absence de réponse, rejet de l’audit, etc.)

Jour 3

Suricata 2.0, Netfilter and the PRC, par Éric Leblond

SLIDES

Cette troisième et dernière journée de conférence fut lancée par Éric Leblond. Ce dernier a présenté les améliorations sur l’application Suricata.

Suricata est un IDS (Intrusion Detection System) Open Source chargé d’identifier les activités suspectes au niveau des trames réseau, en se basant sur des règles définies par l’administrateur à l’aide du langage LUA.

Pour cela, Suricata s’appuie sur une architecture multithread performante afin d’exploiter pleinement les ressources des systèmes modernes et une identification des protocoles de manière précise afin de permettre une bonne granularité des règles et réduire le nombre de faux positifs.

Les capacités de cet outil permettent la réalisation de nombreuses tâches : extraction des fichiers transitant sur le réseau, vérification de la validité des chaînes de certification lors d’une connexion entre un client et un serveur distant (prévention des attaques par interception de flux), etc. Il offre de plus une lecture facilitée des logs via une interface séduisante et permettant l’extraction de statistiques (représentation sous forme de graphiques, camemberts, etc.).

La présentation a été illustrée par la détection par Suricata de requêtes malveillantes ciblant la vulnérabilité Heartbleed.

Suricata avait été développé par Victor Julien et Matthew Konkmann, qui ont fondé pour cela la fondation Open Information Security Foundation (OISF). Il offre une alternative de plus en plus crédible face à son concurrent Snort.

Worldwide attacks on SS7 network, par Alexandre De Oliveira & Pierre-Olivier Vauboin

SLIDES

Alexandre De Oliveira et Pierre-Olivier Vauboin, consultants chez P1 Security, ont présenté des attaques réalisables sur les réseaux de téléphonie mobile. Ces attaques exploitent des vulnérabilités au niveau du cœur de réseau de l’opérateur et au niveau des terminaux mobiles.

La présentation a commencé par un rappel des composants et du fonctionnement des architectures télécom (2G/3G). Alexandre et Pierre-Olivier ont ensuite insisté sur le fonctionnement du protocole SS7, utilisé pour les échanges entre les composants du réseau.

Une fois la partie théorique achevée, des scénarios d’attaque concrets ont été présentés. Après avoir réalisé une reconnaissance des différents équipements sur le réseau d’un opérateur, les chercheurs de P1 ont ainsi été capables de localiser la position des utilisateurs connectés à ce réseau téléphonique. De plus, ils ont été capables d’émettre des appels ou des SMS depuis le numéro de leur choix, à l’échelle nationale et internationale.

En fin de conférence, des solutions de mitigation ont été présentées. Néanmoins, celles-ci sont encore imparfaites et peuvent être contournées.

A common weakness in RSA signatures: extracting public keys from communications and embedded devices, par Renaud Lifchitz

SLIDES

Lors de cette conférence, le chercheur français Renaud Lifchitz, consultant chez Oppida, a présenté des méthodes d’extraction de la clé publique en analysant des signatures de messages. En effet, il peut arriver que malgré son nom, la clé publique ne soit pas publiée (communications entre terroristes, clé embarquée au sein d’un équipement fermé, etc.).

Renaud Lifchitz a tout d’abord rappelé le fonctionnement de la cryptographie asymétrique, dans son cas l’algorithme RSA, ainsi que les différentes méthodes actuelles connues pour factoriser de grands nombres entiers (recherche de petits facteurs dans de grands nombres ou recherche de grands facteurs dans de petits nombres). Il a ensuite rappelé la construction d’une signature cryptographique et démontré comment il était possible d’extraire une clé publique en ne possédant que deux messages initiaux et leurs signatures.

Si la présentation semblait très théorique, il a ensuite montré une application pratique de cette vulnérabilité sur le badge Vigik. Ce badge permet aux agents des services nationaux (La Poste, EDF, France Telecom, etc.) d’accéder aux immeubles. Ce badge n’est valable que temporairement dans le temps et doit être « réinitialisé » régulièrement. Les institutions publiques possèdent une clé privée qui va signer un message contenu au sein du badge. Les lecteurs contiennent les clés publiques des différentes entreprises et vérifient la validité de la signature.

Renaud a été capable de reverser le fonctionnement des badges et d’en extraire la signature contenue.

En réutilisant la vulnérabilité précédemment identifiée, il a ainsi été capable d’obtenir les clés publiques de chacun des organismes (France Telecom, La Poste, etc.).

Ruby on Rails exploitation and effective backdooring, par Joernchen of Phenoelit

Joernchen of Phenoelit a conclu cette cinquième édition de la HES en nous présentant des vulnérabilités liées au framework web « Ruby on Rails », basé sur le langage de programmation Ruby.

Joernchen a commencé par rappeler le fonctionnement de Ruby on Rails, l’architecture MVC utilisée par le framework et l’arborescence d’un projet standard.

Il nous a ensuite présenté les vulnérabilités classiques rencontrées sur cet environnement : l’absence de contrôles et de validation des paramètres (comme dans beaucoup d’autres langages) pouvant mener à différents types d’injection (SQL, Ruby, etc.). De plus, le framework présente aussi différentes vulnérabilités au niveau de la gestion et du traitement des sessions (sessions persistantes d’une connexion à l’autre, injection de code dûe à un mauvais traitement des cookies de session, etc.). L’ensemble de la présentation s’est appuyé sur des mini-exemples de chacun de ces cas.

Adrien Guinault

Découvrir d'autres articles

  • Conférences

    Retour sur la THCon 2024

    Lire l'article
  • Conférences

    Retour sur WestDataFestival 2024

    Lire l'article
  • Conférences

    DORA et la résilience opérationnelle des fournisseurs

    Lire l'article