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

Zircolite

Detecção autônoma baseada em Sigma para logs EVTX, Auditd, Sysmon for Linux, XML, CSV e JSON

python version

Zircolite executa regras Sigma sobre seus logs. Ele achata os eventos em SQLite, transforma cada regra em uma consulta SQL e relata o que corresponde, offline, em um único comando.

Zircolite em um terminal

  • Muitos formatos de log, detectados automaticamente: Windows EVTX (binário, XML, JSON), Auditd, Sysmon for Linux, EVTXtract, CSV, XML e JSON, simples ou em arquivos gzip, bzip2, ZIP e 7-Zip.
  • Regras Sigma como estão: YAML nativo convertido com pySigma, ou os conjuntos de regras prontos em rules/. Regras de correlação incluídas.
  • Rápido: um kernel de achatamento compilado, workers paralelos e pré-filtragem de regras; veja o benchmark.
  • Processamento de campos: divida campos empacotados e execute transformações Python em sandbox (decodificação Base64, extração de IOC, detecção de LOLBin, …).
  • Exportações: JSON, CSV e templates para Splunk, Elastic, OpenSearch, Timesketch, SARIF e ATT&CK Navigator.
  • Linha do tempo: cada detecção como uma linha em ordem cronológica, com um resumo de uma linha do evento, como CSV ou JSON lines (--timeline).
  • Zircolite Viewer: cada evento e detecção em um único zip que abre offline em um navegador.

📖 Leia a documentação, também em docs/.

Instalação

Binário autônomo, nada para instalar: baixe o zip para sua plataforma nas releases (Linux x64 e ARM64, macOS Apple silicon, Windows x64 e ARM64).

Docker:

docker pull wagga40/zircolite:latest

A partir do código-fonte com PDM, Python 3.11 a 3.14:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
pdm use -f 3.14
pdm install

pdm use mantém o PDM longe do Python 3.15 e das builds free-threaded, que ainda não são suportadas; qualquer versão de 3.11 a 3.13 também funciona. Com uv:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
uv sync --python 3.14+gil

As instalações a partir do código-fonte compilam um kernel nativo de flattening e precisam de um compilador C para isso; sem ele, recorrem a um kernel Python mais lento. Consulte Instalação para pacotes de compilador, detalhes do binário (quarentena do macOS, checksums) e permissões do Docker.

Início rápido

# Windows logs, with the default ruleset (rules/rules_windows_merged.json)
python3 zircolite.py --events sysmon.evtx

# Linux logs: the format is detected
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json

# Native Sigma rules, through pySigma pipelines
python3 zircolite.py --events logs/ --ruleset ./sigma/rules/windows/process_creation \
    --pipeline sysmon --pipeline windows-logsources

# Every event and detection, for the Zircolite Viewer
python3 zircolite.py --events logs/ --package

# The detections as a timeline, for Timeline Explorer or a spreadsheet
python3 zircolite.py --events logs/ --timeline

Com um binário, execute ./Zircolite em vez de python3 zircolite.py. A partir do código-fonte, prefixe o comando com pdm run (ou uv run), a menos que o ambiente esteja ativo. Com Docker, monte os logs e forneça caminhos absolutos:

docker run --rm --tty -v $PWD:/case/input:ro -v $PWD:/case/output \
    wagga40/zircolite:latest --events /case/input -o /case/output/detected_events.json

Em um host Linux, adicione --user "$(id -u):$(id -g)" e -l /case/output/zircolite.log: a imagem é executada como um usuário sem privilégios que não consegue gravar em um diretório que você possui.

As detecções vão para detected_events.json. Para logs com os quais testá-lo, consulte EVTX-ATTACK-SAMPLES.

[!IMPORTANT] Os conjuntos de regras padrão podem conter regras ruidosas ou lentas. Selecione regras para o seu ambiente, e atualize-as com python3 zircolite.py -U.

Como funciona

O Zircolite achata cada evento em uma linha de uma tabela SQLite, converte cada regra Sigma em uma consulta SQL sobre essa tabela e relata as linhas que correspondem.

Como o Zircolite funciona: os logs são achatados em linhas de uma tabela SQLite, as regras Sigma se tornam consultas SQL e as linhas correspondentes se tornam detecções

Zircolite Viewer

--package grava um único zip contendo todos os eventos da execução, com as detecções e os alertas de correlação vinculados a eles. Extraia-o e abra index.html: o visualizador funciona offline e oferece uma visão geral, as detecções, uma tabela de eventos que você pode pesquisar, filtrar e ordenar por qualquer coluna, uma linha do tempo, a matriz ATT&CK, entidades, empilhamento dos valores mais raros, logons e movimentação lateral, árvores de processos e um console SQL. Compartilhe um pacote como você faria com os logs de onde ele veio. Consulte Zircolite Viewer.

Um tour pelo Zircolite Viewer: a Visão Geral, uma detecção crítica e seus eventos, um filtro de coluna e os valores mais raros de uma coluna, um evento com seu comando PowerShell decodificado e sua atividade de processo, a linha do tempo, a matriz ATT&CK, entidades, empilhamento, movimentação lateral e sessões privilegiadas, a árvore de processos e o console SQL

Benchmark

Tempo de parede mediano em um Apple M1 Max de 10 núcleos, cada ferramenta com seus padrões e suas próprias regras:

Ferramenta4 EVTX do Sysmon, 478 MB8 EVTX em 11 canais, 13,3 GB
Zircolite7,7 s30,2 s
Hayabusa 4.2.023,3 s500,3 s
Chainsaw 2.17.148,3 s183,0 s

O Zircolite usa mais memória que os outros, por meio de seus workers paralelos (--no-parallel os desativa), e os conjuntos de regras diferem, portanto as contagens de detecção não são comparáveis. Consulte Benchmark para memória, configuração e como reproduzi-lo.

Tutoriais, referências e projetos relacionados

Tutoriais, escritos para versões anteriores:

Categorias