Voltar às atualizações
New releaseAug 5, 2026

Zircolite v3.8.1

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

Compartilhar

Ferramenta de Detecção Standalone Baseada em SIGMA para Logs EVTX, Auditd, Sysmon para Linux, XML, CSV ou JSONL/NDJSON

python version

Zircolite é uma ferramenta standalone escrita em Python 3 que permite usar regras SIGMA em:

  • MS Windows EVTX (formatos EVTX, XML e JSONL)
  • Logs Auditd
  • Sysmon para Linux
  • EVTXtract
  • Logs CSV e XML
  • Logs JSON Array

Principais Recursos

  • Rápido: 452.554 eventos contra 4.319 regras Sigma em 11,6 s — 2,1× mais rápido que o Hayabusa e 9,8× mais rápido que o Chainsaw nos mesmos logs, ambos ferramentas escritas em Rust. Veja o benchmark.
  • Detecção Automática do Tipo de Log: Identifica automaticamente formatos de log e campos de timestamp usando magic bytes, análise de conteúdo e fallback baseado em regex -- sem necessidade de especificar flags de formato na maioria dos casos.
  • Múltiplos Formatos de Entrada: Suporta vários formatos de log, incluindo EVTX, JSON Lines, JSON Arrays, CSV, XML e mais. Logs comprimidos ou arquivados (gzip, bzip2, ZIP, 7-Zip) são suportados; use --archive-password para ZIP/7z criptografados.
  • Suporte Nativo a Sigma: O Zircolite pode usar diretamente regras Sigma nativas (YAML) convertendo-as com pySigma.
  • Backend SIGMA: É baseado em um backend SIGMA (SQLite) e não usa conversão interna de SIGMA para outra coisa.
  • Manipulação Avançada de Logs: Pode manipular logs de entrada dividindo campos e aplicando transformações, permitindo uma análise de logs mais flexível e poderosa.
  • Transformações de Campos: Aplica transformações personalizadas em Python aos campos durante o processamento (por exemplo, decodificação Base64, conversão hex-to-ASCII).
  • Exportação Flexível: O Zircolite pode exportar resultados para múltiplos formatos usando templates Jinja, incluindo JSON, CSV, JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator e mais.
  • Saída Rica no Terminal: Resultados de detecção exibidos em tabelas ordenadas por severidade com IDs de técnicas MITRE ATT&CK, heatmap de táticas ATT&CK, métricas de cobertura de regras e links clicáveis para arquivos de saída.

Você pode usar o Zircolite diretamente com Python, ou baixar um binário standalone que não precisa de instalação do Python.

A documentação está disponível aqui (site dedicado) ou aqui (diretório do repositório).

Requisitos / Instalação

[!NOTE] Tudo nesta seção se aplica apenas ao executar o Zircolite a partir do código-fonte. Os binários standalone e a imagem Docker carregam seu próprio Python, todas as dependências e o kernel compilado: eles não precisam de Python, nem gerenciador de pacotes, nem compilador C.

O projeto foi testado com Python 3.10 e superior. As dependências sã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

  • Obrigatórias: orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zr, ijson, pyahocorasick, pyroaring
  • py7zr é importado apenas quando uma entrada .7z é aberta; ZIP, gzip e bzip2 usam a biblioteca padrão.

⚠️ Instale um compilador C primeiro

Instalar a partir do código-fonte compila o kernel de flattening do Zircolite com Cython — mas apenas se um compilador C já estiver presente. Sem um, a instalação ainda é bem-sucedida e cada execução faz o flattening dos eventos em Python, o que é mais lento. Os binários e a imagem Docker são construídos com o kernel já compilado, então isso não os afeta.

Portanto, instale o 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 ("Desenvolvimento para Desktop com C++")

O Cython em si não precisa ser instalado: é um requisito de tempo de build, obtido em um ambiente de build isolado e nunca adicionado ao seu ambiente.

Binários Standalone

Cada release publica um pacote autocontido por plataforma. Cada um carrega seu próprio Python e todas as dependências, então nada precisa ser instalado primeiro.

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

Macs Intel e distribuições baseadas em musl, como 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 do executável.

Os binários não são assinados digitalmente. O macOS coloca em quarentena um download feito com um navegador, os arquivos extraídos herdam a flag, e o Gatekeeper então bloqueia o executável e todas as bibliotecas em _internal/. Remova-a de todo o diretório, recursivamente, antes da primeira execução:

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

Início Rápido

Confira tutoriais (antigos) feitos por outros (EN, ES e FR) aqui.

Arquivos EVTX

A ajuda está disponível com:

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

Se seus arquivos 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 então usa rules/rules_windows_merged.json, que cobre o Sysmon e os canais genéricos do Windows.

Usando Regras Sigma Nativas (YAML)

Você 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

Categorias