Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Cybersécurité et Malwares
  3. Analyse de malware et Threat Intelligence
Extrait - Cybersécurité et Malwares Détection, analyse et Threat Intelligence (4e édition)
Extraits du livre
Cybersécurité et Malwares Détection, analyse et Threat Intelligence (4e édition)
2 avis
Revenir à la page d'achat du livre

Analyse de malware et Threat Intelligence

Introduction

Au fil des analyses de malwares et des incidents de cybersécurité, une nouvelle discipline s’est petit à petit constituée : la Threat Intelligence (« renseignement sur les menaces » en français). Cette discipline est basée sur la capitalisation des connaissances telles que les noms, et les différentes versions de malwares, les techniques qu’ils mettent en œuvre, les groupes d’attaquants qui les utilisent et auxquels ils sont attribués. Le premier rapport détaillant des malwares sous le prisme d’un groupe d’attaquants lié à un pays est « APT1 Exposing One of China’s Cyber Espionage Units » de la société Mandiant en 2013.

Ce rapport détaille les modes opératoires du groupe APT1 ainsi qu’un ensemble de traces laissées par ce groupe lors des intrusions. Ces traces sont nommées « indicateurs de compromission ». Les bases de la Threat Intelligence sont ainsi posées.

En plus de dix ans, cette discipline s’est étoffée. Ce chapitre va en faire un état de l’art.

La Threat Intelligence a donc pour but d’historiser, de documenter et de diffuser l’ensemble des informations sur les modes opératoires des groupes d’attaquants (cybercriminels ou acteurs liés à des États). Le but est de partager cette connaissance afin de détecter plus facilement les attaques, que ce soit par des équipes de SOC (Security Operation Center) ou lors de réponses sur incident (intervention d’une équipe lors d’une intrusion informatique pour comprendre l’attaque et la contrer).

L’analyse de malwares est une des sources de cette documentation. Lorsqu’un nouveau malware est analysé, les techniques...

Indicateurs de compromission (IOC)

Les indicateurs de compromission sont de deux types :

  • Les indicateurs de type système, qui sont laissés sur le système lors de l’exécution d’un malware.

  • Les indicateurs réseau, qui sont laissés par les malwares lorsqu’ils se connectent à leurs serveurs de contrôle ou lorsqu’ils pivotent dans le réseau interne de leurs victimes.

Empreintes et signatures de fichiers

Les premiers indicateurs système sont les empreintes des fichiers eux-mêmes. Elles sont de plusieurs natures :

  • Les empreintes cryptographiques, qui permettent d’identifier de manière unique un fichier.

  • Les empreintes qui permettent de faire la clusterisation de malwares.

  • Les empreintes liées aux objets ou aux traces que les malwares vont laisser sur le système.

Empreintes cryptographiques

Les empreintes cryptographiques sont des calculs de condensés permettant d’identifier de manière unique un fichier, quelle que soit sa nature. En effet, un nom de fichier peut être modifié, mais cela restera toujours le même fichier si son contenu n’a pas changé.

Les trois algorithmes de calcul de condensé les plus courants aujourd’hui sont md5, sha1 et sha256. Il est recommandé d’utiliser sha256.

Exemple de calcul du condensé sha256 du fichier military.exe (famille des ransomwares) :

images/07EP01N4.png

Son sha256 est : 1deb1efad2c469198aabbb618285e2229052273cf654ee5925c2540ded224402.

Pour calculer les condensés sha1 et md5, les commandes Linux sont sha1sum et md5sum. Si nous changeons le nom du fichier, les empreintes restent identiques :

images/07EP02N4.png

Les empreintes sont évidemment très instables. Si un octet est changé, l’empreinte change également.

À titre d’exemple, nous allons changer un octet dans l’en-tête...

Matrice du MITRE, TTPs et Threat Actors

Matrice du MITRE

Présentation

