
Threat hunting locale per i log che già possiedi: Zeek, Pi-hole, syslog o il journal di systemd, CloudTrail. Ogni esecuzione indica la tecnica alla base di ciascun rilevatore. Nessun agent, nessun daemon, nessuna black box - tra grep e un SIEM.

tra grep e un SIEM
sigwood è uno strumento da riga di comando per il threat hunting, local-first, pensato per chi
gestisce i propri servizi. Puntalo sui log che hai già - Zeek, Pi-hole/dnsmasq, syslog o CloudTrail - e
profila ciò che contengono, poi esegue su di essi una serie di rilevatori: beaconing, DNS sospetti,
scansioni di porte, trasferimenti in uscita di grandi volumi, configurazioni TLS fuori dal comune,
struttura dell'autenticazione, eventi syslog rari, attività CloudTrail insolite e pattern comportamentali
nei nomi che il tuo Pi-hole ha già bloccato.
Non è un SIEM. Non è un agent. Non è magia. Nulla da distribuire - nessun database, nessun demone, nessuna rete, nessun account. Installalo, puntalo su una directory di log, leggi l'output. Gira sulla tua macchina, su log a riposo, e i tuoi log non devono mai lasciare il tuo computer.
Stato: stabile (
1.2.0). I dieci rilevatori funzionano e sono coperti da test; cosa significa 1.0 indica quali interfacce sono ora fisse e quali no. Realizzato con un ampio supporto di AI sotto revisione umana; le FAQ spiegano come, e il registro delle evidenze documenta ciò che è stato misurato e ciò che non lo è. I feedback sono benvenuti.
Installa · Manuale · FAQ · Contratto · Roadmap · Problemi noti · Schemi · Lavori precedenti · Sicurezza
pipx install sigwood # or: pip install sigwood in a venv - see Installation
sigwood /var/log/ # point it at a directory
sigwood /opt/zeek/dns.log # or a single file
È tutto: nessuna configurazione richiesta. Ecco il tipo di risultato che emerge da un'esecuzione (output illustrativo, non dati di rete reali):
dns - 1 finding · 1 high
domain names that stand apart from the rest, including machine-generated-looking
names of the sort malware uses for disposable command domains, and large batches
of related lookups
────────────────────────────────────────────────────────────────────────────────
groups (1)
names entropy score queries clients
high 16 2.10-1.85 418 1 k7x2p9qz3f.example
beacon - 2 findings · 2 medium
outbound connections that keep a regular rhythm
────────────────────────────────────────────────────────────────────────────────
medium 192.168.1.37 → 198.51.100.20:443/tcp period=3.0m rhythm=0.624 480 conns
medium 192.168.1.37 → 203.0.113.50:8443/tcp period=10.0m rhythm=0.606 144 conns
syslog - 1 finding · 1 medium
rare log patterns, and recorded reboots or administrative runs, so changes on a
machine do not disappear into routine logs
────────────────────────────────────────────────────────────────────────────────
privileged (1)
medium Accepted password for root from 198.51.100.20 port 51900 ssh2
-v explains why each finding surfaced
Leggi dall'alto verso il basso, è una storia: un host interno che effettua ricerche ad alta entropia sotto un
dominio usa e getta, che contatta due IP esterni con una cadenza fissa, e un login SSH root
da uno di quegli stessi IP. Un rilevamento significa "insolito per la tua rete," non "noto come dannoso" -
è un indizio da esaminare, non un verdetto. Aggiungi -v per le prove alla base di ogni punteggio e i
passi successivi per indagare.
Hai solo un Pi-hole? È già una configurazione completa di per sé:
sigwood digest /var/log/pihole/pihole.log # orient: what's in the log
sigwood /var/log/pihole/ # hunt: DNS clustering over your queries
sigwood dnsblock /var/log/pihole/ # bonus: behavior in names Pi-hole blocked
Le invocazioni usuali:
sigwood digest /var/log/messages # orient first - a fast, factual profile of a file
sigwood graph /opt/zeek # replay the flows as a self-contained HTML artifact
sigwood syslog /var/log # run a single detector
sigwood init # detection-driven setup, writes a config
sigwood hunt # run the curated default hunt
Nessun log a portata di mano? Il repository include un piccolo generatore di corpus sintetici - un host compromesso, nessun dato di rete reale - così puoi vederlo funzionare prima:
git clone https://github.com/helixmap/sigwood
cd sigwood
python3 demo/gen_corpus.py # writes a synthetic corpus; no network calls
sigwood hunt --config=demo/sigwood.toml # beacons, a DGA burst, a bulk transfer out, and the syslog trail
I log generati si trovano in demo/corpus/ (ignorati da git); la procedura completa è in
demo/README.md. Ecco una
esecuzione completa su quel corpus, seguita dalle stesse rilevazioni in formato HTML:
...e gli stessi flussi riprodotti da sigwood graph, un unico file HTML autonomo:
Un solo nome ovunque: la distribuzione PyPI, il comando, il pacchetto di import e la sezione
di configurazione sono tutti sigwood. Richiede Python da 3.11 a 3.14; la 3.15 viene rifiutata al momento dell'installazione
finché il suo stack di dipendenze non fornisce wheel per essa.