logo

Présentation

Salutations amis !

Le problème avec lequel notre client est venu à nous est un BlackMatter.

Ce problème a tourmenté le client à maintes reprises, ce qui l'a contraint à demander nos services d'audit de sécurité.

Dans cet article, nous fournirons une analyse technique du rançongiciel BlackMatter, en nous concentrant sur ses méthodes, ses bibliothèques et les techniques utilisées pour infecter et crypter les systèmes cibles.

BlackMatter est un ransomware qui a été vu pour la première fois en juillet 2021. Il est possible qu'il s'agisse d'un rebranding de DarkSide, un groupe de Ransomware-as-a-Service (RaaS) russophone basé en Europe de l'Est.

Le ransomware BlackMatter a été écrit en C++ et compilé pour la plateforme Win32. Comme d'autres variantes de ransomware, BlackMatter utilise le chiffrement pour empêcher l'accès aux fichiers de la victime, en demandant une rançon en échange de la clé de déchiffrement. BlackMatter utilise une combinaison de chiffrement symétrique et asymétrique pour chiffrer les fichiers. Le ransomware génère d'abord une clé aléatoire de 256 bits, qui est ensuite utilisée pour chiffrer les données de la victime. La clé est ensuite chiffée à l'aide d'une clé publique RSA, qui est unique à chaque victime. Cela garantit que seuls les attaquants possèdent la clé privée nécessaire pour déchiffrer les données.

Un aspect remarquable de BlackMatter est son utilisation de l'algorithme Salsa20 pour le chiffrement symétrique.

 

Analyse

Pour analyser le ransomware BlackMatter, nous avons utilisé plusieurs outils :

CFF Explorer a été utilisé pour l'analyse de fichiers et pour extraire les informations nécessaires du binaire.

IDA a été utilisé pour désassembler le code et analyser les fonctions, les variables et les chaînes utilisées dans le ransomware.

x64Dbg a été utilisé pour le débogage du binaire et pour comprendre le comportement d'exécution du ransomware. DIE a été utilisé pour détecter le packer utilisé dans le ransomware.

ProcessHacker a été utilisé pour surveiller les processus du système et l'activité réseau pendant l'analyse.

 

Explorons le fonctionnement de BlackMatter !

Avant de démarrer le moteur, BlackMatter effectue un travail préparatoire et, en cas de succès, commence le travail principal :

Au début, l'application BlackMatter charge des bibliothèques et récupère des adresses pour les API :

Comme vous pouvez le voir dans la liste des modules chargés, le crypteur utilise les modules bcrypt et ncrypt pour le chiffrement. Voici une liste des modules chargés :

BlackMatter utilise la technique de hachage d'API qui rend l'analyse des malwares un peu plus difficile en masquant les API Windows importées suspectes de la Table des adresses d'importation du Portable Executable. Vous pouvez trouver comment fonctionne la technique de hachage d'API ici : https://www.ired.team/offensive-security/defense-evasion/windows-api-hashing-in-malware

Avant de décrypter le hachage de l'API :

Après le décryptage du hash de l'API :

Le ransomware BlackMatter conserve les données dans une section compactée et chiffrée, et procède au décompactage et au déchiffrement au démarrage du programme. Ceci afin de rendre l'analyse plus difficile pour l'analyste de malware lors d'une analyse statique.

Décompresse et décode la fonction :

Processus de déballage :

Le ransomware ne peut pas fonctionner avec les pays de l'ex-URSS et la Syrie, car il a été développé par un groupe russophone basé en Europe de l'Est. Pour ce faire, ils effectuent une vérification linguistique.

Vérifications linguistiques :

Tableau des langues non prises en charge :

Le logiciel malveillant utilise l'API SHTestTokenMembership pour vérifier que l'utilisateur qui a démarré le processus est membre du groupe des administrateurs sur l'ordinateur.

Vérifie le jeton :

Prochaine étape, le malware vérifie la version du système d'exploitation.

Vérifie la version de l'OS :

Si les conditions ne sont pas remplies, l'application tentera d'obtenir les privilèges administratifs, via l'exploit COM. BlackMatter utilise la vulnérabilité dans le COM pour élever les privilèges, et masque également notre application en tant que DllHost.exe via le LdrEnumerateModulesCallback. Le changement de nom peut tromper le débogueur en lui faisant croire qu'un autre binaire est chargé, ce qui à son tour supprimera tous les points d'arrêt.

Essai d'acquisition des privilèges administrateur :

L'exploit COM pour acquérir les privilèges administrateur utilise l'interface COM et le COM Elevation Moniker :

Le ransomware déguise l'application en tant que DllHost.exe via le LdrEnumerateModulesCallback, qui à son tour passe en revue tous les modules pour lesquels le rappel est effectué. Et si l'adresse du module est la même que celle de notre processus, alors nous remplaçons le nom :

Preuve de concept pour renommer le nom :

Le logiciel malveillant génère une extension pour les fichiers, basée sur le Machine GUID, qui est stocké dans le “HKLMSoftwareMicrosoftCryptography”. Dans notre cas, nous avons obtenu l'extension : “KmyLfX2Lb” :

Ensuite, le crypteur va générer une extension pour le fichier README, et nous obtenons cette extension (« KmyLfX2Lb.README.txt ») sur la machine de test :

