Назад к обновлениям
New releaseAug 5, 2026

Zircolite v3.8.1

Автономный инструмент обнаружения на основе SIGMA для журналов EVTX, Auditd и Sysmon для Linux

Поделиться

Автономный инструмент обнаружения на основе SIGMA для логов EVTX, Auditd, Sysmon for Linux, XML, CSV или JSONL/NDJSON

python version

Zircolite — это автономный инструмент, написанный на Python 3, который позволяет использовать правила SIGMA для:

  • MS Windows EVTX (форматы EVTX, XML и JSONL)
  • логов Auditd
  • Sysmon for Linux
  • EVTXtract
  • логов CSV и XML
  • логов JSON Array

Ключевые возможности

  • Быстрота: 452 554 события против 4 319 правил Sigma за 11,6 с — в 2,1 раза быстрее Hayabusa и в 9,8 раза быстрее Chainsaw на тех же логах, при том что оба этих инструмента написаны на Rust. См. бенчмарк.
  • Автоматическое определение типа логов: автоматически распознаёт форматы логов и поля временных меток с помощью magic bytes, анализа содержимого и резервного механизма на основе регулярных выражений — в большинстве случаев указывать флаги формата не нужно.
  • Множество входных форматов: поддерживает различные форматы логов, включая EVTX, JSON Lines, JSON Arrays, CSV, XML и другие. Поддерживаются сжатые и архивированные логи (gzip, bzip2, ZIP, 7-Zip); для зашифрованных ZIP/7z используйте --archive-password.
  • Нативная поддержка Sigma: Zircolite может напрямую использовать нативные правила Sigma (YAML), преобразуя их с помощью pySigma.
  • Бэкенд SIGMA: основан на бэкенде SIGMA (SQLite) и не использует внутреннее преобразование SIGMA во что-либо иное.
  • Продвинутая обработка логов: может манипулировать входными логами, разделяя поля и применяя преобразования, что обеспечивает более гибкий и мощный анализ логов.
  • Преобразования полей: применяйте пользовательские преобразования на Python к полям во время обработки (например, декодирование Base64, преобразование hex в ASCII).
  • Гибкий экспорт: Zircolite может экспортировать результаты в множество форматов с помощью Jinja шаблонов, включая JSON, CSV, JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator и другие.
  • Насыщенный вывод в терминал: результаты обнаружения отображаются в таблицах, отсортированных по критичности, с идентификаторами техник MITRE ATT&CK, тепловой картой тактик ATT&CK, метриками покрытия правил и кликабельными ссылками на выходные файлы.

Вы можете использовать Zircolite напрямую с Python или скачать автономный бинарный файл, не требующий установки Python.

Документация доступна здесь (отдельный сайт) или здесь (каталог репозитория).

Требования / Установка

[!NOTE] Всё в этом разделе относится только к запуску Zircolite из исходного кода. Автономные бинарные файлы и Docker-образ содержат собственный Python, все зависимости и скомпилированное ядро: им не нужны ни Python, ни менеджер пакетов, ни компилятор C.

Проект протестирован с Python 3.10 и выше. Зависимости объявлены в pyproject.toml; установите их из клонированного репозитория с помощью PDM (pdm install), uv (uv sync) или Poetry (poetry install).

Примеры ниже запускают python3 zircolite.py: активируйте окружение, созданное инструментом, или добавьте префикс pdm run, uv run или poetry run.

Зависимости

  • Обязательные: orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zr, ijson, pyahocorasick, pyroaring
  • py7zr импортируется только при открытии входного файла .7z; ZIP, gzip и bzip2 используют стандартную библиотеку.

⚠️ Сначала установите компилятор C

Установка из исходного кода компилирует ядро выравнивания Zircolite с помощью Cython — но только если компилятор C уже присутствует. Без него установка всё равно завершится успешно, и каждый запуск будет выравнивать события на Python, что медленнее. Бинарные файлы и Docker-образ собраны с уже скомпилированным ядром, поэтому их это не касается.

Поэтому установите инструментарий до pdm install:

ПлатформаПредварительное требование
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++")

Сам Cython устанавливать не нужно: это требование времени сборки, он загружается в изолированное окружение сборки и никогда не добавляется в ваше окружение.

Автономные бинарные файлы

Каждый релиз публикует самодостаточный пакет для каждой платформы. Каждый содержит собственный Python и все зависимости, поэтому ничего не нужно устанавливать заранее.

ЦельАрхивРаботает на
linux-x64Zircolite-<version>-linux-x64.zipglibc 2.28 или новее: RHEL 8, Debian 10, Ubuntu 20.04 и новее
linux-arm64Zircolite-<version>-linux-arm64.zipglibc 2.28 или новее
macos-arm64Zircolite-<version>-macos-arm64.zipmacOS 15 или новее, Apple silicon
windows-x64Zircolite-<version>-windows-x64.zipWindows 10 или новее
windows-arm64Zircolite-<version>-windows-arm64.zipWindows 10 или новее, ARM64

Для Intel Mac и дистрибутивов на musl, таких как Alpine, бинарных файлов нет; используйте там Python или Docker.

unzip Zircolite-<version>-linux-x64.zip
cd Zircolite-<version>-linux-x64
./Zircolite --events sysmon.evtx --ruleset rules/rules_windows_merged.json

В примерах ниже замените python3 zircolite.py на путь к исполняемому файлу.

Бинарные файлы не подписаны кодом. macOS помещает загруженный через браузер файл в карантин, извлечённые файлы наследуют этот флаг, и затем Gatekeeper блокирует исполняемый файл и каждую библиотеку в _internal/. Снимите его со всего каталога рекурсивно перед первым запуском:

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

Быстрый старт

Ознакомьтесь с (старыми) руководствами, созданными другими (EN, ES и FR) здесь.

Файлы EVTX

Справка доступна с помощью:

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

Если ваши файлы EVTX имеют расширение ".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 можно опустить: тогда Zircolite использует rules/rules_windows_merged.json, который покрывает Sysmon и общие каналы Windows.

Использование нативных правил Sigma (YAML)

Вы можете использовать нативные правила Sigma (YAML) напрямую:

# 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

Категории