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

Strumento di rilevamento standalone basato su SIGMA per log EVTX, Auditd, Sysmon per Linux, XML, CSV o JSONL/NDJSON

python version

Zircolite è uno strumento standalone scritto in Python 3 che consente di utilizzare le regole SIGMA su:

  • MS Windows EVTX (formati EVTX, XML e JSONL)
  • Log Auditd
  • Sysmon per Linux
  • EVTXtract
  • Log CSV e XML
  • Log JSON Array

Caratteristiche principali

  • Veloce: 452.554 eventi contro 4.319 regole Sigma in 11,6 s — 2,1× più veloce di Hayabusa e 9,8× più veloce di Chainsaw sugli stessi log, entrambi strumenti scritti in Rust. Vedi il benchmark.
  • Rilevamento automatico del tipo di log: identifica automaticamente i formati di log e i campi timestamp utilizzando magic bytes, analisi del contenuto e fallback basato su regex -- nella maggior parte dei casi non è necessario specificare flag di formato.
  • Molteplici formati di input: supporta vari formati di log tra cui EVTX, JSON Lines, JSON Arrays, CSV, XML e altri. Sono supportati log compressi o archiviati (gzip, bzip2, ZIP, 7-Zip); usa --archive-password per ZIP/7z cifrati.
  • Supporto nativo Sigma: Zircolite può utilizzare direttamente le regole Sigma native (YAML) convertendole con pySigma.
  • Backend SIGMA: si basa su un backend SIGMA (SQLite) e non utilizza conversioni interne da SIGMA a qualcos'altro.
  • Manipolazione avanzata dei log: può manipolare i log di input suddividendo i campi e applicando trasformazioni, consentendo un'analisi dei log più flessibile e potente.
  • Trasformazioni dei campi: applica trasformazioni Python personalizzate ai campi durante l'elaborazione (ad esempio, decodifica Base64, conversione da hex ad ASCII).
  • Esportazione flessibile: Zircolite può esportare i risultati in molteplici formati utilizzando template Jinja, tra cui JSON, CSV, JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator e altri.
  • Output terminale avanzato: i risultati del rilevamento vengono visualizzati in tabelle ordinate per severità con ID delle tecniche MITRE ATT&CK, heatmap delle tattiche ATT&CK, metriche di copertura delle regole e link cliccabili ai file di output.

Puoi utilizzare Zircolite direttamente con Python, oppure scaricare un binario standalone che non richiede l'installazione di Python.

La documentazione è disponibile qui (sito dedicato) o qui (directory del repository).

Requisiti / Installazione

[!NOTE] Tutto ciò che è contenuto in questa sezione si applica solo quando si esegue Zircolite dal codice sorgente. I binari standalone e l'immagine Docker includono il proprio Python, tutte le dipendenze e il kernel compilato: non richiedono Python, né un package manager, né un compilatore C.

Il progetto è stato testato con Python 3.10 e versioni successive. Le dipendenze sono dichiarate in pyproject.toml; installale dal repository clonato con PDM (pdm install), uv (uv sync) o Poetry (poetry install).

Gli esempi seguenti eseguono python3 zircolite.py: attiva l'ambiente creato dallo strumento, oppure anteponi pdm run, uv run o poetry run.

Dipendenze

  • Obbligatorie: orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zr, ijson, pyahocorasick, pyroaring
  • py7zr viene importato solo quando si apre un input .7z; ZIP, gzip e bzip2 utilizzano la libreria standard.

⚠️ Installa prima un compilatore C

L'installazione dal sorgente compila il kernel di flattening di Zircolite con Cython — ma solo se è già presente un compilatore C. Senza di esso l'installazione riesce comunque e ogni esecuzione appiattisce gli eventi in Python, il che è più lento. I binari e l'immagine Docker sono costruiti con il kernel già compilato, quindi questo non li riguarda.

Quindi installa la toolchain prima di pdm install:

PiattaformaPrerequisito
Debian, Ubuntuapt install build-essential python3-dev
RHEL, Fedora, Rockydnf install gcc python3-devel
Alpineapk add build-base python3-dev
macOSxcode-select --install
WindowsBuild Tools for Visual Studio ("Desktop development with C++")

Cython stesso non necessita di installazione: è un requisito di build, recuperato in un ambiente di build isolato e mai aggiunto al tuo ambiente.

Binari standalone

Ogni release pubblica un pacchetto autocontenuto per piattaforma. Ognuno include il proprio Python e tutte le dipendenze, quindi non deve essere installato nulla in anticipo.

TargetArchivioFunziona su
linux-x64Zircolite-<version>-linux-x64.zipglibc 2.28 o successiva: RHEL 8, Debian 10, Ubuntu 20.04 e versioni successive
linux-arm64Zircolite-<version>-linux-arm64.zipglibc 2.28 o successiva
macos-arm64Zircolite-<version>-macos-arm64.zipmacOS 15 o successivo, Apple silicon
windows-x64Zircolite-<version>-windows-x64.zipWindows 10 o successivo
windows-arm64Zircolite-<version>-windows-arm64.zipWindows 10 o successivo, ARM64

I Mac Intel e le distribuzioni basate su musl come Alpine non hanno un binario; in quei casi usa Python o Docker.

unzip Zircolite-<version>-linux-x64.zip
cd Zircolite-<version>-linux-x64
./Zircolite --events sysmon.evtx --ruleset rules/rules_windows_merged.json

Negli esempi seguenti, sostituisci python3 zircolite.py con il percorso dell'eseguibile.

I binari non sono firmati digitalmente. macOS mette in quarantena un download effettuato con un browser, i file estratti ereditano il flag, e Gatekeeper blocca quindi l'eseguibile e ogni libreria in _internal/. Rimuovilo dall'intera directory, ricorsivamente, prima della prima esecuzione:

xattr -dr com.apple.quarantine Zircolite-<version>-macos-arm64

Avvio rapido

Dai un'occhiata ai (vecchi) tutorial realizzati da altri (EN, ES e FR) qui.

File EVTX

L'aiuto è disponibile con:

# Don't forget to prefix with "pdm run" or "uv run" or "poetry run" when needed
python3 zircolite.py -h

Se i tuoi file EVTX hanno l'estensione ".evtx":

# python3 zircolite.py --evtx <EVTX FOLDER or EVTX FILE> --ruleset <SIGMA RULESET> [--ruleset <OTHER RULESET>]
python3 zircolite.py --evtx sysmon.evtx --ruleset rules/rules_windows_merged.json

--ruleset può essere omesso: in tal caso Zircolite utilizza rules/rules_windows_merged.json, che copre Sysmon e i canali Windows generici.

Utilizzo delle regole Sigma native (YAML)

Puoi utilizzare direttamente le regole Sigma native (YAML):

# Single YAML rule
python3 zircolite.py --evtx sample.evtx --ruleset path/to/rule.yml

# Directory of Sigma rules
python3 zircolite.py --evtx sample.evtx --ruleset ./sigma/rules/windows/process_creation

# With pySigma pipelines
python3 zircolite.py --evtx sample.evtx --ruleset rule.yml --pipeline sysmon --pipeline windows-logsources

Categorie