
Zircolite v3.8.0
Uno strumento di rilevamento autonomo basato su SIGMA per log EVTX, Auditd e Sysmon per Linux
Rilevamento standalone basato su Sigma per log EVTX, Auditd, Sysmon for Linux, XML, CSV e JSON
Zircolite esegue le regole Sigma sui tuoi log. Appiattisce gli eventi in SQLite, trasforma ogni regola in una query SQL e segnala le corrispondenze, offline, con un solo comando.

- Molti formati di log, rilevati automaticamente: Windows EVTX (binario, XML, JSON), Auditd, Sysmon for Linux, EVTXtract, CSV, XML e JSON, in chiaro o in archivi gzip, bzip2, ZIP e 7-Zip.
- Regole Sigma così come sono: YAML nativo convertito con pySigma, oppure i ruleset pronti in
rules/. Regole di correlazione incluse. - Veloce: un kernel di appiattimento compilato, worker paralleli e prefiltraggio delle regole; vedi il benchmark.
- Elaborazione dei campi: suddivisione dei campi compattati ed esecuzione di trasformazioni Python in sandbox (decodifica Base64, estrazione di IOC, rilevamento di LOLBin, …).
- Esportazioni: JSON, CSV e template per Splunk, Elastic, OpenSearch, Timesketch, SARIF e ATT&CK Navigator.
- Timeline: ogni rilevamento come una riga in ordine temporale, con un riepilogo su una riga dell'evento, in CSV o JSON lines (
--timeline). - Zircolite Viewer: ogni evento e rilevamento in un unico zip che si apre offline in un browser.
📖 Leggi la documentazione, disponibile anche in docs/.
Installazione
Binario standalone, nulla da installare: scarica lo zip per la tua piattaforma dalle release (Linux x64 e ARM64, macOS Apple silicon, Windows x64 e ARM64).
Docker:
docker pull wagga40/zircolite:latest
Dai sorgenti con PDM, Python da 3.11 a 3.14:
git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
pdm use -f 3.14
pdm install
pdm use tiene PDM lontano da Python 3.15 e dalle build free-threaded, che
non sono ancora supportate; anche qualsiasi versione da 3.11 a 3.13 funziona. Con
uv:
git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
uv sync --python 3.14+gil
Le installazioni da sorgente compilano un kernel nativo di flattening e richiedono un compilatore C; in sua assenza ricadono su un kernel Python più lento. Vedi Installation per i pacchetti del compilatore, i dettagli sui binari (quarantena macOS, checksum) e i permessi Docker.
Avvio rapido
# Windows logs, with the default ruleset (rules/rules_windows_merged.json)
python3 zircolite.py --events sysmon.evtx
# Linux logs: the format is detected
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json
# Native Sigma rules, through pySigma pipelines
python3 zircolite.py --events logs/ --ruleset ./sigma/rules/windows/process_creation \
--pipeline sysmon --pipeline windows-logsources
# Every event and detection, for the Zircolite Viewer
python3 zircolite.py --events logs/ --package
# The detections as a timeline, for Timeline Explorer or a spreadsheet
python3 zircolite.py --events logs/ --timeline
Con un binario, esegui ./Zircolite invece di python3 zircolite.py. Dal sorgente, anteponi al comando pdm run (o uv run) a meno che l'ambiente non sia attivo. Con Docker, monta i log e fornisci percorsi assoluti:
docker run --rm --tty -v $PWD:/case/input:ro -v $PWD:/case/output \
wagga40/zircolite:latest --events /case/input -o /case/output/detected_events.json
Su un host Linux, aggiungi --user "$(id -u):$(id -g)" e -l /case/output/zircolite.log: l'immagine viene eseguita come utente non privilegiato che non può scrivere in una directory di tua proprietà.
Le rilevazioni vengono salvate in detected_events.json. Per i log su cui provarlo, vedi
EVTX-ATTACK-SAMPLES.
[!IMPORTANT] I ruleset predefiniti possono contenere regole rumorose o lente. Seleziona le regole per il tuo ambiente, e aggiornale con
python3 zircolite.py -U.
Come funziona
Zircolite appiattisce ogni evento in una riga di una tabella SQLite, converte ogni regola Sigma in una query SQL su quella tabella e segnala le righe che corrispondono.
Zircolite Viewer
--package scrive un unico zip contenente ogni evento dell'esecuzione, con le rilevazioni e
gli avvisi di correlazione ad essi collegati. Estrailo e apri index.html: il visualizzatore funziona offline
e offre una panoramica, le rilevazioni, una tabella degli eventi che puoi cercare, filtrare e ordinare per
qualsiasi colonna, una timeline, la matrice ATT&CK, le entità, lo stacking dei valori più rari, i logon e
il movimento laterale, gli alberi dei processi e una console SQL. Condividi un pacchetto come faresti con i log da cui
proviene. Vedi Zircolite Viewer.

Benchmark
Tempo reale mediano su un Apple M1 Max a 10 core, ogni strumento con le impostazioni predefinite e le proprie regole:
| Strumento | 4 EVTX Sysmon, 478 MB | 8 EVTX su 11 canali, 13,3 GB |
|---|---|---|
| Zircolite | 7,7 s | 30,2 s |
| Hayabusa 4.2.0 | 23,3 s | 500,3 s |
| Chainsaw 2.17.1 | 48,3 s | 183,0 s |
Zircolite utilizza più memoria rispetto agli altri, a causa dei suoi worker paralleli (--no-parallel
li disattiva), e i set di regole sono diversi, quindi i conteggi delle rilevazioni non sono confrontabili. Vedi
Benchmark per la memoria, la configurazione e come riprodurlo.
Tutorial, riferimenti e progetti correlati
Tutorial, scritti per versioni precedenti: