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é :

Fig. 1 : aperçu du fichier

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 :

Fig. 2 : contenu de la cellule G122

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 :

Fig. 3 : exécution de la macro

Les cyber-attaquants ont préparé le document de telle sorte qu’Excel ne puisse pas afficher les macros :

Fig. 4 : macro illisible

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 :

Fig. 5 : portions de code des macros

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 :

Fig. 6 : écriture d’une formule dans le fichier Excel

Tandis que celle-ci vient lancer l’exécution de la formule :

Fig. 7 : lancement d’une formule

Ensuite, le maldoc lit la cellule G122, la déchiffre et génère une liste de formule :

Fig. 8 : formules générées

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 :

Fig. 9 : non-exécution d’une formule en italien

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 :

Fig. 10 : contenu brut des formules

Ci-dessous l’équivalent des formules en anglais et reconstruites pour être lisibles :

Fig. 11 : contenu des formules rendues plus lisibles

La suite de l’infection devient évidente :

  1. 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 » ;
  2. 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 :

Fig. 12 : détection par Breach Fighter

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 » :

Fig. 13 : configuration Breach Fighter sur SNS

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 :

Fig. 14 : log de blocage du fichier .excel par SES

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 :

Fig. 15 : log de blocage du .dll par SES

L’action est bloquée par SES qui attribue alors un haut niveau de risque de sécurité au processus hôte.

Fig. 16 : score attribué au fichier

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

Partager sur

[juiz_sps buttons="facebook, twitter, linkedin, mail"]
Notre équipe de Threat Intelligence remplit deux missions principales : étudier les menaces cyber pour les comprendre et améliorer en continu les protections des produits de Stormshield. Le tout, dans l’optique de contribuer à l’effort de la communauté de la cybersécurité pour faire face aux menaces cyber.
Vous avez un doute avant d’ouvrir la pièce-jointe dans le dernier email que vous avez reçu ? Breach Fighter, c’est aussi un portail gratuit de détection de malware dans vos fichiers douteux. Grâce à ce service de détonation dans le Cloud, contrôlez tous vos fichiers avant de les ouvrir.
À propos de l'auteur
mm
Sébastien Viou Directeur Cybersécurité Produits & Cyber-Évangeliste, Stormshield

Adepte des sports de combats (ju-jitsu, kick-boxing, hockey sur glace), Sébastien se passionne également pour la mécanique. La vraie, celle où on démonte et remonte toutes les pièces jusqu'à en comprendre tous les mécanismes. Un parallèle évident avec ses missions chez Stormshield, où il est en charge d'apporter un éclairage sur les évolutions, les innovations et les tendances sur les cyber-menaces du moment.