Afin de répondre à plusieurs questions qui nous ont été soumises, nous avons passé un peu plus de temps sur la souche Underground présentée précédemment.
DeepEngine et dataset personnalisé
Ayant quelques soupçons de rapprochement avec la famille de ransomware IndustrialSpy, nous avons créé un dataset personnalisé dans GLIMPS Malware, composé de souches industrialSpy, auquel nous avons confronté la souche Underground.
Le module d’analyse Deep Engine retrouve alors quelques fonctions similaires entre les souches.
Après étude des fonctions se trouvant aux adresses relevées par le Deep Engine, il semble que ces match correspondent aux fonctions de chiffrement ainsi que d’auto-effacement des traces d’exécution.
Rétroconception
Headers et composition
Underground | Industrial Spy | |
---|---|---|
Hash | d4a847fa9c4c7130a[…]fc4b285a92666 | 8a5c7fff7a7a52dca[…]522984319d44d135a |
Magic | PE32+ executable (GUI) x86-64, for MS Windows | PE32+ executable (GUI) x86-64, for MS Windows |
Entrypoint | 0x000015F8 | 0x000015F8 |
Linker Version | 14.29 | 14.29 |
OS Version | 06.00 | 06.00 |
Time Date Stamp | Fri Jun 30 14:52:36 2023 (1688136756) | Sun Jun 5 13:00:25 2022 (1654434025) |
Machine Type | x8664 (IMAGE_FILE_MACHINE_AMD64) | x8664 (IMAGE_FILE_MACHINE_AMD64) |
Chacun des samples analysés emporte les sections suivantes :
Timeline d’exécution Underground
Lors de son exécution, ce ransomware effectue les actions dans l’ordre suivant :
1- Process tree
vssadmin delete shadows /all /quiet
Le classique des ransomwares, le delete shadow copies qui permet d’entraver les processus de récupération et de restauration qui reposent sur ces copies.
reg.exe add HKLM\\SOFTWARE\\Policies\\Microsoft\\WindowsNT\\Terminal Services / v MaxDisconnectionTime / t REG_DWORD / d 1209600000 / f
Cette action permet de modifier le paramètre de durée maximale de déconnexion pour une session de bureau distant.
net.exe stop MSSQLSERVER /f /m
Le malware utilise net.exe pour stopper les services MSSQL. Ainsi il a tout le loisir pour chiffrer les fichiers de base de données sans risquer d’erreur pour accès concurrent.
2- Environnement
Le ransomware instancie un nouveau thread lui permettant d’identifier son environnement d’exécution en s’appuyant sur des API de kernel32.dll : FindFirstVolumeW, GetVolumePathNamesForVolumeNameW, GetVolumeInformationW, FindNextVolumeW.
3- Ecriture de la ransom note
L’étape suivante est l’inscription de la note de rançon sous la forme d’un fichier !!readme!!.txt …
… qui apparaitra ainsi lors de l’exécution:
The Underground team welcomes you! We would like to inform that your network has been tested by us for vulnerabilities. Poor network security could cause your data to be lost forever. Your files are currently encrypted, they can be restored to their original state with a decryptor key that only we have. Attempting to recover data by your own efforts may result in data loss. We also examined your infrastructure and downloaded the most sensitive data. – 172.—.—.77 (N—0.tpa.local) The total amount of downloaded information more than 200 Gb If you do not contact us within 3 days, or we cannot reach an agreement, all data will be published Confidential data can be helpful for your competitors, enemies and darknet market hackers from over the world. We value and respect every business, including yours. We guarantee a fair and confidential deal in the shortest possible time. You can trust us! Reputation is important to everyone. Best regards, Underground team ! Contacts for communication via chat: |
4- Itération des fichiers à chiffrer
Ensuite, il passe à l’étape de chiffrement à proprement parler.
Il effectue une itération des fichiers à chiffrer par une boucle basée sur FindFirstFileW et FindNextFileW
Le chiffrement ne semble être effectué qu’à partir d’un tri préalable.
Une whitelist nommée VIPInfo.txt est prévue (probablement pour éviter de chiffrer certains fichiers sensibles qui nuiraient à la stabilité du système).
Fait notable, un certain nombre de répertoires, en liens avec les navigateurs web (microsoft, chrome, mozilla et opera) écartés du process de chiffrement.
Enfin, l’appel à l’api PathFindExtensionW nous indique que certaines extensions ne sont pas prises en compte par le process de chiffrement.
Une probable réflexion des attaquants : “Comment payer la rançon si le chiffrement a rendu le pc de la cible inutilisable ?!?”
5- Chiffrement des données
Nous voici au cœur du ransomware, la brique de base de chiffrement.
On y distingue aisément 3 blocs qui intègrent un même pattern (rotations de bits avec shl/shr ou rol, du xor …) assez caractéristique d’une implémentation cryptographique.
6- Effacement des traces d’exécution
Enfin, un fichier temp.cmd est créé et exécuté. Cette action constitue la fonction d’effacement des traces d’exécution.
L’exécution est faite via CreateProcessA permettant d’instancier un nouveau processus avec le même contexte d’exécution tout en libérant le fichier d’origine. Il peut donc maintenant effacer le ransomware (ou tout autre fichier placé en paramètre du script del %1) ainsi que lui même (del %0)
Une subtilité apparait dans la version Underground qui implémente une fonctionnalité supplémentaire basée sur l’utilitaire wevtutil.exe permettant d’effacer des EVTX (journaux d’évènements). Il itère sur l’option le qui va lui donner la liste des journaux en lien avec sa propre exécution et il va utiliser l’option cl pour tenter de les effacer.
temp.cmd InternalSpy :
:rep\r\n del %1 \r\n if not errorlevel 0 goto rep \r\n del %0\r\n
temp.cmd Underground :
@Echo off\r\n :rep\r\n del %1\r\n if not errorlevel 0 goto rep \r\n for /F \"tokens=*\" %%1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%%1\"\r\n del %0\r\n
Similitudes entre Underground et IndustrialSpy
La rétroconception confirme la similarité trouvée par notre module Deep Engine entre les briques suivantes :
– les algorithmes de chiffrement
– le procédé de bypass de certaines extensions de fichier
– la méthode d’auto-effacement des traces
Fonctions de chiffrement | |
---|---|
Underground | IndustrialSpy |
![]() | ![]() |
Fonction de recherche des extensions | |
---|---|
Underground | IndustrialSpy |
![]() | ![]() |
Création du temp.cmd | |
---|---|
Underground | IndustrialSpy |
![]() | ![]() |
Exécution du temp.cmd | |
---|---|
Underground | IndustrialSpy |
![]() | ![]() |
Eléments de contexte
IndustrialSpy fait son apparition en mars 2022.
Comme l’indique par ailleurs l’analyse effectuée par HarfangLab, la communication IndustrialSpy sur la vente des données volées, repose sur 3 sections dans leur market place.
– Section premium : l’archive de données est mise à prix fort et ne peux être téléchargée qu’une fois. Elle est ensuite supprimée de leur serveurs.
– Section générale : Si l’archive ne trouve pas preneur en premium elle est mise a prix plus faible et pour plusieurs acheteurs. Elle est par contre conservée par le groupe.
– Section Free : l’archive est publiée gratuitement et complètement.
Industrial spy est un ransomware qui semble avoir été distribué en 2 temps, d’abord une version debug avec les charges inactives permettant probablement aux attaquants de dimensionner l’impact, puis une version active.
A ce jour, la marketplace sur TOR n’est plus accessible, tout du moins sur l’adresse connue.
Hypothèse concernant la killchain Underground
Certains indices issus des différentes analyses ainsi que la lettre de rançon, qui comporte des indicateurs de la cible, nous mènent à penser que ce ransonmware est diffusé de manière ciblée, en tous cas en ce qui concerne sa charge finale.
Ainsi, nous pouvons émettre une hypothèse quand à sa méthode de diffusion dont le vecteur d’infection initial passe probablement par des emails.
En s’appuyant sur un procédé qui permet d’abaisser le niveau de vigilance de l’utilisateur (un document avec des macros ou autre par exemple), l’installation sur le poste client d’un outil de type RAT devient possible. Cela permet à l’attaquant d’effectuer l’environnement des ressources accessibles depuis ce poste. Une fois ces informations recueillies, les attaquants peuvent ensuite générer le ransomware sur mesure.
Conclusion
Notre primo analyse nous indiquait que nous étions bien face à un ransomware diffusé par le groupe Underground jusqu’à alors méconnu.
A l’aide des résultats de l’analyse approfondie, un rapprochement entre cette nouvelle famille Underground et IndustrialSpy est mis en lumière ; notamment sur le procédé de chiffrement ainsi que sur la méthode de déploiement d’un artéfact d’effacement de traces.
En outre nous sommes face a un groupe d’attaquants Underground qui utiliserait du code similaire à un ransomware existant et y a ajouté de nouvelles méthodes pour personnaliser sa charge finale ce qui en fait une forme de nouveau variant.
Il ne semble pas que le code source de IndustrialSpy ait fuité, ainsi nous pouvons nous poser la question suivante: ce groupe d’attaquants est-il constitué d’anciens membres de IndustrialSpy ou, ont-ils simplement profité d’une fuite du code source non identifiée ? Comme souvent en cybersécurité, nous ne pouvons que formuler des ensembles d’hypothèses, mais d’autres données (par exemple de télémétrie, d’informations sur les serveurs de C&C, etc…) pourront permettre d’orienter les conclusions vers l’une ou l’autre de ces options.
Annexes
Hash | Descriptif |
---|---|
d4a847fa9c4c7130a852a2e197b205493170a8b44426d9ec481fc4b285a92666 | ransomware Underground |
dfd6fa5eea999907c49f6be122fd9a078412eeb84f1696418903f2b369bec4e0 | ransomware IndustrialSpy |
d4a847fa9c4c7130a852a2e197b205493170a8b44426d9ec481fc4b285a92666 | ransomware IndustrialSpy debug Build |
Sources:
- https://www.harfanglab.io/articles-en/industrial-spy-ransomware-detected-by-harfanglab-edr
- https://www.zscaler.com/blogs/security-research/technical-analysis-industrial-spy-ransomware
N’hésitez pas à nous contacter pour en savoir plus : contact@glimps.re