Le MITRE, organisme américain à but non lucratif, met à disposition une documentation sur les techniques utilisées par les malwares, par les outils et par les groupes d’attaquants, au sein de plusieurs matrices.

Cette documentation peut être mise à jour par toute personne souhaitant contribuer. Elle est disponible en ligne : https://attack.mitre.org

Il y a trois matrices disponibles représentant des environnements différents sur lesquels vont se jouer les attaques informatiques :

  • Enterprise pour les environnements bureautiques/SI d’entreprises

  • Mobile pour les smartphones

  • ICS pour les systèmes industriels

Nous allons présenter la matrice ATT&CK Enterprise, car elle est la plus utilisée et elle est également intégrée dans des outils comme MISP (cf. section MISP).

La matrice décrit une attaque selon plusieurs points de vue appelés tactiques :

  • Reconnaissance

  • Resource Development

  • Initial Access

  • Execution

  • Persistence

  • Privilege Escalation

  • Defense Evasion

  • Credential Access

  • Discovery

  • Lateral Movement

  • Collection

  • Command and Control

  • Exfiltration

  • Impact.

Pour chaque tactique, des techniques et sous-techniques sont décrites. Chaque technique a un ID, et chaque sous technique un sous-ID. Voici l’exemple de la technique pass-the-hash :

images/07EP11N4.png

L’ID est T1550.002. Il correspond à la sous-technique 002 de l’ID T1550. Nous pouvons voir dans la matrice à quoi correspond T1550 (Use Alternate Authentication Material) :

images/07EP12N4.png

Le site nous permet de voir les liens entre les techniques (ou sous-techniques) et les outils (qui peuvent être des malwares ou non). Il permet également de voir les liens entre les Intrusion Sets et les Threat Actors (cf. section Theat Actor et Intrusion Set).

Voici une capture de l’ensemble des techniques...

Règles et détections

Introduction

Les TTP servent à caractériser les groupes d’attaquants. Il est donc utile de pouvoir les détecter, car l’attaquant aura du mal à repartir de zéro.

La détection se fait donc sur ces TTP. Nous allons voir la détection réseau avec la sonde open source Suricata en expliquant comment créer des règles de détection. De la même manière, sur des fichiers, l’outil YARA permet de faire aussi bien de la détection que de l’identification et du suivi d’acteurs.

Suricata

Suricata

Suricata est une sonde de détection d’intrusions open source développée par l’OSIF (organisme de surveillance des instituts financiers). Son moteur de détection est basé sur des règles. Il peut être téléchargé ici : https://suricata.io/

Voici l’exemple d’une règle détectant du trafic DNS faisant une résolution du domaine olinaodi.com :

alert dns $HOME_NET any -> any any (msg:"ET MALWARE SunOrcal Reaver 
Domain Observed (olinaodi .com) in DNS Lookup";  
dns.query;  
content:"olinaodi.com";  
fast_pattern;  
nocase; endswith;  
classtype:trojan-activity; 
sid:2024989; rev:4;  
metadata:affected_product Windows_XP_Vista_7_8_10_Server_32_64_Bit, 
attack_target Client_Endpoint, created_at 2017_11_14, deployment 
Perimeter, former_category MALWARE, malware_family SunOrcal, 
malware_family Reaver, performance_impact Low, signature_severity 
Major, updated_at 2022_07_22;) 

Le format d’une règle est le suivant :

action protocol ip_source port_source ip_destination 
port_destination *( keyword: value; *) 

Dans le cadre de notre exemple, l’action est de générer une alerte qui sera inscrite dans le fichier...

Sources de données

Présentation

Il existe plusieurs sources de données disponibles sur Internet stockant des indicateurs de compromission. Ces plateformes permettent de lier entre eux et de suivre les TTP des groupes d’attaquants.

Il en existe de plusieurs sortes :

  • les scanners et crawlers,

  • les passives DNS,

  • les dépôts de malwares,

  • les sources regroupant toutes ces fonctions.

