CoRIIN

Le CECyF (Centre Expert contre la Cybercriminalité Français) organisait le 19 janvier la première Conférence sur la Réponse aux Incidents et l’Investigation Numérique (CoRIIN). Elle se tenait à Lille la veille du FIC, elle a accueilli pour une journée une centaine de participants.

Eric Freyssinet ouvre la conférence avec un mot d’accueil pour présenter les objectifs du CECyF, notamment créer des ponts entre les différents métiers confrontés à la cybercriminalité : forces de l’ordre, universitaires, experts judiciaires, acteurs privés, etc.  Il développe son souhait de voir se développer des formations dans le domaine de la réponse aux incidents, et invite toute personne souhaitant participer à des conférences sur ce thème à contacter le CECyF avant de laisser la parole aux conférenciers.

Présentation du référentiel d’exigences PRIS

Yann Tourdot et Arnaud Pilon, ANSSI

La conférence commence par une présentation de la feuille de route de l’ANSSI concernant les prestataires de confiance. L’organisme souhaite définir un cadre couvrant quatre domaines liés aux incidents de sécurité des SI : prévention (audit), détection, réaction et remédiation.

La feuille de route prévoit qu’un référentiel d’exigences soit défini pour chaque domaine. C’est déjà le cas pour la prévention avec le programme PASSI qui comporte actuellement quatre prestataires labélisés, dont Intrinsec. Les programmes PRIS et PDIS couvrant respectivement la réaction et la détection doivent entrer en phase expérimentale en 2015 ; le référentiel lié à la remédiation n’a quant à lui pas encore été défini.

La suite de la présentation se concentre sur le PRIS, initialement élaboré à partir des retours d’expérience de l’ANSSI sur les incidents de grande ampleur, suivi d’un appel à commentaires.

Le référentiel vise à découper les activités pour correspondre aux profils du marché : reverse engineering de binaires, analyse de systèmes compromis, analyse réseau et pilotage de ce type de mission. Conscient que chaque analyste a ses propres méthodes de travail, il s’agira de définir des bonnes pratiques à suivre plutôt qu’une liste d’outils à exécuter.

Le cadre définit la notion de posture initiale (si l’attaquant est actif dans le système), l’environnement à mettre en place pour assurer la confidentialité des données de l’investigation et la démarche itérative à suivre de la compréhension de l’incident jusqu’à la définition des mesures de remédiation.

Les conférenciers achèvent leur présentation en rappelant aux commanditaires de prestations qu’ils peuvent solliciter l’ANSSI à n’importe quel moment pour participer à la rédaction de cahier des charges ou se référer au guide d’achat de produits et de services de sécurité.

CERTitude : ou comment simplifier les campagnes de recherche d’IOC

Vincent Nguyen et Jean Marsault, Solucom

Les intervenants présentent l’outil CERTitude, développé en interne à Solucom pour rechercher des Indicateurs de Compromission (IOC) et évaluer l’étendue d’un périmètre compromis.

Le cahier des charges initial était d’assurer la compatibilité avec un maximum de systèmes (Windows pour l’instant), avoir un impact faible sur le S.I., laisser un minimum de traces sur les postes analysés, supporter la mise à l’échelle, être modulaire, disposer d’une bonne ergonomie et assurer la confidentialité des informations traitées.

L’outil s’appuie sur une console de gestion et des batteries de scripts de collecte qui se connecteront aux éléments du périmètre à analyser. L’analyse des éléments peut être effectuée au choix directement sur les équipements ou une fois rapatriés sur la console de gestion si la confidentialité des IOC recherchés est souhaitée. Les IOC détectés comportent les entrées dans la base de registre, les fichiers, processus, services, données Prefetch, connexions et autres informations réseau.

Les conférenciers font ensuite une démonstration en direct de l’outil. La console de gestion dispose d’une interface Web qui permet de définir le périmètre à évaluer, les indicateurs recherchés (spécifiés au format OpenIOC), et visualiser les résultats sous forme de graphe. L’accès à chaque nœud permet de visualiser rapidement les indicateurs identifiés et d’attribuer un niveau de confiance au résultat.

L’outil est toujours en développement, avec une version 1.0 prévue pour l’été 2015. Il est open-source et librement accessible sur son dépôt Github.

Description & Détection de malwares avec des Command & Control exotiques

Paul Rascagnères (G Data) et Eric Leblond (Stamus Networks)

Les conférenciers présentent les possibilités d’utiliser un IDS – en l’occurrence Suricata – pour détecter les postes infectés par des malwares communiquant avec un C&C. Le principe est simple : par définition, un protocole de communication doit faire transiter les informations selon un format précis. En découvrant des motifs dans ces formats (ex. après analyse d’un échantillon), ils peuvent être convertis en règles IDS.

