En bref

  • La campagne Contagious Interview (REF9403), attribuée à la Corée du Nord, dissimule le malware OtterCookie dans des fichiers SVG représentant des drapeaux nationaux — zéro détection antivirus au moment de la divulgation.
  • Les développeurs sont ciblés via de fausses offres d'emploi sur Slack, convaincus de cloner et d'exécuter un dépôt GitHub contenant un code fonctionnel mais piégé.
  • Le payload final combine un voleur de credentials/wallets crypto, un RAT Socket.IO, un voleur de fichiers et un voleur de presse-papiers en quatre étapes chaînées.

Des drapeaux SVG comme conteneurs invisibles pour un malware multi-étapes

Des chercheurs en sécurité d'Elastic Security Labs ont publié le 17 juillet 2026 l'analyse d'une campagne sophistiquée attribuée à des acteurs nord-coréens, opérant sous le nom de suivi REF9403 et appartenant à l'écosystème Contagious Interview. La caractéristique principale de cette campagne est l'utilisation de la stéganographie dans des fichiers SVG (Scalable Vector Graphics) pour dissimuler des payloads malveillants de manière à échapper à la détection automatique. Au moment de la divulgation publique, aucun des dépôts malveillants identifiés n'était signalé par les moteurs antivirus et les plateformes de threat intelligence, selon les données collectées sur VirusTotal.

La campagne a débuté en fin mai 2026. Un utilisateur se présentant sous le nom de Maxwell a diffusé des messages dans plusieurs canaux Slack techniques, cherchant un développeur expérimenté pour participer à la mise à niveau d'une plateforme e-commerce utilisant Next.js, NestJS, PostgreSQL et Auth.js — une stack parfaitement crédible et très demandée sur le marché. Les candidats intéressés étaient invités à poursuivre la conversation en messages directs, puis dirigés vers un test technique sous forme de dépôt GitHub à cloner, installer et évaluer. Ce type de mise en scène est caractéristique des campagnes de recrutement factice nord-coréennes documentées depuis 2022, mais le vecteur technique a considérablement évolué.

L'innovation technique clé réside dans le mécanisme de dissimulation des payloads. Les dépôts distribués contiennent du code parfaitement fonctionnel — une application e-commerce réelle qui compile et s'exécute sans erreur, renforçant la crédibilité du scénario. Cependant, dans le répertoire des assets de l'application se trouvent des images SVG représentant des drapeaux nationaux, des ressources visuelles anodines en apparence. Chacune de ces images contient, insérée dans des blocs de commentaires HTML à l'intérieur du code SVG, des fragments de données encodées en Base64. Aucun de ces fragments n'est exécutable de manière isolée — les payloads sont divisés et distribués entre plusieurs fichiers SVG, chaque fichier ne contenant qu'une portion du code malveillant.

Lorsque le développeur cible exécute la commande d'installation ou de démarrage du projet (npm install, npm run dev), un script de post-installation ou de démarrage reconstruit silencieusement les fragments Base64 depuis l'ensemble des fichiers SVG, assemble le payload complet, et l'exécute en mémoire. Cette technique de reconstruction en mémoire depuis des fichiers d'apparence inoffensive permet de contourner les solutions de détection statique et les scanners de dépôts qui analysent les fichiers individuels plutôt que les patterns d'assemblage dynamique. Un analyste humain qui inspecterait visuellement les fichiers SVG verrait simplement les images de drapeaux s'afficher correctement dans un navigateur.