Le logiciel malveillant active tous les privilèges nécessaires. Liste des privilèges :

  • SeBackupPrivilege
  • SeCreatePagefilePrivilege
  • SeCreateSymbolicLinkPrivilege
  • SeDebugPrivilege
  • SeDelegateSessionUserImpersonatePrivilege
  • SeIncreaseBasePriorityPrivilege
  • SeIncreaseQuotaPrivilege
  • SeIncreaseWorkingSetPrivilege
  • SeLoadDriverPrivilege
  • SeManageVolumePrivilege
  • SeProfileSingleProcessPrivilege
  • SeRemoteShutdownPrivilege
  • SeRestorePrivilege
  • SeSecurityPrivilege
  • SeShutdownPrivilege
  • SeSystemEnvironmentPrivilege
  • SeSystemProfilePrivilege
  • SeSystemtimePrivilege
  • SeTakeOwnershipPrivilege
  • SeTimeZonePrivilege
  • SeUndockPrivilege

Active les privilèges :

Ensuite, le cryptor augmente la priorité pour le processus actuel, via l'API NtSetInformationProcess. Ce code définit la priorité du processus à une haute priorité CPU et une priorité I/O moyenne, ce qui peut améliorer la performance du processus sur un système multitâche en lui permettant d'utiliser plus de ressources CPU.

Augmenter la priorité du processus :

Si le cryptor ne dispose pas de droits suffisants, il injectera un shellcode dans svchost.exe, ce qui lui permettra d'augmenter ses droits.

Préparation avant injection :

Injecter du shellcode dans svchost.exe :

Ensuite, le logiciel malveillant configure l'état ES_CONTINUOUS | ES_SYSTEM_REQUIRED, afin de désactiver l'hibernation et la suspension des applications.

Change l'état d'exécution du thread :

Ensuite, le logiciel malveillant collecte et sauvegarde des informations sur les lecteurs au format JSON :

Ensuite, le malware arrête et supprime les services qui sont sur la liste noire. La liste est la même que celle utilisée dans le ransomware du groupe REvil, et elle inclut :

  • Vss
  • Sql
  • Svc$
  • Memtas
  • Mepocs
  • Sophos
  • Veeam
  • Sauvegarde
  • GxVss
  • GxBlr
  • GxFWD
  • GxCVD
  • GxCIMgr

Arrêtez et supprimez les services de la liste noire :

Ensuite, le logiciel malveillant arrête les processus qui figurent sur une liste noire. La liste est la même que celle utilisée par le ransomware du groupe REvil, et la liste noire comprend :

  • Sql
  • Oracle
  • Ocssd
  • Dbsnmp
  • Synctime
  • Agntsvc
  • Isqlplussvc
  • Xfssvccon
  • Mydesktopservice
  • Ocautoupds
  • Encsvc
  • Firefox
  • Tbirdconfig
  • Mydesktopqos
  • Ocomm
  • Dbeng50
  • Sqbcoreservice
  • Excel
  • Infopath
  • Msaccess
  • Mspub
  • Onenote
  • Outlook
  • Powerpoint
  • Steam
  • Thebat
  • Thunderbird
  • Visio
  • Winword
  • Wordpad
  • Notepad

Arrêtez les processus de la liste noire :

Le crypteur utilise l'algorithme Salsa20, pour chiffrer les fichiers :

 

Détection

Pour la protection ponctuelle contre cette menace, nous avons utilisé :

  • notre règle YARA pour détecter le rançongiciel BlackMatter

  • notre solution pour détecter l'activité BlackMatter

La détection basée sur le comportement peut être utilisée pour détecter les malwares chiffrés. Nous pouvons placer des hooks sur les API terminate process et stop service, pour détecter le BlackMatter. Il est également possible de suivre le travail avec le registre, l'exécution de l'exploit.

L'équipe SToFU recommande les étapes suivantes que les organisations peuvent prendre pour se protéger contre le ransomware BlackMatter et d'autres menaces similaires :

  1. Audits de sécurité : Menez régulièrement des audits de sécurité de votre réseau d'entreprise

  2. Sauvegardes : Assurez-vous que toutes les données importantes sont régulièrement sauvegardées et que les sauvegardes sont stockées hors ligne ou hors site pour les protéger d'une éventuelle cryptage par un rançongiciel.

  3. Maintenir les logiciels à jour : Mettez régulièrement à jour tous les logiciels et systèmes d'exploitation afin de corriger les vulnérabilités connues.

  4. Utiliser des solutions anti-malware : Implémentez des solutions anti-malware sur tous les systèmes pour détecter et prévenir les infections par des logiciels malveillants.

  5. Utiliser des contrôles d'accès : Restreignez l'accès aux systèmes et données sensibles uniquement aux personnes qui en ont besoin. Cela aide à limiter la propagation du rançongiciel en cas d'infection.

  6. Former les employés : Formez les employés à identifier et éviter les escroqueries de phishing, les emails suspects et les sites web malveillants.

  7. Avoir un plan : Développez et pratiquez un plan de réponse aux incidents pour répondre efficacement à une attaque par rançongiciel.

  8. Avoir un partenaire en cybersécurité compétent : Le partenaire vous aidera à garantir la sécurité du réseau et des machines d'entreprise, à enquêter sur les problèmes de sécurité existants, à proposer des solutions et à prévenir l'apparition de nouveaux problèmes de sécurité en temps opportun, là où c'est possible.

 

Coopération

Amis,

Pour toutes les questions de coopération dans le domaine du rétro-ingénierie, de l'analyse de fichiers malveillants, de l'audit de sécurité et de la cybersécurité des réseaux d'entreprise, vous pouvez nous contacter à : midgard@stofu.io

Nous sommes sincèrement heureux de coopérer et d'accueillir de nouveaux partenaires !