La présentation s’appuie sur des exemples concrets de malwares analysés par les intervenants. On retrouve des C&C sur HTTP, HTTPS, DNS et même les canaux nommés Windows pour la communication interne entre machines infectées.

La traduction des motifs identifiés en règles de détection va du trivial dans le cas des protocoles gérés nativement par l’IDS au plus complexe avec l’utilisation de données binaires directement extraites des flux dans le cas contraire. Il est également parfois nécessaire de faire appel à des composants tiers, par exemple un proxy pour déchiffrer le HTTPS avant qu’il soit traité par l’IDS. Les derniers points à prendre en compte pour ce type d’analyse sont le positionnement des sondes de détection et la volumétrie du trafic analysé : il est nécessaire de couvrir suffisamment de points du S.I. pour réaliser une analyse pertinente du trafic et les règles doivent être suffisamment optimisées pour ne pas perturber le bon fonctionnement du S.I.

En conclusion, les attaquants sont compétents mais ne font pas encore de magie. Il est possible de réagir rapidement et mettre en place des règles de détection dans le cadre de réponse aux incidents. Encore faut-il être proactif dans la détection des attaques.

Mimikatz et la mémoire de Windows

Benjamin Delpy

L’auteur de l’outil adoré des pentesters et détesté des RSSI (selon lui-même) vient présenter les capacités d’interaction en mémoire de mimikatz. Il s’appuie sur le fait que Windows stocke de nombreuses informations en mémoire et qu’il est possible d’en extraire tout un tas du moment qu’on a les bons privilèges, mais également de modifier le comportement d’un environnement Active Directory en manipulant les bonnes données.

Pour l’extraction d’informations, il n’est pas indispensable de travailler en direct sur un système. Il est tout à fait possible de créer des images de processus (minidumps) en passant par un outil de la suite SysInternals, l’API Windows ou des scripts PowerShell. Mais pourquoi s’arrêter là, quand on peut créer des fulldumps de la mémoire complète d’un poste ? Là encore, à l’aide d’outils Microsoft ou de DumpIt de MoonSols… ou de manières détournées : fichiers de mise en veille prolongée, snapshot de VM, etc.

Une fois la mémoire accessible, on peut y retrouver…

  • Les empreintes LM et NTLM
  • Les mots de passe en clair (enfin, chiffrés de manière réversible)
  • Les clés et tickets Kerberos TGT (représentent l’utilisateur) et TGS (permettent d’accéder à une ressource)

On ne revient pas sur les possibilités de faire du Pass-the-Hash à l’aide des empreintes LM/NTLM. Les clés Kerberos permettent d’obtenir un TGT auprès du serveur Kerberos, qui est ensuite utilisé pour obtenir des TGS. Il est aussi possible d’utiliser directement un TGT pour obtenir des TGS, ou encore les TGS pour obtenir des privilèges spécifiques.

La conférence se focalise ensuite sur les fonctionnalités plus récentes de mimikatz :

  • addsid altère le champ sIDHistory pour ajouter un SID à un compte, qui lui octroie les privilèges de ce dernier et reste discret : le compte manipulé n’apparaît pas comme membre des groupes associés aux privilèges du SID.
  • skeleton reproduit le comportement du malware Skeleton Key, en patchant Active Directory pour ajouter un mot de passe qui sera accepté pour s’authentifier avec n’importe quel compte utilisateur.
  • La DLL mimilib peut être enregistrée comme fournisseur ou gestionnaire de changement de mot de passe, et d’enregistrer les mots de passe entrés par les utilisateurs dans des fichiers de sortie.

En conclusion, la quantité d’informations présente en mémoire des systèmes d’un parc Active Directory fait qu’un attaquant parvenant à obtenir des privilèges élevés sur un nombre réduit d’éléments a toutes les chances de pouvoir obtenir des privilèges plus importants par rebond, jusqu’à la compromission du domaine. D’où l’importance de savoir répondre à la question « qui a des privilèges élevés et sur quels éléments du S.I. ? »… et de s’assurer que leur nombre soit réduit au maximum.

Investigation dans le DNS, pièges et solutions

Stéphane Bortzmeyer, AFNIC

Le but de la conférence est de présenter brièvement l’organisation autour de DNS afin de clarifier quels éléments pertinents sont à considérer dans un rapport d’investigation numérique.

