
Rileva i payload dell'attacco alla supply chain GlassWorm scansionando estensioni VS Code, pacchetti npm/PyPI e repository git per payload Unicode invisibili, pattern di decoder, marcatori C2 e IOC dannosi noti.

Rileva i payload dell'attacco alla supply chain GlassWorm sulla tua macchina. Scansiona estensioni VS Code, pacchetti npm, pacchetti Python e repository git.
Questo scanner rileva la tecnica di attacco stessa - payload invisibili con selettori di variazione Unicode, pattern di decodifica GlassWorm, indicatori C2 e codice di raccolta delle credenziali.
pip install glassworm-hunter
Or with pipx:
pipx install glassworm-hunter
Scansiona la directory corrente senza scansionare le estensioni VS Code/Cursor:
glassworm-hunter scan --no-extensions
Scansiona un progetto specifico:
glassworm-hunter scan /path/to/project
| Livello | Significato |
|---|---|
glassworm-hunter scan [OPTIONS] [PATHS...]
Una barra di avanzamento Rich viene mostrata su stderr durante la scansione. Viene automaticamente soppressa con --quiet o --verbose. Una riga di riepilogo (file scansionati, risultati, percorso di output) viene sempre stampata su stderr al termine della scansione.
# Elenca tutti gli ID delle regole di rilevamento (per uso con --disable-rule)
glassworm-hunter rules
# Aggiorna il database IoC locale da GitHub (fonte predefinita:
# https://raw.githubusercontent.com/afine-com/glassworm-hunter/main/data/ioc.json)
glassworm-hunter update
# Aggiorna da una fonte personalizzata (es. server interno di threat intelligence)
glassworm-hunter update --source https://internal.corp/ioc.json
# Forza la sovrascrittura del database IoC locale esistente
glassworm-hunter update --force
# Stampa la versione
glassworm-hunter version
| Codice | Significato |
|---|---|
| 0 | Nessun risultato |
| 1 | Risultati rilevati |
| 2 | Errore dello scanner |
Output JSON per elaborazione automatica:
glassworm-hunter scan . --format json --output report.json --no-extensions
SARIF per GitHub Code Scanning:
glassworm-hunter scan . --format sarif --output results.sarif --no-extensions
Carica SARIF su GitHub:
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Usa i codici di uscita in CI:
glassworm-hunter scan . --severity critical --no-extensions || exit 1
Escludi artefatti di build e codice vendor:
glassworm-hunter scan . --exclude "dist/**" --exclude "*.min.js" --no-extensions
Questo scanner è completamente offline per impostazione predefinita. Legge solo file locali. Nessuna telemetria, nessun phone-home, nessun controllo automatico degli aggiornamenti. I database IoC sono inclusi nel pacchetto.
L'unico comando che effettua una richiesta di rete è glassworm-hunter update, che recupera l'ultimo database IoC da GitHub (o da un URL --source personalizzato). Non viene mai chiamato automaticamente.
Posiziona un file .glassworm.yml nella radice del tuo progetto per impostare le impostazioni predefinite:
exclude:
- "*.min.js"
- "vendor/**"
- "dist/**"
disable_rules:
- zero-width-chars
severity: medium
I flag CLI hanno la precedenza sui valori del file di configurazione.
Usa --ioc-file per caricare indicatori aggiuntivi da un file JSON. Questo è utile per intelligence specifica del team o interna:
glassworm-hunter scan /path --ioc-file /path/to/team_ioc.json
Il file deve seguire lo stesso schema di data/ioc.json:
{
"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]"}]
}
Il file personalizzato viene unito sopra tutti gli altri livelli IoC (hardcoded → bundled → utente ~/.glassworm/ioc.json → --ioc-file).
Lo scanner utilizza un sistema IoC a 3+1 livelli (ogni livello si unisce sopra il precedente, non rimuove mai):
data/ioc.json distribuito con il pacchetto~/.glassworm/ioc.json, aggiornato tramite glassworm-hunter update--ioc-file, massima prioritàLo scanner funziona su Windows. 4 test falliscono a meno che non si esegua un prompt dei comandi elevato (Amministratore).
MIT
| CRITICAL |
| Payload GlassWorm attivo rilevato (cluster di Unicode invisibile nel codice, pattern di decodifica) |
| HIGH | IoC noto corrispondente (IP C2, wallet, dipendenza di estensione da malware noto) |
| MEDIUM | Pattern sospetto da verificare (eval + contenuto dinamico, accesso alle credenziali, Trojan Source) |
| LOW | Informativo (densità anomala di caratteri a larghezza zero, script di installazione sospetti) |
| Opzione | Default | Descrizione |
|---|
--extensions / --no-extensions | on | Scansiona estensioni VS Code/Cursor/Codium |
--npm-scan / --no-npm-scan | on | Scansiona node_modules |
--pip-scan / --no-pip-scan | off | Scansiona i site-packages di Python |
--git / --no-git | on | Scansiona repository git |
--format [console|json|sarif] | console | Formato di output |
--output FILE | stdout | Scrivi report su file |
--severity [critical|high|medium|low] | low | Livello di gravità minimo da segnalare |
--max-file-size SIZE | 10MB | Salta file più grandi di questo |
--include-hidden | off | Scansiona file/directory nascosti |
--quiet | off | Sopprime l'output di avanzamento |
--verbose | off | Mostra ogni file in scansione |
--exclude PATTERN | — | Pattern glob da escludere (ripetibile) |
--disable-rule RULE_ID | — | Sopprime regole di rilevamento specifiche (ripetibile) |
--ioc-file FILE | — | Carica indicatori IoC aggiuntivi da un file JSON |