Zurück zur Startseite

CanisterWorm in npm: Angriff nach Trivy

CanisterWorm — ein neuer selbstvermehrender Wurm, der ICP-Container für C2 nach Trivy-Angriff nutzt. Infiziert npm-Pakete über postinstall und Token-Diebstahl, gewährleistet systemd-Persistenz. Analyse der Mechanismen und Vergleich mit Shai-Hulud.

CanisterWorm-Wurm infiziert npm nach Trivy
Advertisement 728x90

# CanisterWorm: Sich selbst verbreitender Wurm in der npm-Lieferkette nach dem Trivy-Angriff

Angreifer haben nach der Kompromittierung von Trivy den CanisterWorm-Wurm eingesetzt, der Dutzende von npm-Paketen infiziert hat. Die Malware nutzt ICP-Canister auf der Internet-Computer-Blockchain als widerstandsfähigen C2-Server. Dies ist der erste dokumentierte Missbrauch von ICP zur Abrufung von Payloads, was dezentralen Widerstand gegen Abschaltungen bietet.

Infektions- und Verbreitungsmechanismus

Die Angriffssequenz beginnt mit einem postinstall-Hook in den kompromittierten Paketen. Der Hook startet einen Loader, der eine Python-Backdoor installiert. Die Backdoor verbindet sich mit einem ICP-Canister, um die URL des nächsten Payloads abzurufen.

Der ICP-Canister implementiert die Methoden get_latest_link, http_request und update_link. Letztere ermöglicht es dem Controller, die URL in Echtzeit zu ändern und ausführbare Dateien auf allen infizierten Hosts zu aktualisieren, ohne den Betrieb zu unterbrechen.

Google AdInline article slot

Die Backdoor befragt den Canister alle 50 Minuten mit einem gefälschten User-Agent. Enthält die URL youtube.com, schaltet sich der Implantat in den Ruhezustand. Die Aktivierung erfolgt durch Wechsel zum echten Payload; alte Prozesse laufen parallel weiter.

Die Persistenz wird durch einen systemd-Dienst namens „pgmon“ sichergestellt, der sich als PostgreSQL-Überwachung tarnt. Die Direktive Restart=always startet die Backdoor 5 Sekunden nach dem Beenden neu.

Betroffene Pakete:

Google AdInline article slot
  • 28 im @EmilGroup-Scope;
  • 16 im @opengov-Scope;
  • @teale.io/eslint-config;
  • @airtm/uuid-base32;
  • @pypestream/floating-ui-dom.

Socket hat 141 schädliche Artefakte in mehr als 66 einzigartigen Paketen erkannt.

Evolution von CanisterWorm zur vollständigen Automatisierung

In den Versionen 1.8.11–1.8.12 von @teale.io/eslint-config integriert eine mutierte Variante den Diebstahl von npm-Tokens direkt in index.js. Die Funktion findNpmTokens() scannt die Umgebung während des postinstall und startet deploy.js als Hintergrundprozess zur Selbstverbreitung.

Deploy.js veröffentlicht bösartige Versionen in allen zugänglichen Paketen mithilfe der gestohlenen Tokens. Der Wurm, vermutlich mit KI und Vibe-Technologie generiert, verschleiert seinen Code nicht.

Google AdInline article slot

Der aktuelle Payload in ICP ist der Teststring „hello123“, was auf eine Überprüfungsphase der Kette vor einem vollständigen Angriff hindeutet.

Ein ähnlicher Mechanismus mit youtube.com-Überprüfung wurde im trojanisierten Trivy 0.69.4 über sysmon.py gefunden, das auf denselben ICP-Canister verweist.

Vergleich mit früheren Kampagnen

CanisterWorm folgt dem Muster von Shai-Hulud (September): Die Kompromittierung von tinycolor breitete sich auf über 40 Pakete aus, dann infizierte der Wurm über 300 weitere via NpmModule.updatePackage und TruffleHog zur Validierung von Zugangsdaten.

Sha1-Hulud (November) traf über 25.000 Repositories: Das preinstall-Skript setup_bun.js erkannte die Bun-Umgebung und startete bun_environment.js zum Datenklau.

| Kampagne | Betroffene Pakete | Verbreitungsmechanismus | Diebstahl-Tools |

|-------------|-------------------|-------------------------------------|----------------------|

| Shai-Hulud | 300+ | NpmModule.updatePackage | TruffleHog |

| Sha1-Hulud | 25.000+ | preinstall/setup_bun.js | bun_environment |

| CanisterWorm| 66+ | postinstall/deploy.js + ICP C2 | findNpmTokens |

Wichtige Erkenntnisse

  • Erste Nutzung von ICP-Canistern für C2 in Malware: Dezentralisierung erschwert Abschaltungen.
  • Automatische Verbreitung: Token-Diebstahl + deploy.js macht Installationen zu Infektionsvektoren für CI/CD- und Entwicklermaschinen.
  • Widerstandsfähigkeit: systemd mit Restart=always + parallele Prozesse + dynamisches update_link.
  • Tarnung: Dienste als pgmon getarnt, Ruhezustand bei youtube.com.
  • Umfang: Von Trivy zu 141 Artefakten; Evolution zur vollständigen Automatisierung ohne manuelle Deploys.

Unternehmen wie Aikido Security, Endor Labs, JFrog und Wiz bestätigen: Dies markiert einen Wechsel von einzelnen Kompromittierungen zu exponentiellem Wurmverhalten im npm-Ökosystem.

— Editorial Team

Advertisement 728x90

Weiterlesen