Le 22 avril 2026, l’équipe de recherche Mosyle a publié l’analyse de deux malwares jusqu’alors inconnus : Phoenix Worm et ShadeStager. Aucun moteur antivirus ne détectait les variantes macOS et Linux au moment de la découverte. Pas un seul. Ces deux outils ne ciblent pas les fichiers système. Ils ciblent les clés SSH, les tokens AWS, les variables d’environnement cloud et les accès Kubernetes, autrement dit tout ce qu’un Mac de développeur accumule par défaut.
Ce que font Phoenix Worm et ShadeStager concrètement
L’attaque se déroule en deux phases. Phoenix Worm agit en premier. Écrit en Go, il tourne sur macOS, Linux et Windows. Son rôle est limité : s’implanter, obtenir un identifiant unique pour la machine, transmettre des données de base au serveur distant et préparer l’arrivée d’une charge utile plus lourde. Il ne fait pas de bruit. Il n’exfiltre pas encore de secrets.
ShadeStager intervient après. C’est un implant post-exploitation modulaire conçu pour extraire des données sur des systèmes déjà compromis. Mosyle précise qu’il collecte les informations utilisateur et les privilèges, les détails matériels et système, la configuration réseau et les variables d’environnement liées aux sessions SSH et cloud. Tout est envoyé en HTTPS, dans un flux continu qui se fond dans le trafic réseau normal.
Ce qui rend ShadeStager difficile à bloquer : il accepte sa configuration à l’exécution plutôt que de s’appuyer sur une adresse C2 fixe. Aucune signature statique ne correspond. Les règles de pare-feu basées sur des domaines en dur ne servent à rien ici.
Selon Mosyle, ShadeStager cible principalement les environnements développeurs et l’infrastructure cloud. — Mosyle Security Research Team, 22 avril 2026
Mosyle note par ailleurs que l’échantillon analysé présentait des signes d’un développement encore en cours. Ce n’est pas un malware finalisé. C’est une version intermédiaire.
Pourquoi les Macs de développeurs sont la cible prioritaire
Un Mac d’usage personnel contient peu de valeur pour un attaquant cherchant à compromettre une infrastructure. Un Mac de développeur, c’est autre chose. Il concentre des accès AWS, GCP, Azure ou Kubernetes souvent configurés une fois et jamais révoqués. Il stocke des clés SSH avec des permissions étendues sur des dépôts privés et des serveurs de production. Les fichiers .env parsèment les dossiers de projet avec des secrets qui ne sont jamais chiffrés sur disque.
La chaîne Phoenix Worm + ShadeStager exploite précisément cette surface. L’environnement de développement macOS est riche en identifiants qui permettent de rebondir vers d’autres systèmes : pipelines CI/CD, clusters, bases de données de production. Un token AWS exfiltré ouvre souvent bien plus qu’un seul compte.
Mosyle indique que les auteurs de malwares macOS écrivent désormais en Go et Rust pour la compatibilité multiplateforme, livrent des charges utiles modulaires qui séparent l’accès initial de l’exploitation et configurent l’infrastructure C2 dynamiquement. Le profil de Phoenix Worm correspond exactement à ce modèle.
Checklist : 8 mesures concrètes pour réduire la surface d’attaque
Ces mesures ciblent les vecteurs identifiés par Mosyle dans l’analyse de ShadeStager. Elles ne nécessitent pas d’outils tiers payants.

