Torna agli aggiornamenti
New releaseAug 4, 2026

Zircolite v3.8.0

Uno strumento di rilevamento autonomo basato su SIGMA per log EVTX, Auditd e Sysmon per Linux

Condividi

Zircolite

Rilevamento standalone basato su Sigma per log EVTX, Auditd, Sysmon for Linux, XML, CSV e JSON

python version

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.

Zircolite in un terminale

  • 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.

Come funziona Zircolite: i log vengono appiattiti in righe di una tabella SQLite, le regole Sigma diventano query SQL e le righe corrispondenti diventano rilevazioni

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.

Un tour dello Zircolite Viewer: la Panoramica, una rilevazione critica e i suoi eventi, un filtro di colonna e i valori più rari di una colonna, un evento con il suo comando PowerShell decodificato e la sua attività di processo, la timeline, la matrice ATT&CK, le entità, lo stacking, il movimento laterale e le sessioni privilegiate, l'albero dei processi e la console SQL

Benchmark

Tempo reale mediano su un Apple M1 Max a 10 core, ogni strumento con le impostazioni predefinite e le proprie regole:

Strumento4 EVTX Sysmon, 478 MB8 EVTX su 11 canali, 13,3 GB
Zircolite7,7 s30,2 s
Hayabusa 4.2.023,3 s500,3 s
Chainsaw 2.17.148,3 s183,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:

Categorie