Le payload final est structuré en quatre étapes chaînées, chacune avec une fonction distincte. La première étape cible les credentials du navigateur (mots de passe, cookies de session, tokens d'authentification stockés) ainsi que les wallets de cryptomonnaies (fichiers de configuration MetaMask, Phantom, et autres extensions de wallet populaires). La deuxième étape est un voleur de fichiers généraliste qui exfiltre des documents sensibles selon des critères de type de fichier et de contenu — en ciblant notamment les fichiers .env, les clés SSH, les tokens d'API et les fichiers de configuration de services cloud. La troisième étape déploie un RAT (Remote Access Trojan) basé sur Socket.IO, offrant aux opérateurs un accès interactif persistant à la machine compromise. La quatrième étape installe un voleur de presse-papiers, particulièrement utile pour intercepter les adresses de wallets crypto copiées-collées lors de transactions.

L'ensemble du payload s'aligne avec la famille de malware OtterCookie, documentée par plusieurs équipes de threat intelligence depuis 2024 dans le cadre des activités du groupe Lazarus/Contagious Interview. Ce groupe est connu pour son ciblage systématique des développeurs et des professionnels de la finance décentralisée (DeFi), avec pour objectif principal le vol de cryptomonnaies pour financer le programme nucléaire et balistique nord-coréen, selon les évaluations des agences de renseignement américaines, coréennes et européennes. Les estimations de la valeur totale volée par ces groupes depuis 2017 dépassent le milliard de dollars en cryptomonnaies.

La campagne REF9403 représente une évolution tactique significative par rapport aux itérations précédentes de Contagious Interview. Les versions antérieures dissimulaient les payloads dans des scripts npm malveillants (package.json postinstall), des fichiers de configuration Webpack, ou des dépendances trojanisées — des vecteurs désormais activement scrutés par les scanners de sécurité comme socket.dev et Snyk. Le recours à la stéganographie SVG illustre la capacité d'adaptation de ces acteurs, qui font évoluer leurs techniques à mesure que les défenses progressent.

Au moment de la publication de l'analyse d'Elastic Security Labs, l'organisation travaillait à la notification des plateformes hébergeant les dépôts identifiés et partageait les indicateurs de compromission (IoC) avec les partenaires de la communauté de threat intelligence. Les chercheurs ont également publié une règle YARA de détection ciblant le pattern de fragmentation Base64 dans les commentaires SVG, ainsi que des signatures Sigma pour détecter le comportement de reconstruction en mémoire dans les logs d'exécution Node.js.

Pourquoi ce vecteur représente une menace durable pour les développeurs

La technique de stéganographie SVG employée par REF9403 est particulièrement préoccupante parce qu'elle exploite des comportements légitimes et des ressources d'apparence anodine pour bypasser la quasi-totalité des couches de détection automatique. Les fichiers SVG sont des fichiers texte XML standards, omniprésents dans les applications web modernes, et les commentaires HTML sont des éléments syntaxiques valides dans ce format. Aucun scanner de fichiers ne peut distinguer a priori un commentaire SVG légitime d'un commentaire contenant du code malveillant encodé — la distinction ne devient possible qu'en analysant les patterns d'assemblage dynamique, un niveau d'analyse rarement implémenté dans les pipelines CI/CD classiques.

Le ciblage des développeurs via de faux tests techniques est un vecteur particulièrement efficace car il tire parti d'une pratique professionnelle normale et attendue : les développeurs exécutent régulièrement du code inconnu dans le cadre de leur activité quotidienne (évaluation de librairies, reproduction de bugs, contribution à des projets open source). La pression implicite d'un processus de recrutement — l'envie de faire bonne impression, le sentiment d'urgence, la concentration sur la qualité fonctionnelle du code plutôt que sur sa sécurité — crée des conditions cognitives défavorables à la vigilance sécurité. Les environnements de développement locaux disposent par ailleurs généralement de privilèges élevés et d'accès à des credentials sensibles (clés SSH, tokens AWS, wallets crypto), ce qui en fait des cibles particulièrement lucratives.

La stratégie nord-coréenne de ciblage des développeurs s'inscrit dans une logique géopolitique et économique cohérente. Les développeurs ont accès à des environnements cloud professionnels, à des dépôts de code source propriétaires, à des pipelines CI/CD, et souvent à des wallets crypto personnels — autant de ressources valorisables pour un État sous sanctions. La sophistication croissante des techniques (stéganographie, payloads multi-étapes, dépôts fonctionnels) témoigne d'une professionnalisation des opérations cyber nord-coréennes qui s'inscrivent maintenant dans des cycle d'innovation continus.

Pour les équipes sécurité, cet incident renforce la nécessité d'étendre les contrôles de sécurité au-delà du code source métier pour couvrir l'ensemble des assets d'un projet, y compris les ressources statiques (images, polices, données de configuration). Il illustre également les limites des approches de sécurité purement basées sur la réputation (whitelist de domaines, vérification des auteurs) : le dépôt malveillant présentait toutes les apparences de légitimité — code fonctionnel, README détaillé, historique de commits cohérent.

Ce qu'il faut retenir

  • Ne jamais exécuter de code reçu dans le cadre d'un processus de recrutement sans l'analyser préalablement dans un environnement isolé (sandbox, VM dédiée sans accès aux credentials de production).
  • Auditer systématiquement les fichiers d'assets (SVG, JSON, images) des dépôts tiers à la recherche de commentaires contenant des données encodées en Base64 — utiliser la règle YARA publiée par Elastic Security Labs.
  • Méfiance renforcée pour les recrutements initiés via Slack ou Discord avec des tests techniques impliquant du code Node.js/npm : vecteur de prédilection confirmé des campagnes Contagious Interview depuis 2022.

Comment détecter si un dépôt reçu lors d'un test technique est piégé ?

Avant d'exécuter quoi que ce soit, ouvrez chaque fichier SVG du projet dans un éditeur de texte et recherchez des blocs de commentaires HTML (balises <!-- -->) contenant de longues chaînes de caractères encodées en Base64 (reconnaissables à leur longueur anormale et au mélange de lettres majuscules/minuscules, chiffres, + et /). Inspectez également le fichier package.json à la recherche de scripts postinstall ou prestart inattendus. Exécutez le projet exclusivement dans une machine virtuelle isolée, sans accès à vos credentials réels, à vos wallets crypto ou à vos tokens cloud.

Besoin d'un accompagnement expert ?

Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA.

Prendre contact