Compromised AsyncAPI npm Packages Deliver Multi-Stage Botnet Malware

1 minute de lecture

Mis à jour :

Attaque par supply chain : Injection de malware via les paquets AsyncAPI

Des pirates ont compromis des paquets officiels du namespace @asyncapi sur npm pour distribuer un malware de type botnet nommé Miasma. L’attaque n’a pas utilisé de vol de jetons npm, mais a exploité directement le pipeline CI/CD (GitHub Actions) des projets pour publier des versions légitimes mais malveillantes.

Points clés

  • Vecteur d’attaque : Compromission du pipeline de publication GitHub. L’attaquant a poussé des commits malveillants déclenchant le processus de publication automatique, ce qui a permis de générer des paquets avec des preuves d’origine (provenance) valides, rendant la fraude difficile à détecter.
  • Fonctionnement : Contrairement aux attaques habituelles, le malware ne s’exécute pas lors de l’installation (npm install), mais au moment où le module est chargé (via require()) dans une application ou un pipeline CI/CD.
  • Charge utile : Le code télécharge un framework nommé Miasma depuis IPFS. Ce malware est sophistiqué : il inclut des mécanismes de persistance, une fonction d’auto-destruction (“dead man’s switch”), et évite les systèmes de sécurité (EDR/Antivirus) ainsi que les machines virtuelles.
  • C2 (Command & Control) : Très flexible, il communique via HTTP, Nostr, IPFS, BitTorrent, P2P et des smart contracts Ethereum.

Paquets compromis

  • @asyncapi/generator-helpers@1.1.1
  • @asyncapi/generator-components@0.7.1
  • @asyncapi/generator@3.3.1
  • @asyncapi/specs@6.11.2 et 6.11.2-alpha.1

Vulnérabilités

Aucun identifiant CVE n’a été spécifié pour cette attaque, car il s’agit d’une compromission de chaîne d’approvisionnement logicielle via un accès non autorisé au pipeline CI/CD plutôt qu’une faille de logiciel standard.

Recommandations

  • Audit immédiat : Si ces paquets ont été utilisés dans vos environnements (builds, CI/CD ou développement), considérez l’endpoint comme potentiellement compromis.
  • Réinitialisation des secrets : Changez les clés d’API, jetons d’accès et mots de passe présents sur les systèmes ayant exécuté ces versions.
  • Renforcement CI/CD : Ne vous reposez pas uniquement sur les attestations de provenance (SLSA). Implémentez une revue stricte des commits avant fusion et limitez les accès aux pipelines de déploiement automatique.
  • Surveillance : Surveillez les comportements réseau inhabituels vers des nœuds IPFS ou des domaines non identifiés provenant de vos serveurs de build.

Source