OreNPMGuard - Shai-Hulud Paket-Scanner
Version 2.0.0 - Shai-Hulud 2.0 Erkennung & erweitertes Präventionssystem
Ein Sicherheitstool zur Erkennung kompromittierter npm-Pakete aus den Shai-Hulud-Lieferkettenangriffen (ursprünglich September 2025 und Shai-Hulud 2.0 November 2025). Scannt sowohl package.json- als auch package-lock.json-Dateien, um exakt installierte Versionen und Indikatoren für eine Kompromittierung (IoCs) zu erkennen. Verfügbar sowohl in Python- als auch in Node.js-Implementierungen mit zentraler YAML-Konfiguration für eine einfache Wartung.
Neuestes Update: 24. November 2025 - Es werden 738+ kompromittierte Pakete mit 1.291 eindeutigen package@version-Kombinationen erfasst. Erkennt jetzt sowohl die ursprünglichen Shai-Hulud- als auch die Shai-Hulud-2.0-Angriffsvarianten.
Für Multi-Ökosystem-Scans siehe ore-mal-pkg-inspector.
🔗 Verwandte Projekte
Für Multi-Ökosystem-Scans bösartiger Pakete (npm, PyPI, Maven, RubyGems, Go, Cargo) siehe:
ore-mal-pkg-inspector - Umfassender Scanner für bösartige Pakete mit dynamischer Threat Intelligence.
OreNPMGuard konzentriert sich speziell auf die Abwehr von Shai-Hulud-Angriffen für npm-Pakete.
🚨 Über die Shai-Hulud-Angriffe
Shai-Hulud ist ein selbstreplizierender Wurm, der am 14.-15. September 2025 begann, npm-Pakete zu kompromittieren. Er stellt den ersten erfolgreichen sich selbst verbreitenden Angriff im npm-Ökosystem dar und gilt als einer der schwerwiegendsten bislang beobachteten JavaScript-Lieferkettenangriffe. Benannt nach den riesigen Sandwürmern aus Frank Herberts Dune-Reihe, hat sich diese Malware in mehrere Varianten weiterentwickelt.
Original Shai-Hulud (September 2025)
Der ursprüngliche Angriff infizierte 200+ npm-Pakete (wie in diesem Tool erfasst), wobei pro Paket mehrere Versionen betroffen waren.
Shai-Hulud 2.0 (November 2025) - NEU
Im November 2025 tauchte eine neue Variante mit erheblichen Änderungen auf:
- 738+ kompromittierte Pakete mit 1.291 eindeutigen package@version-Kombinationen
- 25.000+ betroffene Repositories von ~350 eindeutigen Benutzern
- Neue Ausführungsphase: Verwendet
preinstall-Skripte (nicht nur postinstall)
- Neue Payload-Dateien:
setup_bun.js und bun_environment.js (zusätzlich zu bundle.js)
- Erweiterte Persistenz: Erstellt selbst gehostete Runner namens 'SHA1HULUD' und neue GitHub-Workflow-Muster
- Multi-Cloud-Ausrichtung: Ernte von AWS-, Azure- und GCP-Anmeldeinformationen
- Docker-Privilegieneskalation: Versucht, über privilegierte Container Root-Zugriff zu erlangen
- Pakete, die zwischen dem 21. und 23. November 2025 hochgeladen wurden
Referenz: Wiz Research - Blogbeitrag zu Shai-Hulud 2.0
🦠 So funktioniert der Angriff
Patient Zero: Der Angriff begann mit dem Paket rxnt-authentication, das am 14. September 2025 um 17:58:50 UTC vom kompromittierten npm-Konto "techsupportrxnt" veröffentlicht wurde.
Angriffskette (Original Shai-Hulud):
- Installation: Das bösartige Paket führt das
postinstall-Skript aus, das bundle.js ausführt (3 MB+ JavaScript-Payload)
- Ernte von Anmeldeinformationen: Verwendet TruffleHog, um nach GitHub-/npm-Tokens, AWS-/GCP-/Azure-Anmeldeinformationen, Umgebungsvariablen und über IMDS exponierten Cloud-Schlüsseln zu suchen
- Datenexfiltration: Erstellt ein öffentliches "Shai-Hulud"-Repository im GitHub-Konto des Opfers mit gestohlenen Geheimnissen in
data.json (doppelt base64-codiert)
- Persistenz: Injiziert einen bösartigen GitHub-Actions-Workflow (
.github/workflows/shai-hulud-workflow.yml), der Repository-Geheimnisse an webhook[.]site exfiltriert
- Repository-Migration: Erzwingt, dass private Organisations-Repositories zu öffentlichen persönlichen Repositories mit dem Suffix "-migration" und der Beschreibung "Shai-Hulud Migration" werden
- Wurmverbreitung: Verwendet gestohlene npm-Tokens, um Malware in andere vom Opfer gepflegte Pakete einzuschleusen, Versionsnummern zu erhöhen und
postinstall-Hooks hinzuzufügen
Angriffskette (Shai-Hulud 2.0 - November 2025):
- Installation: Das bösartige Paket führt das
preinstall-Skript aus, das setup_bun.js oder bun_environment.js ausführt (neue Payload-Dateien)
- Erstellung von Datendateien: Erstellt die Dateien
cloud.json, contents.json, environment.json und truffleSecrets.json
- Ernte von Anmeldeinformationen: Multi-Cloud-Ausrichtung (AWS, Azure, GCP) unter Verwendung offizieller SDKs; Anmeldeinformationen werden aus Konfigurationsdateien, Umgebungsvariablen und IMDS ausgelesen
- Registrierung eines selbst gehosteten Runners: Registriert die infizierte Maschine als selbst gehosteten Runner namens 'SHA1HULUD'
- Injektion von GitHub-Workflows:
- Erstellt
.github/workflows/discussion.yaml mit selbst gehostetem Runner für Backdoor-Zugriff
- Erstellt
.github/workflows/formatter_*.yml zur Exfiltration von Geheimnissen (löscht den Workflow anschließend, um die Aktivität zu verbergen)
- Docker-Privilegieneskalation: Versucht, über
docker run --rm --privileged -v /:/host Root-Zugriff zu erlangen
- Auslesen von Cloud-Geheimnissen: Verwendet authentifizierte Sitzungen, um Geheimnisse aus AWS Secrets Manager, Google Secret Manager und Azure Key Vault auszulesen
- Erstellung von Repositories: Erstellt Repositories mit "Shai-Hulud" in der Beschreibung zur Exfiltration
🎯 Was gestohlen wird
- Entwicklungs-Anmeldeinformationen: GitHub-PATs (
ghp_*, gho_*), npm-Authentifizierungstokens
- Cloud-Anmeldeinformationen: AWS-, GCP- und Azure-Zugriffsschlüssel und -Tokens
- API-Schlüssel: Atlassian-, Datadog- und sonstige Dienst-Anmeldeinformationen
- Systeminformationen: Umgebungsvariablen, Host-Details, Benutzerkonten
- Quellcode: Private Repositories, die öffentlich gemacht oder geklont wurden
📊 Ausmaß der Auswirkungen
Original Shai-Hulud (September 2025):
- 200+ Pakete in dieser Erfassungsdatenbank kompromittiert (einschließlich beliebter Pakete wie
@ctrl/tinycolor, ngx-bootstrap)
- Mehrere GitHub-Konten kompromittiert (die genaue Anzahl variiert je nach Berichtsquelle)
- Öffentliche Repositories mit der Kennzeichnung "Shai-Hulud Migration" erstellt
- Entwickler möglicherweise über Paketabhängigkeiten betroffen
Shai-Hulud 2.0 (November 2025):
- 738+ kompromittierte Pakete mit 1.291 eindeutigen package@version-Kombinationen
- 25.000+ betroffene Repositories, erstellt von ~350 eindeutigen Benutzern
- In den ersten Kampagnenstunden wurden alle 30 Minuten 1.000+ neue Repositories hinzugefügt
- Betrifft Pakete aus großen Ökosystemen: Zapier, ENS Domains, PostHog, Postman, AsyncAPI und weitere
- Multi-Cloud-Diebstahl von Anmeldeinformationen (AWS, Azure, GCP)
- Versuche zur Docker-Privilegieneskalation
Verifizierter Diebstahl von Anmeldeinformationen (aus ~20.000 analysierten Repos):
- 775 kompromittierte GitHub-Zugriffstokens
- 373 offengelegte AWS-Anmeldeinformationen
- 300 offengelegte GCP-Anmeldeinformationen
- 115 offengelegte Azure-Anmeldeinformationen
⚠️ Warnung zur opferübergreifenden Exfiltration
KRITISCH: Die Wiz Research hat bestätigt, dass eine opferübergreifende Exfiltration stattfindet. Das bedeutet:
- Die gestohlenen Geheimnisse eines Opfers können in Repositories veröffentlicht werden, die einem anderen, nicht verwandten Opfer gehören
- Wenn Sie verdächtige Daten in Ihren GitHub-Repositories finden, könnten sie einem anderen kompromittierten Benutzer gehören
- Ihre Daten könnten in Repositories exfiltriert worden sein, die Ihnen nicht gehören
- Dies erschwert die Zuordnung und die Reaktion auf Vorfälle