
Zircolite v4.0.0
Uma ferramenta de detecção autónoma baseada em SIGMA para logs de EVTX, Auditd e Sysmon para Linux.

Ferramenta de Deteção Autónoma Baseada em SIGMA para Registos EVTX, Auditd, Sysmon para Linux, XML, CSV ou JSONL/NDJSON

Zircolite aplica regras de deteção Sigma a:
- MS Windows EVTX (formatos EVTX, XML e JSONL)
- Registos Auditd
- Sysmon para Linux
- EVTXtract
- Registos CSV e XML
- Registos JSON Array
Funcionalidades Principais
- Deteção de formato: Identifica formatos de registo e campos de timestamp automaticamente. Lê entradas gzip, bzip2, ZIP e 7-Zip; entradas ZIP/7z encriptadas obtêm a palavra-passe de
--ask-archive-passwordou da variável de ambienteZIRCOLITE_ARCHIVE_PASSWORD. - Regras Sigma: Converte regras YAML nativas com o backend SQLite do pySigma ou carrega conjuntos de regras JSON pré-convertidos.
- Correlações: Contagens, estatísticas, sequências temporais, condições de ausência e regras encadeadas, com eventos de suporte em cada alerta. O modo unificado suporta correlações entre ficheiros.
- Processamento de campos: Divide campos chave-valor e aplica transformações Python, incluindo descodificação Base64 e hexadecimal.
- Exportação: JSON, CSV e templates Jinja para JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF e ATT&CK Navigator.
- Saída no terminal: Deteções ordenadas por severidade, técnicas e táticas MITRE ATT&CK, cobertura de regras e ligações de saída.
Pode usar o Zircolite diretamente com Python, ou descarregar um binário autónomo que não necessita de instalação do Python.
Leia o site de documentação ou a documentação do repositório.
Requisitos / Instalação
[!NOTE] As instalações a partir do código-fonte necessitam de Python e de um gestor de pacotes. Os binários autónomos e a imagem Docker incluem o Python, as dependências e o kernel compilado.
O projeto foi testado com Python 3.10 e superior. As dependências estão declaradas em
pyproject.toml; instale-as a partir do repositório clonado com
PDM (pdm install), uv
(uv sync) ou Poetry (poetry install).
Os exemplos abaixo executam python3 zircolite.py: ative o ambiente criado pela ferramenta,
ou prefixe-os com pdm run, uv run ou poetry run.
Dependências
As dependências estão declaradas em pyproject.toml. Consulte
Dependências para conhecer as suas funções.
⚠️ Instale primeiro um compilador C
As instalações a partir do código-fonte usam um compilador C para compilar o kernel de
achatamento Cython. Se a compilação falhar, o backend de compilação emite um aviso e a
instalação prossegue com o kernel Python mais lento.
Defina ZIRCOLITE_REQUIRE_NATIVE=1 para exigir uma compilação nativa bem-sucedida.
Para aceleração nativa, instale a toolchain antes de pdm install:
| Plataforma | Pré-requisito |
|---|---|
| Debian, Ubuntu | apt install build-essential python3-dev |
| RHEL, Fedora, Rocky | dnf install gcc python3-devel |
| Alpine | apk add build-base python3-dev |
| macOS | xcode-select --install |
| Windows | Build Tools for Visual Studio ("Desktop development with C++") |
O Cython é instalado automaticamente como dependência de compilação.
Binários autónomos
Cada release publica um pacote autónomo por plataforma. Cada um transporta o seu próprio Python e todas as dependências, pelo que nada precisa de ser instalado previamente.
| Alvo | Arquivo | Executa em |
|---|---|---|
linux-x64 | Zircolite-<version>-linux-x64.zip | glibc 2.28 ou posterior: RHEL 8, Debian 10, Ubuntu 20.04 e mais recentes |
linux-arm64 | Zircolite-<version>-linux-arm64.zip | glibc 2.28 ou posterior |
macos-arm64 | Zircolite-<version>-macos-arm64.zip | macOS 15 ou posterior, Apple silicon |
windows-x64 | Zircolite-<version>-windows-x64.zip | Windows 10 ou posterior |
windows-arm64 | Zircolite-<version>-windows-arm64.zip | Windows 10 ou posterior, ARM64 |
Os Macs Intel e as distribuições baseadas em musl, como o Alpine, não têm binário; use Python ou Docker nesses casos.
unzip Zircolite-<version>-linux-x64.zip
cd Zircolite-<version>-linux-x64
./Zircolite --events sysmon.evtx --ruleset rules/rules_windows_merged.json
Nos exemplos abaixo, substitua python3 zircolite.py pelo caminho para o executável.
Os binários não têm assinatura de código. O macOS coloca em quarentena uma transferência
feita com um navegador, os ficheiros extraídos herdam esse sinalizador, e o Gatekeeper
bloqueia então o executável e todas as bibliotecas em _internal/. Remova-o de todo o
diretório, recursivamente, antes da primeira execução:
xattr -dr com.apple.quarantine Zircolite-<version>-macos-arm64
Início Rápido
Os tutoriais cobrem versões anteriores em inglês, espanhol e francês.
Ficheiros EVTX
A ajuda está disponível com:
# Prefixe com pdm run, uv run ou poetry run se o ambiente não estiver ativo
python3 zircolite.py -h
Se os seus ficheiros EVTX tiverem a extensão ".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 pode ser omitido: o Zircolite usa então rules/rules_windows_merged.json, que
cobre o Sysmon e os canais genéricos do Windows.
Usar Regras Sigma Nativas (YAML)
Pode usar regras Sigma nativas (YAML) diretamente:
# 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 os pipelines instalados. Indicar um que não esteja instalado
interrompe a execução com o código de saída 2, antes de qualquer regra ser convertida.
Outros Formatos de Registo
O Zircolite deteta automaticamente o formato de registo na maioria dos casos, pelo que os sinalizadores de formato explícitos são opcionais:
# 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