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) :
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 :
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 :
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) :
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 :
Pour accéder aux informations sur un événement, cliquez sur l’ID.
Les indicateurs sont dans l’événement.
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.