Voltar às atualizações
New releaseSep 21, 2026

Zircolite v4.0.0

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

Compartilhar

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

python version

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-password ou da variável de ambiente ZIRCOLITE_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:

PlataformaPré-requisito
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++")

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.

AlvoArquivoExecuta em
linux-x64Zircolite-<version>-linux-x64.zipglibc 2.28 ou posterior: RHEL 8, Debian 10, Ubuntu 20.04 e mais recentes
linux-arm64Zircolite-<version>-linux-arm64.zipglibc 2.28 ou posterior
macos-arm64Zircolite-<version>-macos-arm64.zipmacOS 15 ou posterior, Apple silicon
windows-x64Zircolite-<version>-windows-x64.zipWindows 10 ou posterior
windows-arm64Zircolite-<version>-windows-arm64.zipWindows 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

Categorias