Der Angriff auf das Trivy-Ökosystem markiert einen Wendepunkt in der Evolutionäre von Supply-Chain-Attacken. Zunächst nutzten die Cyberkriminellen – vermutet wird die Cloud-fokussierte Gruppe TeamPCP – gestohlene Zugangsdaten, um manipulierte Versionen von Trivy (0.69.4), Trivy-Action und Setup-Trivy zu veröffentlichen. Diese enthielten einen Credential-Stealer, mit dem npm-Token gestohlen wurden.
Doch damit nicht genug: Mit diesen erbeuteten Token starteten die Angreifer eine zweite Welle, bei der sie 47 npm-Pakete mit CanisterWorm infizieren. Das Besondere an dieser Malware ist ihre Architektur. Sie nutzt sogenannte ICP-Canisters – unveränderbare Smart Contracts auf der dezentralisierten Internet-Computer-Blockchain – als „Dead Drop”-Resolver. Das macht die Infrastruktur äußerst resilient gegen Takedown-Maßnahmen, da die Angreifer die Kontrollserver jederzeit ändern können, ohne die Malware auf infizierten Systemen anzupassen.
Die Infektionskette funktioniert perfide: Beim npm-Install wird via Postinstall-Hook ein Loader ausgeführt, der einen Python-Backdoor installiert. Dieser kontaktiert alle 50 Minuten das ICP-Canister und holt sich die URL des nächsten Exploit-Payloads. Die Persistenz wird durch einen manipulierten Systemd-Service (getarnt als „pgmon” – vermeintliche PostgreSQL-Tools) gewährleistet, der bei Beendigung automatisch neu startet.
Besonders raffiniert ist die Kill-Switch-Mechanik: Zeigt das Canister auf eine YouTube-URL, schläft die Malware. Sobald auf einen echten Download-Link gezeigt wird, aktiviert sie sich – und auf allen 47 infizierten Paketen gleichzeitig.
Doch die größte Innovation ist CanisterWorms Selbstverbreitungsmechanismus. Eine neuere Variante im Paket “@teale.io/eslint-config” (Versionen 1.8.11 und 1.8.12) integriert die Propagationsfunktion direkt in den Postinstall-Prozess. Sie sammelt npm-Token aus der Entwicklungsumgebung und startet den Wurm eigenständig – ohne manuelle Eingriffe der Angreifer. “Das ist der Punkt, wo der Angriff von ‘kompromittiertes Konto veröffentlicht Malware’ zu ‘Malware kompromittiert weitere Konten’ wird”, warnt Sicherheitsforscher Charlie Eriksen.
Für deutsche Entwickler und IT-Teams ist dies besonders kritisch: Jeder Entwickler oder jede CI/CD-Pipeline, die eines dieser Pakete installiert und npm-Token zugänglich hat, wird zur Propagationsvektoren. Infizierte Pakete verbreiten sich kettenweise weiter – wie ein digitales Lauffeuer in der Softwarelieferkette.
Wie sehr die Angreifer die Lage im Griff haben, zeigt auch ein Detail: In der neuesten Variante setzten sie zunächst einen Test-String statt echten Malware-Code ein – um die gesamte Infektionskette zu validieren, bevor die echte Waffe scharf gemacht wird. Dies deutet auf professionelle Cyberkriminelle hin, die ihren Angriff sorgfältig planen.
