
Erkennt GlassWorm-Lieferkettenangriffs-Payloads, indem es VS Code-Erweiterungen, npm/PyPI-Pakete und Git-Repositories nach unsichtbaren Unicode-Payloads, Decoder-Mustern, C2-Markern und bekannten bösartigen IOCs durchsucht.

Erkennt GlassWorm-Supply-Chain-Angriffspayloads auf Ihrem Rechner. Scannt VS Code-Erweiterungen, npm-Pakete, Python-Pakete und Git-Repositorys.
Dieser Scanner erkennt die Angriffstechnik selbst – unsichtbare Unicode-Variation-Selector-Payloads, GlassWorm-Decoder-Muster, C2-Indikatoren und Code zur Erfassung von Anmeldeinformationen.
pip install glassworm-hunter
Oder mit pipx:
pipx install glassworm-hunter
Durchsuchen Sie Ihr aktuelles Verzeichnis, ohne VS Code/Cursor-Erweiterungen zu scannen:
glassworm-hunter scan --no-extensions
Ein bestimmtes Projekt scannen:
glassworm-hunter scan /path/to/project
| Stufe | Bedeutung |
|---|
glassworm-hunter scan [OPTIONS] [PATHS...]
Während des Scans wird ein Rich-Fortschrittsbalken auf stderr angezeigt. Er wird automatisch mit --quiet oder --verbose unterdrückt. Eine Zusammenfassungszeile (gescannte Dateien, Funde, Ausgabepfad) wird nach Abschluss des Scans immer auf stderr ausgegeben.
# Listet alle Erkennungsregel-IDs auf (zur Verwendung mit --disable-rule)
glassworm-hunter rules
# Aktualisiert die lokale IoC-Datenbank von GitHub (Standardquelle:
# https://raw.githubusercontent.com/afine-com/glassworm-hunter/main/data/ioc.json)
glassworm-hunter update
# Von einer benutzerdefinierten Quelle aktualisieren (z.B. internem Threat-Intelligence-Server)
glassworm-hunter update --source https://internal.corp/ioc.json
# Vorhandene lokale IoC-Datenbank überschreiben erzwingen
glassworm-hunter update --force
# Version ausgeben
glassworm-hunter version
| Code | Bedeutung |
|---|---|
| 0 | Keine Funde |
| 1 | Funde erkannt |
| 2 | Scanner-Fehler |
JSON-Ausgabe für automatisierte Verarbeitung:
glassworm-hunter scan . --format json --output report.json --no-extensions
SARIF für GitHub Code Scanning:
glassworm-hunter scan . --format sarif --output results.sarif --no-extensions
SARIF nach GitHub hochladen:
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Exit-Codes in CI verwenden:
glassworm-hunter scan . --severity critical --no-extensions || exit 1
Build-Artefakte und Vendor-Code ausschließen:
glassworm-hunter scan . --exclude "dist/**" --exclude "*.min.js" --no-extensions
Dieser Scanner ist standardmäßig vollständig offline. Er liest nur lokale Dateien. Keine Telemetrie, kein Heimtelefonieren, keine automatischen Update-Prüfungen. IoC-Datenbanken sind im Paket enthalten.
Der einzige Befehl, der eine Netzwerkanfrage stellt, ist glassworm-hunter update, der die neueste IoC-Datenbank von GitHub (oder einer benutzerdefinierten --source-URL) abruft. Er wird nie automatisch aufgerufen.
Legen Sie eine .glassworm.yml im Stammverzeichnis Ihres Projekts ab, um Standardwerte festzulegen:
exclude:
- "*.min.js"
- "vendor/**"
- "dist/**"
disable_rules:
- zero-width-chars
severity: medium
CLI-Flags überschreiben Konfigurationsdateiwerte.
Verwenden Sie --ioc-file, um zusätzliche Indikatoren aus einer JSON-Datei zu laden. Dies ist nützlich für team-spezifische oder interne Bedrohungsdaten:
glassworm-hunter scan /path --ioc-file /path/to/team_ioc.json
Die Datei muss dem gleichen Schema wie data/ioc.json folgen:
{
"schema_version": "1.0",
"extensions": [{"id": "publisher.name"}],
"npm_packages": [{"name": "pkg", "malicious_versions": "1.0.0"}],
"c2_ips": [{"ip": "1.2.3.4"}],
"c2_wallets": [{"address": "..."}],
"attacker_artifacts": [{"type": "email", "value": "[email protected]"}]
}
Die benutzerdefinierte Datei wird auf alle anderen IoC-Ebenen aufgespielt (hartcodiert → gebündelt → Benutzer ~/.glassworm/ioc.json → --ioc-file).
Der Scanner verwendet ein 3+1-Ebenen-IoC-System (jede Ebene wird auf die vorherige aufgespielt, nie entfernt):
data/ioc.json im Paket enthalten~/.glassworm/ioc.json, aktualisiert über glassworm-hunter update--ioc-file-Flag, höchste PrioritätDer Scanner funktioniert unter Windows. 4 Tests schlagen fehl, wenn Sie keine erhöhte (Administrator-) Eingabeaufforderung ausführen.
MIT
| KRITISCH | Aktiver GlassWorm-Payload erkannt (unsichtbarer Unicode-Cluster im Code, Decoder-Muster) |
| HOCH | Bekannter bösartiger IOC gefunden (C2-IP, Wallet, Erweiterungsabhängigkeit von bekannter Malware) |
| MITTEL | Verdächtiges Muster, das überprüft werden sollte (eval + dynamischer Inhalt, Zugriff auf Anmeldeinformationen, Trojan Source) |
| NIEDRIG | Informationell (ungewöhnliche Dichte an Nullbreitenzeichen, verdächtige Installationsskripte) |
| Option | Standard | Beschreibung |
|---|
--extensions / --no-extensions | an | VS Code/Cursor/Codium-Erweiterungen scannen |
--npm-scan / --no-npm-scan | an | node_modules scannen |
--pip-scan / --no-pip-scan | aus | Python site-packages scannen |
--git / --no-git | an | Git-Repositorys scannen |
--format [console|json|sarif] | console | Ausgabeformat |
--output FILE | stdout | Bericht in Datei schreiben |
--severity [critical|high|medium|low] | low | Mindestschweregrad für Meldung |
--max-file-size SIZE | 10MB | Dateien überspringen, die größer sind als dieser Wert |
--include-hidden | aus | Versteckte Dateien/Verzeichnisse scannen |
--quiet | aus | Fortschrittsausgabe unterdrücken |
--verbose | aus | Jede gescannte Datei anzeigen |
--exclude PATTERN | — | Glob-Muster zum Ausschließen (wiederholbar) |
--disable-rule RULE_ID | — | Bestimmte Erkennungsregeln deaktivieren (wiederholbar) |
--ioc-file FILE | — | Zusätzliche IoC-Indikatoren aus einer JSON-Datei laden |