Pour l’ensemble des sources que nous allons présenter, il est possible de créer son compte pour pouvoir mener des investigations. Toutes les sources de données possèdent leurs API web avec des quotas de requêtes ou de résultats. Ces plateformes fournissent également leurs librairies Python ou un client en ligne de commande. Les investigations se font donc en sources ouvertes (OSINT - Open Source Intelligence).

Scanners

Définition

Ces plateformes scannent l’ensemble de l’adressage IPv4 sur différents ports et collectent plusieurs types de données.

  • les adresses IP,

  • les données de géolocalisation,

  • les services et les applicatifs accessibles avec leurs versions,

  • les certificats SSL,

  • différents types de hashes (mumurhash3/sha1/md5) des réponses des requêtes HTTP,

  • les noms de domaine,

  • les AS auxquels appartiennent les adressses IP.

Chaque scanner a son propre système de requêtes. Ces données vont nous permettre de suivre des infrastructures spécifiques et par là même les groupes d’attaquants. Si un attaquant utilise une configuration particulière de serveur web et qu’il a été scanné par ces services, il va être possible de trouver d’autres machines avec la même configuration.

Nous allons présenter trois services :

  • Shodan.io

  • Onyphe.io

  • Censys.io

Shodan.io

Le portail de Shodan est accessible via cette...

Plateformes de Threat Intelligence

Introduction

Plusieurs logiciels open source ont été développés dans le but de stocker, de manipuler et d’enrichir les données que nous avons présentées. Nous allons en présenter deux qui sont aujourd’hui parmi les plus utilisés :

  • MISP

  • Yeti

Nous allons passer en revue les différentes fonctionnalités des plateformes et surtout les particularités de chacune. Ce sont toutes des applications web installables sur un serveur ou utilisables dans un conteneur Docker.

MISP

Généralités

MISP est une plateforme multiutilisateur web développée en PHP, basée sur MariaDB avec de nombreux modules développés en Python. Elle est maintenue par le CIRCL (Computer Incident Response Center Luxembourg, en l’occurrence le CERT du Luxembourg) à l’adresse suivante : https://github.com/MISP/MISP. Les instructions d’installation sont disponibles sur GitHub : https://github.com/MISP/MISP/tree/2.4/INSTALL. Les modules en Python sont disponibles également sur le GitHub du projet : https://github.com/MISP/misp-modules. Des machines virtuelles sont disponibles pour s’entraîner ou faire des tests : https://vm.misp-project.org

Les instances MISP peuvent être reliées entre elles pour s’échanger les différentes informations.

Fonctionnalités

Les indicateurs sont regroupés par événement. Un analyste va créer un événement et lui associer des indicateurs. Les événements que l’utilisateur a le droit de voir se trouvent sur la page d’accueil :

images/07EP70N4.png

Pour accéder aux informations sur un événement, cliquez sur l’ID.

images/07EP71N4.png

Les indicateurs sont dans l’événement.

images/07EP72N4.png

Si un indicateur se trouve dans plusieurs...

Résumé

La Threat Intelligence est un domaine d’expertise à part entière et mériterait un ouvrage entier. Au fil des années, et des incidents de sécurité, les avancées dans ce domaine ont été réalisées et aujourd’hui nous avons de nombreux outils et de nombreuses documentations afin de structurer les données acquises lors de ces investigations. Les attaquants ont aussi progressé, rendant la Threat Intelligence nécessaire dans l’arsenal des défenseurs.

L’échange d’informations, telles que les indicateurs de compromission, est essentiel. L’histoire nous a montré que les attaquants utilisent souvent la même infrastructure (les mêmes adresses IP ou les mêmes noms de domaine) pour compromettre différentes cibles. Si ces cibles sont capables d’échanger ces indicateurs et d’agir activement en bloquant l’infrastructure de l’attaquant avant même qu’il puisse l’utiliser, cela imposera un coût supplémentaire (financier) aux attaquants.