- Auditer les variables d’environnement actives : lancer
printenv | grep -iE "key|token|secret|password|aws|gcp|azure"pour visualiser tous les secrets accessibles dans la session courante. Supprimer ceux qui ne sont plus nécessaires. - Protéger les clés SSH par passphrase : une clé sans passphrase dans
~/.ssh/est lisible par tout processus tournant sous le même utilisateur. Utiliserssh-keygen -p -f ~/.ssh/id_ed25519pour en ajouter une. - Cloisonner les credentials AWS avec des profils nommés : ne jamais utiliser
AWS_ACCESS_KEY_IDen variable d’environnement globale. Configurer des profils dans~/.aws/credentialsavec des permissions minimales par projet. - Activer le chiffrement FileVault : sans FileVault, les fichiers
~/.ssh/,~/.aws/et les .env sont lisibles depuis un accès physique ou un démarrage en mode de récupération. - Restreindre les permissions des clés privées :
chmod 600 ~/.ssh/id_ed25519etchmod 700 ~/.ssh/. Vérifier régulièrement avecls -la ~/.ssh/. - Utiliser le Secure Enclave pour les clés SSH : l’app open source Secretive génère et stocke des clés SSH directement dans le Secure Enclave des Macs Apple Silicon (et certains Intel). La clé privée ne quitte jamais le coprocesseur matériel — contrairement à
ssh-keygen -t ed25519-skqui nécessite un dispositif FIDO2 externe comme une YubiKey. - Surveiller les connexions réseau sortantes inhabituelles : ShadeStager communique en HTTPS. Un outil comme Little Snitch ou LuLu (gratuit, Objective-See) permet d’intercepter les connexions sortantes non autorisées.
- Vérifier les processus persistants : Phoenix Worm établit une persistance. La commande
launchctl list | grep -v appleliste les agents actifs non signés Apple. Croiser avec BlockBlock (Objective-See) pour bloquer les tentatives d’installation de LaunchAgent en temps réel.
Ce que les antivirus ne couvrent pas ici
Mosyle le documente : aucun moteur antivirus ne détectait les variantes macOS et Linux de Phoenix Worm au moment de l’analyse. La détection Windows était partielle. ShadeStager était dans le même cas.
Ce n’est pas une défaillance passagère. C’est structurel. Les antivirus reposent sur des signatures statiques ou des heuristiques comportementales calibrées sur des menaces connues. Un stager Go minimal qui se connecte à un serveur via HTTPS et transmet des métadonnées système produit un profil comportemental quasi identique à un client de monitoring légitime. ShadeStager, en acceptant sa configuration à l’exécution, n’expose aucun indicateur statique exploitable.
La protection efficace contre ce type de menace repose sur la réduction de la surface d’attaque : moins de secrets accessibles, moins de permissions accordées, isolation des identifiants. Pas sur la détection après compromission.
Quel est le vecteur d’infection probable ?
Mosyle n’a pas publié le vecteur d’infection initial au moment de la découverte. L’analyse était encore en cours. Des patterns comparables dans l’écosystème macOS 2025-2026, notamment GlassWorm en janvier 2026 qui ciblait les développeurs via des extensions VSX malveillantes, indiquent plusieurs vecteurs récurrents.
Les paquets npm et PyPI trojanisés restent le vecteur le plus documenté pour toucher des machines de développeur. Les extensions d’IDE malveillantes (VS Code Market, Open VSX) ont été exploitées activement par GlassWorm. Les faux sites GitHub Pages imitant des éditeurs connus (Malwarebytes, LastPass, Obsidian) constituent un troisième vecteur documenté par Dark Reading en 2025, via du SEO poisoning renvoyant vers des téléchargements malveillants.
En pratique, un npm install ou pip install sur un paquet à faible activité reste le point d’entrée le moins surveillé dans un environnement de développement actif.
Les outils Objective-See à connaître
Patrick Wardle, fondateur d’Objective-See, distribue gratuitement plusieurs outils de sécurité macOS pertinents face à ces menaces. BlockBlock surveille les tentatives d’installation de composants persistants (LaunchAgents, LoginItems, cron jobs). LuLu bloque les connexions réseau sortantes non autorisées et aurait pu signaler les communications de ShadeStager. KnockKnock analyse les éléments persistants déjà installés sur une machine.
Ces outils ne remplacent pas les mesures de réduction de surface décrites plus haut. Ils ajoutent une couche de visibilité comportementale que les antivirus commerciaux ne fournissent pas sur macOS.
La prochaine version de ShadeStager sera probablement plus complète. L’échantillon analysé était en développement.
