Indicateurs de compromission en tant qu’outils de réduction des risques

Les propriétaires d’infrastructures de technologie de l’information doivent rechercher à intervalles réguliers la présence éventuelle de composants malveillants dans leurs ressources. L’infection peut survenir, par exemple, suite à l’exploitation de vulnérabilités de type 0jour par des individus malintentionnés. Dans de tels cas, il se peut que les développeurs des solutions de protection mises en œuvre dans le système d’information ne soient pas au courant de la nouvelle menace. Les experts peuvent également enquêter sur les incidents liés aux nouvelles menaces. Et certains résultats de ces études peuvent être publiés.

Ces rapports possèdent une valeur pratique. Un rapport sur une campagne APT contient en général les informations suivantes:

  • Victimes de l’attaque et cibles poursuivies par les individus malintentionnés
  • Durée d’activité des composants malveillants
  • Liste des nœuds (adresses IP) des victimes
  • Activité en cours des composants malveillants et/ou des groupes de cybercriminels
  • Description détaillée des outils et des malwares utilisés par les individus malintentionnés
  • Description des infrastructures des centres de commande
  • Indicateurs de compromission (IOC, règles YARA, etc.)

Parmi les informations techniques détaillées relatives à une attaque APT quelconque destinées à l’administrateur du système de sécurité de l’information, les « indicateurs de compromission » présentent le plus grand intérêt pratique. Il s’agit d’un ensemble de données qui permettent à l’administrateur de l’infrastructure de technologie de l’information de détecter une activité malveillante dans le système et d’adopter les mesures qui s’imposent.

Comment les administrateurs de systèmes de l’information utilisent-ils ces indicateurs dans la pratique ? Nous allons tenter de répondre à cette question dans le cadre de cet article.

Un indicateur de compromission représente des informations structurées sur les indices d’activité malveillante qui seront importées dans les outils d’analyse automatique de l’infrastructure pour identifier des indices d’infection. Il n’existe pas encore de format unique de description de ces indicateurs, mais plusieurs types de données structurées sont reconnus et pris en charge par le secteur.

IOC

L’IOC ou indicateur de compromission est un ensemble de données sur les menaces (par exemple, lignes décrivant le chemin d’accès aux fichiers ou aux clés de registre) qui permet de déceler la présence d’une menace dans l’infrastructure grâce à l’analyse automatique à l’aide d’outils logiciels.

Les scénarios élémentaires d’utilisation des IOC impliquent la recherche de fichiers particuliers dans le système sur la base de différentes caractéristiques : hachage MD5, nom du fichier, date de création, taille et autres attributs. Il est possible également de rechercher divers attributs spécifiques dans la mémoire ou des enregistrements particuliers dans la base de registres du système d’opération Windows.

Plusieurs formats existent pour présenter ces données, par exemple OpenIOC. Ces formats permettent l’importation de données dans une solution de protection quelconque en vue de pouvoir utiliser ces indicateurs par la suite. L’administrateur peut intégrer les IOC tirés des rapports dans différentes solutions de protection:

  • Solutions de protection de la catégorie « Endpoint Security »
  • SIEM
  • IDS/IPS
  • HIDS/HIPS
  • Multiples outils d’enquête sur les incidents

Il existe plusieurs solutions commerciales qui permettent d’utiliser les IOC, mais dans de nombreux cas, leurs homologues « open source » suffisent pour rechercher les signes d’une infection dans un système cible. Par exemple, Loki est un scanneur IOC diffusé sous la licence GPL. Il permet de rechercher les signes d’une activité malveillante dans un système cible.

Afin d’analyser un système à l’aide du scanneur Loki , il suffit de décompacter l’archive à l’aide d’un utilitaire et d’ajouter les attributs IOC requis à la base de connaissances du scanneur. Le dossier « signature » de l’application contient les catégories IOC suivantes:

  • « filename-iocs »: fichier texte contenant la liste de différents attributs du système de fichiers qui résultent de l’activité d’une menace ou d’une autre;
  • « hash-iocs »: liste des hachages MD5, SHA1 et SHA256 des composants malveillants qui se trouvent dans le système après son infection;
  • « falsepositive-hashes »: liste des exclusions des hachages MD5, SHA1 et SHA256 qui, lors de la détection des composants correspondants sont considérés comme de « faux positifs » par le scanneur.

A titre d’exemple, nous pouvons reprendre notre rapport sur l’analyse de l’APT Carbanak. La page 36 dudit rapport contient la liste des hachages MD5 de tous les composants malveillants qui peuvent se retrouver dans le système après son infection. Ouvrons le fichier « hash-iocs » du scanneur et ajoutons-y la règle correspondante au format suivant: <MD5>;<description>.

Liste des hachages MD5 des composants de l’APT Carbanak dans le fichier « hash-iocs » du scanneur Loki.

Ensuite, créons l’indicateur au format suivant dans le fichier texte « filename-iocs » qui décrit les attributs des composants malveillants dans le système de fichiers:

# COMMENT

# REGULAREXPRESSION;SCORE

IOC pour le système de fichier dans la liste « filename-iocs » du scanneur Loki

Une fois que les indicateurs requis ont été ajoutés à la base de connaissances du scanneur, on peut lancer l’analyse du poste de travail. Pour ce faire, il faut lancer le fichier exécutable « loki.exe » sous les privilèges d’administrateur (dans le cas contraire, le scanneur ne pourra pas analyser le contenu de la mémoire vive à la recherche d’attributs) et attendre la fin de la procédure.

