Torna agli aggiornamenti
New releaseSep 21, 2026

Zircolite v4.0.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 applica le regole di rilevamento Sigma a:

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

Caratteristiche principali

  • Rilevamento del formato: identifica automaticamente i formati di log e i campi timestamp. Legge input gzip, bzip2, ZIP e 7-Zip; gli input ZIP/7z cifrati prendono la password da --ask-archive-password o dalla variabile d'ambiente ZIRCOLITE_ARCHIVE_PASSWORD.
  • Regole Sigma: converte le regole YAML native con il backend SQLite di pySigma o carica ruleset JSON preconvertiti.
  • Correlazioni: conteggi, statistiche, sequenze temporali, condizioni di assenza e regole concatenate, con eventi di supporto in ogni alert. La modalità unificata supporta correlazioni cross-file.
  • Elaborazione dei campi: suddivide i campi chiave-valore e applica trasformazioni Python, inclusa la decodifica Base64 ed esadecimale.
  • Esportazione: JSON, CSV e template Jinja per JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF e ATT&CK Navigator.
  • Output terminale: rilevamenti ordinati per severità, tecniche e tattiche MITRE ATT&CK, copertura delle regole e link di output.

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

Consulta il sito della documentazione o la documentazione del repository.

Requisiti / Installazione

[!NOTE] Le installazioni da sorgente richiedono Python e un gestore di pacchetti. I binari standalone e l'immagine Docker includono Python, le dipendenze e il kernel compilato.

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

Le dipendenze sono dichiarate in pyproject.toml. Vedi Dipendenze per i loro ruoli.

⚠️ Installa prima un compilatore C

Le installazioni da sorgente usano un compilatore C per compilare il kernel di flattening Cython. Se la compilazione fallisce, il backend di build avvisa e l'installazione prosegue con il kernel Python più lento. Imposta ZIRCOLITE_REQUIRE_NATIVE=1 per richiedere una build nativa riuscita.

Per l'accelerazione nativa, 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 viene installato automaticamente come dipendenza di build.

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; usa Python o Docker in quei casi.

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

I tutorial coprono le versioni precedenti in inglese, spagnolo e francese.

File EVTX

L'aiuto è disponibile con:

# Prefix with pdm run, uv run or poetry run if the environment is not active
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: Zircolite usa quindi rules/rules_windows_merged.json, che copre Sysmon e i canali Windows generici.

Uso delle regole Sigma native (YAML)

Puoi usare 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

--pipeline-list mostra le pipeline installate. Indicarne una non installata interrompe l'esecuzione con codice di uscita 2, prima che qualsiasi regola venga convertita.

Altri formati di log

Zircolite rileva automaticamente il formato del log nella maggior parte dei casi, quindi i flag di formato espliciti sono opzionali:

# Auto-detection (recommended) - Zircolite identifies the format automatically
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json

Categorie