Attaque sur la supply chain logicielle

Hong J.,Okou A.,SAUVAGE N.

← Attaque sur la supply chain logicielle · La confiance empoisonnée / Malware.vsix / Les empreintes système / KeePass.exe

KeePass.exe

Analyse d’un binaire compromis et de ses mécanismes d’exfiltration.

Vous avez désormais identifié le rôle joué par l’extension VS Code non validée dans la compromission du produit final déployé chez les clients, et ACME Solutions vous en félicite.

Il vous reste toutefois à expliquer précisément le fonctionnement de l’application compromise.

Pour cette dernière étape, vous ne disposez plus que du binaire suspect tel qu’il a été déployé chez les clients d’ACME Solutions.

Mobilisez une dernière fois vos compétences d’auditeur afin de comprendre comment l’application permet l’exfiltration des identifiants utilisateurs tout en échappant aux mécanismes de détection du système.

Cote 95 pts

Indices

Listez toutes les requêtes DNS d'exfiltration, séparées par des points-virgules. L'ordre n'a pas d'importance et les espaces ne sont pas tolérés. Voici les données à utiliser: url= https://thisisawebsitethatisverylong.com/ username= Th1s_1s_A_SuP3r_Sr0ng_Us3rnaMe_anD_V3rry_LonG mdp= E7B12E7A779AFA54138C8F472E8BD070F1199DDC6CC3808D7FAC5FE38B99F5F2
Pensez à inspecter les appels aux API Windows qui peuvent : - Interroger l'état du processus ou de l'environnement (débogueur, machine virtuelle…) - Rechercher la présence d'applications ou fenêtres spécifiques - Interagir avec le système de fichiers de manière détournée - Déclencher des résolutions DNS pour exfiltration Ces catégories d'appels sont souvent exploitées par le malware pour se protéger et exfiltrer les données.
PE Bear est un outil d'analyse de format de fichier rapide et sécurisé
dnSPy est un désassembleur et débogeur adéquat
API Monitor v2 permet de surveiller en temps réel les appels aux API
Wireshark (...)

Faire son rapport

Cochez toutes les options pertinentes.
!! Voir l'astuce gratuite !!

Exercice 4 – Analyse du binaire suspect « KeePass » – Walkthrough

Introduction

Nous allons réaliser un reverse engineering d’un exécutable malveillant se faisant passer pour KeePass. Ce dernier semble avoir été conçu pour exfiltrer des mots de passe de manière discrète. L’analyse présentera les différentes étapes de l’investigation, les outils employés et les conclusions tirées à chaque phase.


Inspection statique initiale via PE-Bear

Pour commencer, nous utilisons PE-Bear, un outil spécialisé dans l’analyse du format des fichiers Portable Exécutable (PE). PE-Bear est léger, rapide et permet de visualiser les en-têtes du fichier sans l’exécuter, ce qui est essentiel en présence de malwares potentiels.

Dans l’inspection du binaire, nous constatons que celui-ci cible le framework .NET.

Détection du framework .NET

Ouverture et inspection avec dnSpy

Nous poursuivons avec dnSpy, un outil permettant de désassembler et de déboguer les assemblages .NET. Il est idéal pour visualiser et modifier le code IL (Intermediate Language) et C#.

Rapidement, nous remarquons que l’assembleur est fortement offusqué. Cela complique l’analyse, car les noms de classes, méthodes et variables sont brouillés.

Binaire partiellement brouillé

Malgré l’offuscation , en explorant les métadonnées, nous parvenons à extraire des informations importantes comme la version du framework utilisé : .NET Framework 4.8.

Informations sur la version du framework

De plus, nous identifions que l’offuscation a été réalisée avec ConfuserEx v1.0.0, un outil open-source très connu pour rendre les binaires .NET difficiles à analyser.

Nom de l’outil de brouillage identifié

Passage à l’analyse dynamique avec API Monitor

Face à l’offuscation avancée, l’analyse statique devient moins efficace. Nous basculons alors vers une approche dynamique.

Pour cela, nous utilisons API Monitor v2, un outil capable d’intercepter et de surveiller en temps réel tous les appels aux API Windows effectués par un processus. API Monitor est particulièrement utile pour découvrir des comportements suspects sans avoir besoin d’accéder au code source ou de réussir à lever l’offuscation du binaire.

Méthodologie : Nous lançons API Monitor et attachons la surveillance au processus KeePass.exe. En parallèle, nous interagissons avec l’application, notamment en essayant d’afficher un mot de passe pour déclencher un comportement.

Pendant cette interaction, nous observons les appels API pour détecter toute activité anormale.

En surveillant l’application lors de l’affichage d’un mot de passe, nous détectons l’utilisation de certaines APIs sensibles.

Premier déclencheur détecté

Deuxième déclencheur détecté

L’appel à IsDebuggerPresent, une API classique pour détecter la présence d’un débogueur, est observé.

Appel à IsDebuggerPresent

De même pour CheckRemoteDebuggerPresent, une autre API pour détecter un débogage distant.

Appel à CheckRemoteDebuggerPresent

Ces vérifications trahissent la volonté du malware de se protéger contre l’analyse.

Techniques supplémentaires de détection de sandbox/debugger

Nous observons aussi des appels à FindWindowA pour rechercher la présence de logiciels de débogage tels que OllyDbg, x64dbg, IDA et WinDbg. Cela confirme l’intégration de techniques anti-analyse.

Détection via FindWindow

En complément, l’appel à GetTickCount64 est une technique supplémentaire pour déterminer si l’ordinateur a été allumé récemment.

Utilisation de GetTickCount

En analysant ces méthodes, nous comprenons que même avec des contournements classiques de sandbox/débogueur, il est possible que d’autres techniques de détection soient mises en œuvre, comme l’analyse des drivers ou de caractéristiques matérielles propres à des environnements virtuels et donc qu’il ne faudra pas passer par une VM.

Exfiltration observée via Wireshark

Après avoir satisfait toutes les conditions de «non-détection» du malware, nous observons alors un comportement réseau suspect.

Avec Wireshark, nous capturons des requêtes DNS étranges. Le malware utilise l’API CreateFile pour provoquer des résolutions DNS, déclenchées par Windows lui-même. Cette technique permet de masquer l’exfiltration, car aucun trafic TCP/IP direct n’est initié par l’application.

Synthèse finale de l'analyse dynamique

Les informations sensibles (ex. mots de passe) sont encodées directement dans les sous domaines DNS envoyés.

Conclusion

Ce malware, déguisé en KeePass, déploie une stratégie sophistiquée pour éviter toute détection :

  • Offuscation lourde à l’aide de ConfuserEx pour retarder l’analyse statique.
  • Détection de débogueur avec IsDebuggerPresent, CheckRemoteDebuggerPresent et autre.
  • Détection de sandbox/VM
  • Exfiltration par canal DNS discret via CreateFile.

La détection et l’analyse ont été possibles grâce à une approche combinée d’analyse statique et dynamique, l’utilisation d’outils adaptés (PE-Bear, dnSpy, API Monitor v2, Wireshark) et une bonne compréhension des mécaniques internes des malwares modernes.