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

Zircolite v4.0.0

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

Поделиться

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

python version

Zircolite применяет правила обнаружения Sigma к:

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

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

  • Определение формата: Автоматически распознаёт форматы логов и поля временных меток. Читает входные данные gzip, bzip2, ZIP и 7-Zip; для зашифрованных ZIP/7z пароль берётся из --ask-archive-password или переменной окружения ZIRCOLITE_ARCHIVE_PASSWORD.
  • Правила Sigma: Преобразует нативные правила YAML с помощью SQLite-бэкенда pySigma или загружает предварительно сконвертированные наборы правил JSON.
  • Корреляции: Подсчёты, статистика, временные последовательности, условия отсутствия и цепочки правил, с сопутствующими событиями в каждом оповещении. Унифицированный режим поддерживает корреляции между файлами.
  • Обработка полей: Разделяет поля «ключ-значение» и применяет преобразования Python, включая декодирование Base64 и hex.
  • Экспорт: JSON, CSV и Jinja шаблоны для JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF и ATT&CK Navigator.
  • Вывод в терминал: Обнаружения, отсортированные по критичности, техники и тактики MITRE ATT&CK, покрытие правил и ссылки на вывод.

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

Читайте сайт документации или документацию репозитория.

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

[!NOTE] Установка из исходников требует Python и менеджер пакетов. Автономные бинарные файлы и образ Docker включают Python, зависимости и скомпилированное ядро.

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

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

Зависимости

Зависимости объявлены в pyproject.toml. Их роли описаны в разделе Зависимости.

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

Установка из исходников использует компилятор C для сборки ядра уплощения на Cython. Если компиляция не удалась, бэкенд сборки выдаёт предупреждение и установка продолжается с более медленным ядром Python. Установите ZIRCOLITE_REQUIRE_NATIVE=1, чтобы требовать успешной нативной сборки.

Для нативного ускорения установите инструментарий до 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

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

Учебные руководства охватывают более ранние версии на английском, испанском и французском языках.

Файлы EVTX

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

# Prefix with pdm run, uv run or poetry run if the environment is not active
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

--pipeline-list показывает установленные конвейеры. Указание не установленного останавливает запуск с кодом выхода 2, до того как будет преобразовано хоть одно правило.

Другие форматы логов

Zircolite автоматически определяет формат логов в большинстве случаев, поэтому явные флаги формата необязательны:

# 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

# Explicit format flags (override auto-detection)
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json --auditd
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json --sysmon4linux
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --jsononly
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --json-array
python3 zircolite.py --events <CSV_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --csv-input
python3 zircolite.py --events <XML_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --xml-input

Категории