Nos équipes de sécurité ont constaté courant septembre un pic d’attaques menées à l’aide du malware Ursnif. Les communications d’autres acteurs de la cybersécurité font état de plus de 2 000 sociétés italiennes, ciblées à travers une vingtaine de campagnes à ce jour. Retrouvez ici une analyse du dropper d’Ursnif et des protections Stormshield.
Le contexte de l'attaque
Aux origines de ce stealer, on retrouve le groupe TA544. Cet acteur cyber-criminel distribue des logiciels malveillants bancaires et d'autres malwares dans diverses régions (particulièrement en Allemagne, Espagne et Pologne – en plus de l’Italie). Le malware Ursnif est également connu sous le nom de Gozi et a pour objectif de dérober des informations bancaires sur les ordinateurs ciblés, comme par exemple des données de cartes de crédit. Ce malware n’en est pas à son coup d’essai, puisqu’il existe depuis 2007 et évolue depuis lors.
Dans ce document, nous vous proposons une analyse du dropper d’Ursnif et des protections Stormshield contre le dropper et le payload du malware.
Le vecteur initial de l'attaque
Comme bien trop souvent, à l’origine de l’infection nous retrouvons une campagne de phishing ciblée, couplée à de l’ingénierie sociale. Le but recherché est que des victimes téléchargent un document Excel, qui servira de programme d’installation et détonera le malware à proprement parler.
Nous le verrons par la suite : le document nécessite expressément une version italienne de Microsoft Office ainsi que des paramètres régionaux italiens.
Les détails techniques de l'attaque
A. Introduction
Le document initial est un document Excel au format 97/2003 nommé « 2021_DDT_0008606.xls » et portant l’empreinte numérique SHA-256 suivante « 14a748a512469ac740b93fda94f95dc9 051b2029621bbd72b431338d13448c4c ».
L’exécution de ce maldoc se fait en plusieurs étapes dont la dernière correspond au téléchargement du malware sous forme de fichier « .dll », qui se chargera de voler les informations bancaires.
Il est à noter que l’attaque est fortement ciblée et impossible à reproduire pour les postes non-italien, ce qui rend la détection par certaines solutions de sandboxing ou d’antivirus difficile. Par ailleurs, le serveur Web délivrant la seconde partie de l’attaque est en capacité de savoir qui se connecte et peut choisir de faire varier le contenu en fonction de l’adresse IP qui se présente à lui.
B. Ouverture du document (étape 1)
Le document Excel ne présente qu’une seule feuille, n’affiche pas le quadrillage et n’exécute pas de macro automatiquement. À première vue, le document présente une facture dont le niveau de zoom est très fortement diminué :
L’utilisateur lambda ne remarquera pas que la cellule G122 contient de longues informations textuelles écrites en blanc sur fond blanc. Pourtant, c’est là le point de démarrage du maldoc :
L’utilisateur aura pour réflexe de cliquer sur les informations visibles du document. Il s’agit d’une image et le clic est un déclencheur qui viendra exécuter une macro :
Les cyber-attaquants ont préparé le document de telle sorte qu’Excel ne puisse pas afficher les macros :
En effet, un document Excel contient à la fois les macros lisibles par un humain et un équivalent compilé pour exécution rapide. Ici, les attaquants ont volontairement corrompu la zone correspondant à ce qui serait lisible par un humain. De fait, Excel ne peut pas afficher le code des macros.
Fait intéressant : si le fichier venait à être enregistré sous un autre nom, dans la mesure où le code des macros n’a pas été modifié, Excel va simplement copier les blocs de données « en l’état » dans le nouveau document, c’est-à-dire en conservant la corruption.
C. Extraction du code malveillant (étape 2)
L’extraction du code des macros compilé laisse apparaitre plusieurs fonctions de brouillage du code VBA, mais surtout deux fonctions utilisées pour déchiffrer le texte de la cellule G122 :
Le code utilise d’autres fonctions qui travaillent dans une feuille spéciale de type macro pour Excel 4.0. Celle-ci se charge d’écrire des fonctions de macro Excel 4.0 dans une cellule :
Tandis que celle-ci vient lancer l’exécution de la formule :
Ensuite, le maldoc lit la cellule G122, la déchiffre et génère une liste de formule :
C’est ici que les choses deviennent intéressantes : Excel a la particularité de faire varier le nom des formules avec la langue utilisée sur l’ordinateur. Ainsi, à moins de disposer d’une installation MS Office italienne, l’exécution du maldoc s’arrêtera ici pour raison d’appel à fonction non existante dans une autre langue :
D. Exécution des formules (étape 3)
La suite est plutôt simple : exécuter les formules de macro Excel 4.0 une à une. Les données sont encore brouillées mais il ressort des éléments :
Ci-dessous l’équivalent des formules en anglais et reconstruites pour être lisibles :
La suite de l’infection devient évidente :
- Utiliser une librairie présente dans Windows « urlmon.dll » puis appeler la fonction « URLDownloadToFileA » pour télécharger un fichier depuis une URL externe et l’enregistrer dans un fichier local. Les attaquants savent que le fichier délivré sera un fichier « .dll » ;
- Utiliser l’utilitaire Windows « regsrv32.exe » pour charger le fichier « .dll » malveillant et lancer son exécution.
À ce moment-là, le payload de type ransomware ou stealer (dans le cas d’Ursnif) est chargé et exécuté avec les droits de Microsoft Excel. Le poste de la victime est alors corrompu.
E. IoC
- URL C&C: https://FLasHgRan[.]Com
- Hash du fichier maldoc 14a748a512469ac740b93fda94f95dc9 051b2029621bbd72b431338d13448c4c
- Hash du Payload (Dll) : 0c1d347f614bcd43d9628debcc924b3c3276e5fb2ff9307aeeeef2a7920ace25
Les moyens de protection Stormshield
A. Stormshield Network Security
Cette attaque étant basée sur des fichiers .excel et des .dll, SNS peut protéger grâce à la solution de sandboxing disponible dans la licence Premium Security Pack, Breach Fighter. Le premier fichier est ainsi transmis à nos serveurs d’analyse et classifié comme dangereux :
La première détection de cette version du dropper sur nos serveurs a eu lieu fin septembre. Le firewall SNS bloque alors les fichiers suivants chez tous nos clients, tandis que le « patient zéro » devra être traité suite au log d’alerte transmis par le firewall. La configuration de Breach Fighter doit être en « suspect » :
Afin que l’analyse soit réalisée sur les flux mail et les flux web, le mode proxy doit être activé avec le déchiffrement SSL pour les flux chiffrés.
Indice de confiance de la protection proposée par Stormshield
Indice de confiance de l’absence de faux positif
B. Stormshield Endpoint Security
Dans cette attaque, il existe deux fichiers : le maldoc « 14a748a512469ac740b93fda94f95dc9051b2029621bbd72b431338d13448c4c » et le malware Ursnif « 0c1d347f614bcd43d9628debcc924b3c3276e5fb2ff9307aeeeef2a7920ace25 ».
Ce paragraphe montre comment la solution SES réagit en présence de ces deux fichiers, avec la protection par défaut présente dans la version 2.1.x.
1. Réaction de SES lors de l’exécution du maldoc
S’agissant d’une exécution normale d’un fichier Excel, la solution SES laisse bien le document s’ouvrir et déchiffrer ses informations. Par contre, au moment de la tentative de chargement du fichier « .dll » téléchargé, un blocage apparait :
SES réussit bien à isoler et bloquer le comportement malveillant du maldoc et protéger le poste de l’utilisateur et sa société.
2. Réaction de SES lors du chargement du malware
Techniquement, la chaîne de l’attaque est terminée plus haut. Mais pour être exhaustif, SES protège également l’utilisateur lors du démarrage du fichier « .dll » malveillant :
L’action est bloquée par SES qui attribue alors un haut niveau de risque de sécurité au processus hôte.
3. Conclusion
La solution SES a réussi à bloquer les actions malveillantes sans nécessiter de protection complémentaire, la politique par défaut apportant déjà la protection souhaitée contre l’acteur TA544 et son malware.
Indice de confiance de la protection proposée par Stormshield
Indice de confiance de l’absence de faux positif