Des attaquants ont utilisé un ensemble d'outils non documenté auparavant, nommé Cereal, pour collecter des courriels gouvernementaux sur des serveurs Microsoft Exchange au Kazakhstan et en Roumanie, dont des échanges roumains impliquant des adresses de l'OTAN et de l'UE. ESET Research a révélé ces résultats le 10 novembre. Le cabinet attribue Cereal au groupe d'espionnage Turla, proche de la Russie, avec un degré de confiance élevé.
ESET a identifié deux organisations gouvernementales nationales compromises. L'ensemble d'outils fonctionne au sein d'environnements Exchange déjà compromis, en combinant une collecte sélective de courriels, l'extraction d'identifiants et une reconnaissance interne. Une porte dérobée passive transforme le serveur Exchange exposé sur Internet de la victime en point de contrôle pour les opérateurs. ESET n'a observé aucune infrastructure externe de commande et de contrôle.
Les chercheurs ont trouvé Cereal pour la première fois dans une organisation gouvernementale kazakhe, le 28 novembre 2025. Après avoir affiné leurs détections, ils l'ont identifié dans une organisation gouvernementale roumaine compromise le 23 décembre 2025. En Roumanie, le composant de collecte des courriels était configuré pour cibler les messages envoyés à des adresses institutionnelles de l'OTAN et de l'UE, ou reçus de ces adresses.
Exchange devient le point de contrôle
CerealNeuron, la porte dérobée principale de l'ensemble d'outils, attend les requêtes web entrantes au lieu de contacter périodiquement un serveur contrôlé par l'attaquant. ESET l'a observée à l'écoute sur des chemins qui ressemblent à des services Exchange ordinaires :
https://*:443/owa/sdds/HTTPS://*:443/AUTODISCOVER/PROXYSERVICE/HTTPS://*:443/MICROSOFT-SERVER-ACTIVESYNC/INTEGRATED/API/
Lorsqu'une requête passe les contrôles d'intégrité, CerealNeuron déchiffre son contenu et exécute le programme de commandes qu'elle contient. Les requêtes qui échouent à la validation sont redirigées vers une page d'erreur Exchange d'apparence légitime. Les communications malveillantes se fondent ainsi dans le trafic d'Outlook Web Access, d'Autodiscover et d'ActiveSync, ce qui limite les possibilités d'identifier et de bloquer une infrastructure d'attaque distincte.
ESET n'a pas pu identifier les adresses IP d'entrée des opérateurs. Les chercheurs indiquent que les connexions auraient pu arriver directement, via des services d'anonymisation ou via d'autres machines compromises.
Une seconde porte dérobée, CerealHermit, supprime la fonctionnalité réseau. Elle lit des fichiers de commandes chiffrés sur le disque et y écrit les résultats chiffrés. Les deux portes dérobées ont été déployées ensemble dans certaines intrusions, offrant des canaux d'exécution indépendants. Le rapport de BleepingComputer décrivait Hermit comme un éventuel mécanisme de repli si le canal web de Neuron devenait indisponible.
De petits programmes exécutent les commandes une à une
CerealNeuron ne dispose d'aucun catalogue de commandes intégré. Les opérateurs livrent plutôt chaque tâche sous forme de programmes .NET compilés, encapsulés dans CerealRunner, qui transporte des binaires chiffrés et leurs arguments d'exécution. Les charges utiles s'exécutent en mémoire et renvoient leur sortie via CerealNeuron, qui chiffre les résultats avant de les renvoyer.
ESET a trouvé de nombreux binaires CerealRunner à la structure similaire dans les deux intrusions. Leurs tâches comprenaient la récupération de boîtes aux lettres ou de messages individuels via Exchange Web Services, l'interrogation d'Active Directory pour obtenir des ordinateurs, des utilisateurs, des groupes et des enregistrements DNS, et l'exécution de requêtes WMI pour énumérer les processus ou les connexions TCP actives.
D'autres commandes extrayaient les identifiants stockés localement via LSA Secrets, listaient les instantanés de volumes, et listaient, lisaient ou supprimaient des fichiers. Les opérations sur les fichiers impliquaient souvent des extractions de courriels préparées par CerealBox. Selon l'évaluation d'ESET, le volume de binaires presque identiques et propres à chaque tâche suggère fortement l'existence d'un framework interne de compilation et de packaging des commandes.
Plusieurs composants de soutien relient cette chaîne d'exécution. CerealLoader charge un assembly .NET depuis un fichier chiffré sur le disque. CerealSprinter ressemble à CerealRunner, mais se contente de charger et d'exécuter d'autres composants. CerealIron permet à des assemblies .NET de s'exécuter dans des processus non .NET, tandis que CerealMoth charge un assembly fourni en argument et invoque une méthode spécifiée.
Collecter le courrier sans perturber la distribution
CerealBox effectue la collecte automatisée des courriels. Injecté dans le processus EdgeTransport.exe d'Exchange, il détourne les gestionnaires d'agents de transport existants pour inspecter les messages, sans enregistrer de nouvel agent de transport ni perturber la distribution normale.
Les opérateurs l'ont configuré pour sélectionner les messages selon des critères d'expéditeur, de destinataire et d'objet, y compris les messages comportant des pièces jointes .DOC, .DOCX et .PDF. Le module de collecte peut ainsi mettre de côté la correspondance sélectionnée, tandis que les messages originaux poursuivent leur acheminement dans Exchange.
L'ensemble d'outils limite les fichiers reconnaissables sur le disque. CerealLoader est le seul composant stocké sous forme de fichier .NET reconnaissable et non chiffré. Les autres arrivent dans des conteneurs chiffrés, sont décompressés à l'exécution et s'exécutent depuis la mémoire. Selon ESET, cette conception vise un cyberespionnage discret et de longue durée.
CerealLoader complique aussi l'analyse. Il utilise la fonctionnalité Vtable Fixups de la spécification .NET pour exécuter du code natif avant que les instructions .NET ordinaires ne commencent, puis passe dans une méthode .NET qui semble non référencée. Un décompilateur peut donc afficher un point d'entrée apparemment inactif alors que la charge utile a déjà été exécutée.
Dans une chaîne d'exécution, le chargeur apparaissait sous le nom ncobjapi.dll dans C:\Windows\System32\wbem\, où le service Windows Management Instrumentation le chargeait automatiquement. Une autre chaîne utilisait wbemcomn.dll dans le même répertoire. La DLL malveillante redirige les appels de fonctions légitimes afin que le processus hôte continue de fonctionner.
Les opérateurs ont aussi placé des chargeurs malveillants dans le cache d'images natives .NET, sous des noms tels que Microsoft.Exchange.Search.Mdb.ni.dll. Lorsque Exchange demandait la bibliothèque correspondante, le runtime chargeait le fichier malveillant mis en cache et exécutait son point d'entrée natif, avant de recourir à la bibliothèque authentique pour les fonctions normales. Un échantillon ne s'activait que lorsque son processus parent était le service de recherche d'Exchange.
Attribution et pistes d'enquête
ESET fonde son attribution à Turla, avec un degré de confiance élevé, sur l'utilisation concomitante d'un autre composant publiquement lié au groupe et sur des similarités conceptuelles avec d'anciens logiciels malveillants de Turla. Le nom de CerealNeuron fait référence à Neuron, une famille fonctionnellement similaire, attribuée à Turla par le National Cyber Security Centre britannique en 2017.
Turla, également appelé Snake, Secret Blizzard ou Waterbug, opère depuis 2004 au moins et est largement considéré comme appartenant au Service fédéral de sécurité de Russie. Il cible couramment des gouvernements, des missions diplomatiques et des organisations de défense en Europe, en Asie centrale et au Moyen-Orient. La télémétrie d'ESET indique qu'environ 70 % des pays ciblés par Turla depuis 2022 étaient d'anciennes républiques soviétiques ou des pays européens qui furent autrefois étroitement alignés sur l'Union soviétique. ESET a également signalé une coopération entre Turla et Gamaredon en 2025.
Les chercheurs replacent le ciblage roumain dans le contexte d'incidents de drones russes signalés et d'appels à une mission de l'OTAN en mer Noire. Ils suggèrent que l'intrusion kazakhe pourrait offrir une visibilité sur des dissidents russes, dans un contexte de déportations signalées à partir de janvier 2026. Ce sont là des interprétations contextuelles d'ESET. ESET a aussi relevé une hausse de l'activité au Kazakhstan le 15 janvier 2026, juste après le Vieux Nouvel An.
Pour les défenseurs d'Exchange, ces résultats fournissent des pistes d'enquête concrètes : requêtes web entrantes, injection dans les processus de transport, DLL inhabituelles dans le répertoire WMI et entrées malveillantes dans le cache d'images natives. ESET a publié une liste complète d'indicateurs dans son dépôt GitHub et dans le livre blanc sur Turla, à utiliser lors des enquêtes.