Processus d’analyse à l’aide de l’utilitaire Loki

A l’issue de l’analyse, l’application crée un rapport qui sera enregistré sous le nom « loki.txt » dans le répertoire de l’application.

Règles YARA

Outre les différents indicateurs IOC, les rapports peuvent être enrichis de fichiers portant l’extension « .yar ». Ces fichiers contiennent des règles pour YARA créées selon une syntaxe spéciale. Il s’agit d’un outil prévu pour identifier et classer les modèles malveillants. Ces règles YARA décrivent les signes de la présence d’une activité malveillante dans le système. Si une des règles est exécutée, le module d’analyse émet un verdict d’infection accompagné des détails correspondant (par exemple, nom de la menace).

Le scanneur Loki décrit ci-dessus prend également en charge les règles YARA. Autrement dit, les fichiers yar tirés des rapports peuvent être utilisés par l’administrateur en vue de rechercher la présence éventuelle de menaces dans le système dont traite le rapport. Il suffit pour ce faire de déplacer le fichier yar dans le dossier « signature » et de lancer l’analyse.

Toutefois, il est préférable d’utiliser les règles YARA à l’aide de l’outil officiel développé par les créateurs du projet YARA dans la mesure où sa base de données est actualisée régulièrement et elle est plus complète que les bases utilisées par des outils similaires. On obtient ainsi à l’issue de l’analyse une représentation plus précise du niveau de protection du système d’information et des informations plus complètes sur la présence d’un éventuel module malveillant dans celui-ci.

Pour lancer l’analyse sur le poste de travail, il suffit de lancer l’utilitaire YARA avec les paramètres requis. Par exemple:

yara32.exe –d md5= <MD5_hash><this_is_yara_rule.yar><dir_for_check>

où le paramètre « -d » permet de définir les variables externes. En cas d’une équivalence quelconque avec les conditions de la règle, l’utilitaire affiche une notification qui reprend le nom de la règle ainsi que le composant où elle s’est déclenchée.

Exemple de notification de déclenchement d’une règle YARA

L’administrateur peut lancer des analyses détaillées, par exemple au chargement du système. Il faut pour cela programmer un script PowerShell élémentaire qui lancera les utilitaires selon les paramètres requis et, le cas échéant, désignera le lancement pour tous les hôtes à l’aide d’Active Directory: User configuration -> Windows configuration -> Scenarios ->Logon.

STIX et JSON

Le Structured Threat Information Expression ou STIX est un langage unifié destiné à l’enregistrement structuré des informations relatives aux menaces et à leur importation dans les solutions logicielles. De nombreuses solutions de protection permettent l’importation des informations décrites au format STIX (ou JSON qui sera évoqué ci-dessus) en vue de leur utilisation dans l’infrastructure:

  • SIEM
  • Solutions de protection reposant sur des indicateurs (par exemple, scanneurs)
  • Plateformes d’analyse forensique
  • Solutions de catégorie « Endpoint Security » et autres

Il est possible d’importer un rapport STIX dans la célèbre solution SIEM IBM QRadar à l’aide d’un script python spécialement créé pour l’occasion:

./stix_import.py -f STIXDocument.xml -i 192.168.56.2 -t XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -r MyReferenceSet

Où « -f » désigne l’emplacement du document STIX local, « -i » détermine l’hôte doté de la console QRadar et « -t » détermine le token de service pour QRadar.

JSON est un des formats les plus utilisés dans le domaine de la présentation de données. Il est souvent utilisé dans les annexes aux rapports. L’application de données au format JSON dépend des tâches de l’administrateur et des particularités de la solution logicielle dans laquelle ces données ont été importées. Par exemple, si le fichier JSON contient les adresses IP des centres de commande contactés par les postes de travail infectés, l’administrateur de l’infrastructure de protection peut ajouter ces adresses IP à la liste noire de son pare-feu compatible avec les importations au format JSON. Si le pare-feu n’est pas compatible avec l’importation dans ce format, l’administrateur peut utiliser un analyseur quelconque (dispositif de traitement de fichiers JSON) en vue d’exporter la liste des adresses IP depuis le fichier et de les importer ensuite dans la liste noire du pare-feu.

La préparation est cruciale

Les indicateurs d’infection permettent d’appliquer efficacement les données relatives aux menaces: détection d’un programme malveillant et réaction efficace face à l’événement. Dans ce cas, ces indicateurs sont très souvent joints aux rapports sur les menaces que de nombreux acteurs lisent « en diagonal ». Même dans ce cas, si le document de l’analyse suivante ne contient pas de section spéciale « Indicators of Compromise », il sera toujours possible d’extraire les données utiles (informations relatives aux signes qui apparaissent dans le système infectés) indépendamment, de les organiser selon n’importe lequel des formats décrits ci-dessus et de les importer dans la solution de protection.

Nos recherches les plus récentes sur les indicateurs de compromission:

Wild Neutron – Economic espionage threat actor returns with new tricks

The Mystery of Duqu 2.0: a sophisticated cyberespionage actor returns

The Great Bank Robbery: the Carbanak APT

Icefog OpenIOC Release

Darkhotel Indicators of Compromise (PDF)

Crouching Yeti — Appendixes (PDF)

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *