Wenn der Sandwurm zum Datenparasiten wird
Die Open-Source-Welt ist ein symbiotisches Ökosystem — und genau diese Verbundenheit macht sie zur Zielscheibe. Mit der als Miasma bezeichneten Kampagne zeigt sich einmal mehr, wie raffiniert Angreifer die Mechanismen der modernen Softwarelieferkette untergraben. Betroffen sind diesmal offizielle @redhat-cloud-services-Pakete im npm-Ökosystem, die mit einem Credential-Stealing-Worm verseucht wurden.
Was ist passiert?
Mehrere npm-Pakete von Red Hat — darunter vulnerabilities-client, rbac-client und remediations-client — enthielten einen obfuskierten preinstall-Hook. Dieser Hook wird zur Installationszeit ausgeführt und bildet den Einstiegspunkt für die Malware. Die betroffenen Pakete stammen aus dem @redhat-cloud-services-Namespace, also aus einer Umgebung, die per se Vertrauen genießt.
Die Attacke wird als Mini Shai-Hulud-Kampagne eingeordnet — ein Angriffsmuster, das auf Installzeit-Ausführung, Credential-Harvesting, CI/CD-Targeting, verschlüsselter Exfiltration und potenzieller Weiterverbreitung setzt. Der Name lehnt sich an die Sandwürmer aus Dune an, was die selbstpropagierende Natur der Malware treffend beschreibt.
Patient Zero: Ein gekaperter Mitarbeiter-Account
Die Ermittlungen deuten darauf hin, dass Patient Zero der kompromittierte GitHub-Account eines Red-Hat-Mitarbeiters war. Über diesen Account wurden bösartige orphan commits in zwei RedHatInsights-Repositories gepusht — und umgingen damit den üblichen Code-Review-Prozess. Das ist ein klassisches, aber effektives Szenario: Wenn der Angreifer die Identität eines Maintainers stiehlt, fallen die üblichen Sicherheitsbarrieren weg.
Was die Malware genau macht
Die Malware ist mehr als ein einfacher Credential-Stealer. Sie ist ein mehrstufiges Werkzeug:
- Credential-Harvesting: Die Malware sammelt GitHub Actions Secrets, npm-Tokens, Cloud-Credentials (AWS, GCP, Azure), Kubernetes- und Vault-Material, SSH-Keys und Git-Credentials.
- Verschlüsselte Exfiltration: Die Daten werden verschlüsselt an
api.anthropic[.]com:443/v1/apigesendet — eine bewusste Täuschung, um den Datenverkehr als legitimen API-Call zu tarnen. Als Fallback dient GitHub. - Selbstpropagation: Über die GitHub API werden die gestohlenen Credentials genutzt, um weitere Repositories zu infizieren. Die Commits erscheinen als verifiziert und signiert.
- Cloud-Identity-Fokus: Eine Neuerung gegenüber früheren Varianten ist der Fokus auf Cloud-Identitäten. Die Malware sammelt nun alle Identitäten, auf die die infizierte Maschine zugreifen kann — nicht nur Secrets.
Besonders tückisch: Die Malware erzeugt für jede Infektion einen einzigartig verschlüsselten Payload, was die Erkennung und Versionsverfolgung deutlich erschwert.
Persistenz und Tarnung
Die Malware geht subtil vor, um nicht entdeckt zu werden:
- Sie vermeidet die Ausführung auf russischsprachigen Systemen — ein Muster, das auch bei der GlassWorm-Kampagne beobachtet wurde.
- Sie prüft auf Endpoint-Protection-Lösungen von CrowdStrike, SentinelOne, Carbon Black und StepSecurity, bevor sie aktiv wird.
- Sie etabliert Persistenz durch Injection eines
SessionStart-Hooks in Anthropic Claude Code und einetasks.jsonmitrunOn: folderOpenfür VS Code-Projekte. - Sie versucht Privilege Escalation durch Container, die
/etc/sudoers.dbind-mounten.
Die Attribution-Falle
Die Zuordnung der Attacke ist schwierig. Die Cybercrime-Gruppe TeamPCP hat die Werkzeuge für den Shai-Hulud-Wurm open-sourced. Das bedeutet: Jeder kann diese Werkzeuge nutzen. Die Grenze zwischen staatlichen Akteuren, organisiertem Verbrechen und Copycats verschwimmt. Definitive Attribution ist in diesem Umfeld kaum noch möglich.
Was bedeutet das für die Praxis?
Diese Attacke zeigt einmal mehr, dass Vertrauen in Paketnamen allein nicht ausreicht. Selbst offizielle Namespaces wie @redhat-cloud-services können kompromittiert werden. Die Konsequenzen sind weitreichend:
- Isolation: Hosts, auf denen die betroffenen Versionen installiert sind, müssen isoliert werden.
- Credential-Rotation: Alle exponierten Credentials müssen rotiert werden — nicht nur npm-Tokens, sondern auch Cloud- und SSH-Keys.
- Persistenz-Check: Die Malware hinterlässt Spuren in
~/.claude/settings.json,.vscode/tasks.jsonund.github/workflows/codeql.yml. Diese müssen auditiert werden. - CI/CD-Härtung: Betroffene Workflow-Runs müssen suspendiert, Build-Artefakte invalidiert und Release-Pipelines auditiert werden.
Wie Socket treffend bemerkt: Das einfache Deinstallieren des npm-Pakets oder Löschen von node_modules reicht nicht aus.
Kritische Einordnung
Miasma ist ein Lehrstück darüber, wie Supply-Chain-Attacken reifen. Die Angreifer kombinieren Credential-Stealing mit Selbstpropagation, tarnen Exfiltration als legitimen API-Verkehr und nutzen die Vertrauensstellung offizieller Pakete aus. Der Fokus auf Cloud-Identitäten — nicht nur auf Secrets — zeigt eine Verschiebung: Es geht nicht mehr nur um Daten, es geht um Zugang zu Infrastruktur.
Die Tatsache, dass ein einzelner kompromittierter Mitarbeiter-Account ausreichte, um den gesamten Lieferketten-Zweig zu infizieren, unterstreicht die Notwendigkeit von Branch Protection, Signed Commits mit Verifikation und Least Privilege-Prinzipien — nicht nur auf dem Papier, sondern in der Pipeline-Implementierung.
Die Open-Source-Community muss sich eingestehen, dass das Modell der impliziten Vertrauensstellung durch Maintainer-Namen allein brüchig geworden ist. Mechanismen wie Sigstore-Verifikation, SLSA-Provenance und hermetische Builds sind keine Nice-to-haves mehr — sie sind überfällig.
Quelle: The Hacker News