Présentation du malware
KREMLIN est une campagne de logiciels bancaires détectée depuis mai 2025. Le groupe utilise des leurres imitant une douzaine de banques brésiliennes pour inciter les victimes à exécuter un fichier JavaScript déguisé en document bancaire. Ce fichier déclenche un chargeur multi‑étapes qui ne poursuit l’infection que si aucune sandbox ou machine virtuelle n’est détectée. Le chargeur télécharge ensuite un installateur C++ qui s’appuie sur le binaire légitime SentinelMemoryScanner.exe de SentinelOne pour réaliser du DLL sideloading, masquant ainsi le composant principal SentinelAgentCore.dll.
Architecture et mécanismes d’infection
Le processus d’infection comporte quatre phases distinctes : création d’une tâche planifiée pour la persistance, récupération d’un contrat intelligent Ethereum servant de dead‑drop, téléchargement des charges utiles depuis les URL indiquées par le contrat, puis exécution du troisième stade. Le contrat intelligent, introduit le 19 mai 2026, fournit deux domaines – volmira.site et zaviro.online – dont le premier renvoie la version (1.0.0) et l’ID (ndpbidppejfanjbhfgjlohfanbfbklff) de l’extension Chrome. Si l’extension n’est pas déjà présente ou si la version locale diffère, le chargeur récupère un fichier ZIP contenant l’extension.
Contournement des protections Chromium
Pour installer l’extension, KREMLIN exploite les techniques connues sous les noms de Phantom Extension et GhostChrome‑X. Le malware modifie le fichier Secure Preferences afin d’activer le mode développeur et de falsifier l’objet JSON protection.macs avec des métadonnées inventées, contournant ainsi le mécanisme d’intégrité natif. Un extrait typique du fichier altéré ressemble à :
{
"protection.macs": {
"ndpbidppejfanjbhfgjlohfanbfbklff": ""
}
}
Cette manipulation permet l’enregistrement de l’extension sans déclencher d’alerte. Une fois installée, l’extension ouvre un canal WebSocket vers le serveur C2 luizestrelhashapr.online:443 et interroge périodiquement un endpoint /google_api/ sous forme de requêtes CSS. Chaque fichier CSS correspond à une commande précise : 108766d0.css pour exfiltrer cookies et stockage, 41f7b187.css pour lister les onglets, b83fa72d.css pour l’historique, etc.
Analyse des risques et contre‑mesures
Le vecteur d’exfiltration couvre les cookies, le sessionStorage, le localStorage, les captures d’écran et le code HTML complet des pages actives. Le malware crée également un identifiant unique stocké dans le navigateur, facilitant le suivi des victimes. Les contrôles d’évasion basés sur le nombre de CPU (minimum 2) et la RAM (maximum 3 GB) limitent l’efficacité des sandbox classiques. La dépendance à un contrat Ethereum rend la neutralisation du serveur C2 plus complexe, car les adresses peuvent être mises à jour dynamiquement. Pour atténuer la menace, les organisations doivent surveiller les modifications du fichier Secure Preferences, restreindre l’installation d’extensions hors du Chrome Web Store, désactiver le mode développeur via des politiques de groupe, et bloquer les résolutions DNS vers les domaines associés. L’inspection du trafic WebSocket et des requêtes CSS inhabituelles peut également révéler une activité de collecte.