SecurityInsider
Le blog des experts sécurité Wavestone

CERTitude : outil de détection de compromission large échelle du CERT-Solucom



CERTitude : quels usages ?

Lors de la Conférence sur la réponse aux incidents & l’investigation numérique (CORIIN) organisée à Lille par le Cecyf en janvier dernier, le CERT-Solucom a présenté un outil de forensic français et s’inscrivant dans la stratégie de diffusion de marqueurs / indicateurs de compromission (IOC) de l’ANSSI.
En intervention de réponse à incident, les équipes du CERT-Solucom sont fréquemment confrontées au besoin d’évaluer le périmètre de compromission du système d’information victime. L’enjeu est d’évaluer de la manière la plus précise possible l’étendue de l’attaque sur le SI.
Par ailleurs, au travers de sa stratégie de diffusion de marqueurs / indicateurs de compromission (IOC), l’ANSSI peut demander la réalisation de campagnes de recherche aux entreprises. Cependant, aujourd’hui peu d’outils permettent de mener ce type de campagne, et l’ANSSI ne propose pas encore de méthodologie pour les réaliser.
Face à ces constats, le CERT-Solucom a alors entrepris la conception d’un outil permettant de mener des campagnes de recherche et d’évaluer le périmètre de compromission d’un SI. Cet outil, baptisé CERTitude, s’appuie sur des IOC fournis en entrée pour effectuer un scan de l’ensemble du parc serveurs et postes de travail à la recherche de ces IOC.
Malgré de nombreuses contraintes à traiter (de la compatibilité à tous les systèmes Windows aux impacts sur les performances, en passant par la non-divulgation des IOC recherchés sur les périmètres a minima Diffusion Restreinte), CERTitude acquiert petit à petit la capacité de rechercher de plus en plus de type d’IOC différents, le tout sans nécessiter d’agent à déployer sur les postes et serveurs à scanner

Fonctionnement de CERTitude

Le fonctionnement interne de CERTitude a déjà été détaillé à plusieurs reprises, que ce soit à la CORIIN [1], ou encore dans la dernière lettre du CERT-Solucom [2].
Pour résumer, CERTitude s’appuie sur des IOC définis au format OpenIOC. Il établit une connexion sur les différentes cibles à scanner au travers d’un portage de PsExec en Python (une option permet d’établir un tunnel IPSec avec les postes scannés pour se protéger des interceptions réseaux). CERTitude réalise ensuite la collecte dans des bases de données locales sqlite les informations nécessaires à l’analyse sur la base des types d’IOC à rechercher (registres, fichiers, processus, services, etc.). Une analyse de la présence des indicateurs unitaires au sein des éléments collectés est effectuée :
  • soit par un requêtage depuis le poste d’analyse sur l’ensemble des bases de données construites localement sur les cibles,
  • soit par un rapatriement des bases locales au sein du poste d’analyse, puis le requêtage en local directement sur le poste d’analyse (dans le cadre d’un besoin de non divulgation des IOC recherchés).

Enfin, CERTitude restitue les résultats des analyses :
  • par l’évaluation de la logique du format OpenIOC (les « OR » et les « AND »),
  • par la représentation de l’identification d’un indicateur.



Il est ainsi possible de rechercher plusieurs types d’indicateurs via CERTitude :

Évolutions à venir

CERTitude s’enrichit petit à petit de modules de collecte et d’analyse de nouveaux indicateurs.
Depuis la première release en Janvier 2015, un moteur d’orchestration est venu compléter CERTitude pour lui offrir une capacité de déclenchement de scan « à la volée », alimenté par d’autres sources que le simple fichier de configuration du scanner.
Également, des scripts de récupération et d’assainissement des IOC issus d’instances MISP [3] ont été développés. Ces derniers permettent de récupérer un ensemble d’IOC selon un critère donné (par exemple le nom d’un malware ou d’une campagne d’attaque) puis de les filtrer pour en extraire uniquement les IOC pouvant être recherchés par CERTitude.
Enfin, de nouvelles fonctionnalités sont inscrites à la roadmap, en particulier les suivantes sont déjà en développement :

Logs checker 

Il s’agit d’un module de recherche d’IOC particuliers (nom de domaine, adresse IP, nom de fichier, etc.) dans des logs.
Cette fonctionnalité s’appuie en particulier sur les briques technologies Elasticsearch et Logstash. La pile ELK n’est pas complétée par Kibana car l’objectif n’est pas de reproduire un outil de log management, mais de doter CERTitude de capacité d’analyse de logs. En effet, par ce biais il est possible d’identifier rapidement des actifs sur lesquels il est nécessaire d’effectuer un scan CERTitude plus en profondeur.

Deep analyzer

Ce module s’appuie sur l’analyse mémoire pour identifier des éléments suspects sans avoir d’indicateurs précis à rechercher (par exemple, des pages mémoires en écriture / exécution).

Network discovery 

Il s’agit d’une fonctionnalité de scan permettant de cartographier le réseau. L’objectif de ce module est d’enrichir les données issues des scans des postes de travail et serveur.

L’ensemble de ces modules sera progressivement publié en open-source sur le github du CERT-Solucom [4].
N'hésitez pas à tester cet outil et nous faire part de vos remarques ou suggestions : cert@solucom.fr !


Vincent NGUYEN

Aucun commentaire:

Enregistrer un commentaire