
Zircolite v3.8.1
Uma ferramenta de detecção autónoma baseada em SIGMA para logs de EVTX, Auditd e Sysmon para Linux.
Detecção autônoma baseada em Sigma para logs EVTX, Auditd, Sysmon for Linux, XML, CSV e JSON
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.

- 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.
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.

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:
| Ferramenta | 4 EVTX do Sysmon, 478 MB | 8 EVTX em 11 canais, 13,3 GB |
|---|---|---|
| Zircolite | 7,7 s | 30,2 s |
| Hayabusa 4.2.0 | 23,3 s | 500,3 s |
| Chainsaw 2.17.1 | 48,3 s | 183,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: