Résumé
OPSWAT a identifié une vaste campagne d'infection, probablement motivée par des raisons financières, utilisant de faux logiciels d'intelligence artificielle comme appât pour le téléchargement d'une famille de logiciels malveillants nouvellement découverte, que nous avons baptisée "JavaSquid", en raison de ses multiples parties JavaScript évasives et trompeuses.
Sur la base de notre surveillance grâce aux capacités de MetaDefender Sandbox , nous avons évalué que la campagne se poursuit et qu'elle a commencé vers la mi-juillet 2024. Les acteurs de la menace associés à cette campagne ont déjà mené des attaques réussies au cours desquelles ils ont volé des certificats numériques à différentes entreprises chinoises.
Outre la découverte d'une nouvelle famille de logiciels malveillants et d'une campagne en cours, les résultats de cette recherche et de cette surveillance ont permis d'améliorer les capacités des caractéristiques/indicateurs de notre site Sandbox. En outre, notre enquête fournit suffisamment d'informations pour mettre en œuvre une instance complète d'un modèle de diamant d'analyse d'intrusion avec les IOC (indicateurs de compromission) fournis et les correspondances ATT&CK spécifiques de MITRE à partir des rapports MetaDefender Sandbox .
Découvrir la campagne
OPSWAT Sandbox Threat Research a découvert une campagne d'infection qui utilise un logiciel d'IA comme appât, mais qui n'utilise pas réellement l'IA dans ses attaques ou ses logiciels malveillants. L'enquête a commencé lorsque nous avons observé le domaine suspect, https[://]my-profai[.]com. Bien que le domaine semble avoir été supprimé, il a été enregistré le 2024-09-05, ce qui signifie que la campagne a été lancée très récemment et qu'elle est probablement toujours en cours, d'après les informations recueillies au cours de notre enquête.
D'après le titre de leur site web, "Epivaravomw : Bringing Your Static Images to Life", il semble qu'ils proposent un outil basé sur l'intelligence artificielle pour ajouter du mouvement aux images, ce qui indique une attaque potentielle de type "watering hole", qui exploite également la publicité malveillante sur d'autres sites web pour amener les utilisateurs à télécharger le logiciel malveillant. Cependant, il s'agit probablement d'une usurpation d'identité de https://proai.co, car l'exécutable Windows disponible au téléchargement est nommé ProAI.exe, qui est l'échantillon de logiciel malveillant que nous allons analyser.
De telles techniques de compromission initiale indiquent que les acteurs de la menace à l'origine de la campagne recherchent des infections opportunistes et agissent donc probablement avec une motivation financière, potentiellement en tant qu'IAB (Initial Access Broker, courtier d'accès initial). D'après la localisation des échantillons soumis, il est très probable que la cible de la campagne soit principalement l'Europe.
Le domaine "watering hole" utilisé pour tromper les victimes et diffuser les logiciels malveillants est protégé par Cloudflare. Cependant, l'échantillon de logiciel malveillant contactera un domaine différent qui se résout en une adresse IP qui est également pointée par de nombreux autres domaines. Un grand nombre de domaines différents pointant vers la même adresse IP semblent également être liés au leurre de la technologie de l'IA et à l'usurpation de l'identité d'autres entreprises.
Il est intéressant de noter que nos recherches OSINT ont indiqué que l'adresse IP C2 était précédemment liée aux voleurs Lumma et Poseidon. Alors que le voleur Lumma était apparemment basé sur l'ancien voleur Mars, Poseidon est une famille de logiciels malveillants découverte très récemment et écrite en AppleScript, ciblant donc les environnements iOS. Le fait que cette nouvelle famille soit écrite en JavaScript pourrait indiquer que l'acteur de la menace à l'origine de l'activité pourrait passer à un langage de script qui pourrait être utilisé dans différents environnements. Un autre aspect à souligner est le fait que l'adresse IP appartient à un FAI chinois (Chang Way Technologies Co. Limited) alors que l'hôte est géolocalisé dans la Fédération de Russie.
L'échantillon initial du logiciel malveillant avait une signature numérique valide au moment où nous l'avons analysé pour la première fois (9 novembre 2024), émise par une société chinoise "Taigu Fulong Electronic Tech Co., Ltd". Cependant, nous avons observé que, pendant notre enquête, cette signature avait déjà été révoquée.
En recherchant des échantillons similaires à l'aide de notre moteur de rechercheSandbox , nous avons trouvé un ensemble d'échantillons de la même famille utilisant le même certificat numérique probablement volé, mais aussi deux nouveaux ensembles d'échantillons. L'un de ces ensembles ne comportait pas de signature numérique, tandis que l'autre utilisait un certificat numérique différent. Tous les échantillons suivaient les mêmes modèles et techniques consistant à prétendre être un outil utilitaire légitime en se basant sur leurs différents noms (ai_Generation.exe, sweethome3d.exe, Installer_capcut_pro_x64.exe...).
D'après nos conclusions, cette campagne a commencé vers la mi-juillet et se poursuit actuellement puisque nous continuons à observer de nouveaux échantillons de la famille jusqu'à la dernière semaine d'octobre 2024. En outre, alors que le certificat de l'échantillon initial a été révoqué au cours de notre enquête, l'autre certificat découvert dans l'ensemble différent est toujours valide et a été émis au début du mois de septembre, ce qui pourrait indiquer que l'émetteur est peut-être compromis et qu'il n'était pas au courant jusqu'à ce que nous le contactions pour lui signaler que son certificat était utilisé dans des logiciels malveillants.
Comprendre les logiciels malveillants
Bien que Metadefender Sandbox signale de nombreuses capacités de l'EP original et de ses étapes ultérieures, comme nous l'expliquons plus loin, à l'heure où nous écrivons ces lignes, l'échantillon initial du logiciel malveillant n'est toujours pas détecté par la plupart des fournisseurs d'antivirus.
Le PE est un logiciel malveillant JavaScript compilé, qui utilise l'outil pkg pour transformer le code JavaScript en un PE Windows. Le JavaScript compilé semble être en augmentation dans le paysage des menaces, comme l'ont récemment signalé d'autres chercheurs. L'outil mentionné intègre une charge utile JavaScript dans un PE Windows en incorporant un interpréteur Node JS/V8 avec la possibilité de compiler le code en bytecode V8, incorporant ainsi dans le PE soit le code en clair, soit un bytecode compilé JavaScript. L'extraction de la version en clair est triviale dans la plupart des cas, mais Metadefender Sandbox peut extraire le code compilé sous forme de JSC (JavaScript Compiled file) et le désassembler en vue d'une analyse ultérieure.
La charge utile JavaScript contient la charge utile pertinente codée en base64, la décode et l'exécute à l'aide de la fonction eval. Cette charge utile décodée commence par effectuer une vérification rapide de la taille de la mémoire vive, probablement pour éviter de l'exécuter dans des environnements d'analyse. Alors que de nombreux bacs à sable traditionnels ne passeraient pas cette vérification, Metadefender Sandbox effectue une analyse plus approfondie de l'ensemble du code JavaScript, ce qui permet de déclencher des indicateurs pertinents.
Lorsque la vérification est réussie, l'exemple exécute une requête HTTP vers l'URL d'un événement du calendrier Google, qui stocke dans sa description une seconde URL au format base64.
L'URL décodée pointe vers un domaine contrôlé par l'attaquant, qui envoie une nouvelle charge utile base64 après la requête correspondante. Lors du décodage de la nouvelle charge utile JavaScript, celle-ci est également exécutée immédiatement à l'aide de la fonction eval. Ce code JavaScript supplémentaire décrypte et exécute une couche supplémentaire de charge utile codée en dur à l'aide d'un chiffrement AES.
Il est intéressant de noter que les clés IV et AES sont obtenues à partir des en-têtes de réponse de la dernière requête HTTP, dont nous avons observé qu'ils sont différents à chaque requête, ce qui signifie que la charge utile et les en-têtes servis sont créés dynamiquement à chaque requête vers le C2 pour être déchiffrés avec des clés différentes. En outre, la charge utile décryptée semble toujours être la même, mais avec un obscurcissement différent, ce qui révèle que non seulement le cryptage mais aussi l'obscurcissement se produisent dynamiquement à chaque demande. Cette technique pourrait non seulement entraver l'analyse médico-légale en cas d'incident ou la recherche sur les menaces, mais aussi échapper aux détections basées sur les signatures puisque l'obscurcissement est différent à chaque demande.
Ce nouveau module décrypté est fortement obfusqué et apporte de nombreuses fonctionnalités supplémentaires à l'échantillon en ajoutant le code de bibliothèques supplémentaires, principalement pour traiter les opérations de fichiers et les fonctionnalités de zip à l'aide du module adm. En outre, il dépose différents fichiers dans différents sous-répertoires %appdata%\Local, en utilisant un nommage aléatoire.
L'un des fichiers déposés est un script PowerShell nommé run.ps1, qui contient le code permettant d'installer le programme d'installation MSI de NodeJS afin de lancer ultérieurement la charge utile JavaScript finale à l'aide de NodeJS installé, au lieu de la charge utile JavaScript compilée initiale.
À ce stade, l'exécution déclenche un message d'erreur pour l'utilisateur sous la forme d'une fenêtre contextuelle, susceptible d'amener la victime à penser que le "logiciel d'IA" attendu (ProAI.exe) ne peut pas fonctionner sur son système, détournant ainsi son attention de l'infection JavaSquid en cours. Cette dernière charge utile JavaScript téléchargera également un dernier fichier JavaScript en utilisant le même mécanisme de contact avec les calendriers de Google, puis en contactant leur domaine contrôlé à l'aide des en-têtes de réponse HTTP pour décrypter la charge utile finalement servie. Cette fois, la charge utile finale sera enregistrée sous le nom d'index.js dans un répertoire au nom aléatoire situé dans le répertoire %appdata%/Romaing.
Le fichier run.ps1 précédent sera ensuite remplacé par un autre script PowerShell portant le même nom et immédiatement exécuté. Comme le montre la capture d'écran, ce script sert uniquement à obtenir une persistance sur la machine, alors que le code principal du programme malveillant a été écrit dans index.js.
Fichiers supplémentaires déposés par le logiciel malveillant :
- VeqVMR.zip (nom généré aléatoirement) : Téléchargé depuis le même C2. Il ne contient qu'un programme d'installation de notepad (npp.8.6.6.Installer.exe) apparemment sans impact sur le comportement général.
- bypass.ps1 : utilisé pour exécuter le fichier run.ps1 mentionné précédemment, tout en contournant la restriction d'exécution des scripts powershell.
- NiOihmgUci.msi (nom généré aléatoirement) : programme d'installation de nodejs, récupéré sur son site officiel.
- Update.lnk : Déposé dans le dossier de démarrage, il pointe vers le script PowerShell run.ps1.
Comme indiqué, la charge utile finale est enregistrée sur la machine de la victime sous la forme d'un fichier index.js. Elle est également fortement obscurcie et chiffrée dynamiquement à chaque requête, en suivant le même flux que celui décrit précédemment pour la charge utile de l'étape intermédiaire (calendrier Google, URL base64, déchiffrement de la charge utile). Cependant, comme il s'agit de la dernière étape de la chaîne d'infection JavaSquid, les clés de décryptage sont écrites dans le script lui-même, ce qui a permis à Metadefender Sandbox d'identifier, d'extraire et de décrypter la charge utile finale en vue d'une analyse approfondie.
Il est intéressant de noter que l'index.js actuellement utilisé est passé à différentes versions qui comprennent une mise en œuvre améliorée et des caractéristiques légèrement différentes. Cela confirme l'hypothèse selon laquelle la campagne est toujours en cours, la charge utile finale JavaSquid étant toujours en cours de développement. Le fichier a toujours été servi sous la forme d'une ligne JavaScript avec une charge utile intermédiaire codée en base64, contenant des clés codées en dur pour le décryptage AES. Comme le montre la capture d'écran précédente, la charge utile finale est décryptée et exécutée, ce qui met en évidence la chaîne de la charge utile dans l'analyse du fichier index.js.
La charge utile initiale servie met en œuvre sa communication avec C2 par le biais du protocole websocket. Il analyse les messages du C2 au format json à la recherche de l'élément "command", qui doit être reçu au format base64. Cependant, la dernière charge utile servie avait une fonctionnalité similaire mais utilisait des requêtes HTTP pour ses communications avec le C2. En outre, bien que cette famille reste une porte dérobée très basique, nous avons observé que le dernier code JavaSquid utilisé comprenait de nouvelles fonctionnalités de collecte et de vol d'informations.
CIO
999abd365022c5d83dd2db4c0739511a7ac38bcd9e3aa19056d62d3f5c29ca30
Aec44665395d4ae7064ea08d6d03b729464715d2169c629f3e3215d61c1299ea
b216880a67fc2e502ae94928aead75ef870fbb7ba142f7eda355d9ed6e72146d
chackopanikulamskykat@gmail.com
kendalllopez149@gmail.com
45.93[.]20.174
ambisecperu[.]com
angelswipe [.]com
nenkinseido[.]com
hxxps://calendar.app[.]google/X97t5bVooB2ti1QB8
hxxps://calendar.app[.]google/pPGGk4W26WW7oJxN7
hxxps://calendar.app[.]google/fD8MeHaN46bfYy3SA
hxxps://ambisecperu[.]com/a74Uxj9QjqWbeKr2SYOHsw%3D%3D
hxxps://ambisecperu[.]com/lBdvVW3MiQgpwRGAl5KNwg%3D%3D
hxxps://ambisecperu[.]com/o2BF9EGgskwn0k5Cwo7kugjt7xChBPSnghiJkDU7MwQ%3D
wss://ambisecperu[.]com/ss_ss?uuid=L07nKQ%2FEG1qQXwzQ1Tv3vqduOgfze7Yz3Ry%2FrXnr8WY%3D
hxxp://angelswipe[.]com?uuid=1sdtM0o5b35Uhe6wp9nM5UMMZ8BNrbYwtT1LAvW4rRA%3D
hxxps://nenkinseido[.]com/a3vNlpuRk6O5S469pG17Gw%3D%3D
hxxps://nenkinseido[.]com/YMvBag0VXbce5q0WvNrMRg%3D%3D
9A:84:A9:7F:AC:26:DF:5C:8A:74:FB:E6:88:0A:0B:5D:A5:17:08:DC
BB:F9:86:55:F4:D4:ED:39:6F:BC:A9:5F:4A:F8:ED:4E:B0:19:50:A9
Différents domaines pointant vers la même adresse IP, qui n'ont pas été utilisés par les échantillons analysés, mais qui semblent également être liés à la création de faux sites web liés à l'IA :
agattiairport[.]com
aimodel[.]itez-kz[.]com
akool[.]cleartrip[.]voyage
akool[.]techdom[.]click
akordiyondersi[.]com
albanianvibes[.]com
albert[.]alcokz[.]store
albert[.]flora-kz[.]store
apkportion[.]com
asd[.]leboncoin-fr[.]eu
basgitardersi[.]com
bendiregitimi[.]com
bybit[.]travel-watch[.]org
cap[.]cleartrip[.]voyage
dipo[.]cleartrip[.]voyage
face[.]techdom[.]click
facetwo[.]techdom[.]click
ftp[.]millikanrams[.]com
haiper[.]techdom[.]click
haiper[.]travel-watch[.]org
havoc[.]travel-watch[.]org
l[.]apple-kz[.]store
liama[.]cleartrip[.]voyage
loader[.]waltkz[.]com
locktgold[.]travel-watch[.]org
luminarblack[.]techdom[.]click
millikanrams[.]com
openaai[.]clear-trip-ae[.]com
proai[.]travel-watch[.]org
sweethome[.]travel-watch[.]org
synthesia[.]flow-kz[.]store
synthesia[.]techdom[.]click
uizard[.]flow-kz[.]store
upscayl[.]cleartrip[.]voyage
Pour en savoir plus sur la façon dont les solutions de sandbox de nouvelle génération et d'analyse adaptative des logiciels malveillants de OPSWATdonnent aux entreprises un avantage décisif dans la lutte contre les logiciels malveillants complexes et évasifs, adressez-vous à un expert.