En bref :

  • Les noms de domaine ont plusieurs composants (ex. foo.bar.tld). Tout TLD (Top Level Domain) est sous la responsabilité d’un organisme, mais la gestion de sous-domaines peut être déléguée à des tiers. La frontière de délégation n’est pas définie précisément, il n’y a pas de solution simple pour déterminer l’appartenance des composants.
  • En général, trois acteurs interviennent dans la gestion d’un nom de domaine. Le titulaire (registrant), le bureau d’enregistrement (registrar) et le registre (registry). Les serveurs DNS peuvent être gérés par le titulaire, le bureau d’enregistrement ou encore un hébergeur tiers.
  • Un registre peut être mince ou épais. Les registres épais stockent les informations sociales des clients dans une base de données interne, les registres minces délèguent le stockage de ces informations aux bureaux d’enregistrement.

La multitude d’acteurs présents implique la nécessité d’être précis sur les sources de données interrogées. De plus, les données pouvant évoluer rapidement dans le temps, il est nécessaire de systématiquement horodater les informations présentées.

Certains acteurs privés maintiennent également des bases de données Passive DNS et peuvent être sollicités dans le cadre d’investigations. Le principe est simple : il s’agit de collecter les informations liées à tout nom de domaine et suivre les changements effectués sur les enregistrements.

Internet Explorer 10 et 11 : un nouveau format de données pour de nouveaux défis

Jean Philippe Noat et Bruno Valentin, Uriel Expert

La conférence se penche sur la collecte et le traitement des données stockées par les dernières versions d’Internet Explorer.

Il est nécessaire de savoir comment traiter les informations, mais aussi où les trouver. Jusqu’à Internet Explorer 9, les informations étaient présentes dans les le fichier index.dat et le dossier Content.IE5. De plus, avec l’arrivée de l’UAC sous Vista, les instances du navigateur deviennent des processus d’intégrité faible et enregistrent certaines informations à des endroits particuliers du disque dur et de la base de registre. Les conférenciers soulignent également qu’à partir de Windows 8, chaque application possède un package, de multiples traces doivent donc être suivies.

Les versions 10 et 11 contiennent les données dans WebCacheV*.dat et certains fichiers .edb. A noter que le fichier .dat n’est pas actualisé en permanence, un tampon est maintenu dans un fichier séparé. Pour obtenir l’ensemble des informations, l’outil esentutl intégré à Windows peut être utilisé pour consolider la base de données. L’outil BrowsingHistoryView peut ensuite être utilisé pour extraire les informations.

FastResponder : outil open source pour détecter et comprendre des compromissions de grande ampleur

Sébastien Larinier, Sekoia

Le conférencier présente FastResponder, un outil développé en interne chez Sekoia. Constatant que l’investigation « traditionnelle » – à savoir éteindre, copier et analyser une machine compromise – n’est pas adaptée à tous les contextes, la conception de l’outil a été lancée avec un objectif simple : pouvoir effectuer rapidement l’acquisition de données et leur analyse.

Le principe de ce concept de fast forensics est de se concentrer sur les IOC. Ainsi, l’outil collecte l’ensemble des artefacts décrits par le SANS dans la formation FOR408, extrait en plus la MBR et la MFT, calcule les empreintes MD5/SHA-1 des  fichiers système et recherche des signatures YARA.

L’implémentation a été réalisée en Python, suivant une architecture modulaire pour simplifier l’ajout de définition d’artefacts. La version distribuée est compilée en un unique exécutable Windows pour faciliter son utilisation. Le choix des artefacts à analyser se fait à partir de profils de collecte spécifiés en ligne de commande ou par l’intermédiaire d’un fichier de configuration. Des fichiers plats (CSV) sont générés en sortie pour analyse.

Le projet est toujours en développement. L’inclusion de nouvelles données à collecter est prévue : RAM, cache DNS, historique des navigateurs, etc.  L’objectif est également de s’affranchir un maximum des API Windows afin de contourner les éventuelles fonctionnalités de dissimulation de malwares positionnant des hooks sur certaines fonctions des bibliothèques Windows.

Les sources sont librement accessibles sur le dépôt GitHub du projet.

Clôture

A l’issue des conférences, Eric Freyssinet revient sur l’estrade pour remercier l’ensemble des intervenants, participants, et EuraTechnologies qui a hébergé l’évènement. Il annonce qu’il y aura certainement une seconde édition de CoRIIN qui se déroulera éventuellement sur deux jours. Le rendez-vous est donné à Lille pour 2016. Contrairement à la Botconf, il n’est pas encore prévu de changer de ville pour chaque itération de la conférence.

Les supports de certaines conférences sont accessibles sur le site du CECyF.