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 !
Aucun commentaire:
Publier un commentaire