PROMPTFLUX - Le malware qui demande à Gemini comment échapper aux antivirus
Bon vous savez tous comment marche votre antivirus. Il détecte un malware, il le bloque, et tout revient à la normale.
Mais si je vous disais que maintenant, c’est parfaitement possible qu’une heure plus tard le même malware se repointe, sauf que c’est plus le même, parce que son code a changé. Car entre temps, il a demandé à Google Gemini de le réécrire…
Bien c’est pas de la science-fiction, hein, c’est ce que décrit un rapport du Google Threat Intelligence Group (GTIG) qui nous présente une nouvelle génération de malwares qui intègrent des LLM directement dans leur exécution.
Plus de génération statique du code, c’est le malware lui-même qui appelle une API LLM pendant qu’il tourne, demande des modifications, se réécrit, et repart faire sa besogne.
Les deux exemples les plus marquants s’appellent PROMPTFLUX et PROMPTSTEAL .
PROMPTFLUX, c’est un dropper en VBScript qui appelle l’API Gemini pour obfusquer son propre code. Il se réécrit dans la base de registre Windows pour persister au reboot, puis demande à Gemini de générer de nouvelles variantes d’obfuscation. Son module interne s’appelle “Thinking Robot” et il interroge Gemini régulièrement du genre “Comment contourner l’antivirus X ? Propose des variantes de mon code pour éviter la signature Y.”
Gemini lui répond, le malware applique le conseil, se modifie, et se relance.
Comme les antivirus détectent les malwares par signatures ou comportements connus, si le malware change toutes les heures, les signatures deviennent immédiatement obsolètes. L’antivirus a alors toujours un coup de retard. Et PROMPTFLUX n’a même pas besoin d’un serveur C2 pour télécharger de nouvelles variantes puisqu’il génère ses propres variantes localement en demandant à Gemini.
GTIG estime que PROMPTFLUX est encore en développement et les échantillons analysés ne montrent pas de capacité réelle à compromettre un réseau. Mais ça reste une preuve de concept active… En gros, quelqu’un, quelque part teste cette approche.
PROMPTSTEAL, lui par contre, est déjà opérationnel. GTIG l’attribue à APT28 (FROZENLAKE), un groupe lié au renseignement militaire russe (GRU). Le CERT-UA l’a documenté sous le nom LAMEHUG en juillet dernier et c’est la première observation d’un malware qui interroge un LLM en opération réelle.
PROMPTSTEAL de son côté est écrit en Python. Il utilise l’API Hugging Face pour accéder au modèle Qwen2.5-Coder-32B-Instruct . Le malware envoie des prompts encodés en Base64, genre “récupère les infos système” ou “trouve les documents sensibles” et le LLM génère des commandes Windows d’une ligne qui sont ensuite exécutées localement par le malware. Ensuite ce dernier collecte les données et les exfiltre tranquillement.
L’astuce donc, c’est que le malware ne contient plus de commandes en dur. Il les génère à la volée selon le contexte comme ça, si l’environnement change, il demande de nouvelles commandes adaptées. Plus de pattern fixe à détecter et chaque exécution est différente.
GTIG mentionne aussi d’autres exemples tels que FRUITSHELL, un reverse shell PowerShell public qui contient des prompts pour contourner les protections LLM ou encore PROMPTLOCK, un concept de ransomware en Go qui utilise un LLM pour générer des scripts Lua de chiffrement.
Il y a aussi QUIETVAULT, un voleur de tokens JavaScript qui cible GitHub et NPM, puis exfiltre les résultats via des repos publics.
Tous ces malwares partagent la même idée : intégrer un LLM dans la chaîne d’exécution. Génération, obfuscation, commandes dynamiques, recherche de secrets… Le LLM devient un composant actif du malware !
Le rapport décrit aussi comment les attaquants contournent les protections des LLM à base d’ingénierie sociale dans les prompts. L’attaquant se fait passer le plus souvent pour un étudiant en sécurité, un participant à un CTF, ou encore un chercheur parfaitement légitime. Le LLM, configuré pour aider, répond alors à toutes les demandes.
Dans un cas documenté par GTIG, une tentative a mal tourné pour les attaquants. On le sait car dans les logs de leurs échanges avec le LLM, GTIG a trouvé des domaines C2 et des clés de chiffrement en clair. Les attaquants avaient oublié de nettoyer leurs tests et c’est grâce à ça que GTIG a récupéré l’accès à leur infrastructure puis l’a neutralisée.
Le rapport liste aussi les groupes étatiques actifs comme UNC1069 (MASAN) , lié à la Corée du Nord, qui utilise les LLM pour générer des deepfakes et voler des cryptoactifs. Ou encore UNC4899 (PUKCHONG) , aussi nord-coréen, qui emploie les modèles pour développer des exploits et planifier des attaques sur les supply chains.
De son côté, APT41 , un groupe étatique chinois, s’en sert pour obfusquer du code. Et le groupe iranien APT42 , a même tenté de construire un agent SQL qui traduirait des requêtes en langage naturel vers des commandes d’extraction de données sensibles. GTIG les a bloqué en coupant les comptes qu’ils utilisaient.
Et sur le marché noire, ce genre d’outils et de services multi-fonctions ont le vent en poupe. Génération de campagne de phishing, création de deepfakes, génération automatique de malwares, abonnements avec accès API…etc.
Leur modèle commercial copie celui des services légitimes avec une version gratuite basique pour gouter et un abonnement payant pour les fonctions avancées, avec des communautés Discord pour le support. Ça permet d’abaisser la barrière d’entrée pour les attaquants les moins expérimentés.
Côté défense maintenant, les recommandations sont assez classiques. Pensez à surveiller l’activité anormale des clés API qui pourraient être volées. Détectez les appels inhabituels à des services LLM externes depuis les processus. Contrôlez l’intégrité des exécutables et protégez tout ce qui est “secrets” sur les hôtes.
N’oubliez pas non plus de ne jamais, ô grand jamais, exécuter aveuglément des commandes générées par un modèle IA (je vous l’ai assez répété).
Voilà, tous ces exemples actuels sont expérimentaux mais le signal est donné et il est plutôt limpide : l’IA est en train de rendre les malwares plus virulents en leur permettant de s’adapter !
![]()
