Volver a actualizaciones
Nuevo releaseSep 21, 2026

Zircolite v4.0.0

Una herramienta de detección independiente basada en SIGMA para registros de EVTX, Auditd y Sysmon de Linux

Compartir

Herramienta de detección autónoma basada en SIGMA para registros EVTX, Auditd, Sysmon para Linux, XML, CSV o JSONL/NDJSON

python version

Zircolite aplica reglas de detección Sigma a:

  • MS Windows EVTX (formatos EVTX, XML y JSONL)
  • Registros de Auditd
  • Sysmon para Linux
  • EVTXtract
  • Registros CSV y XML
  • Registros de arrays JSON

Características principales

  • Detección de formato: Identifica automáticamente los formatos de registro y los campos de marca temporal. Lee entradas gzip, bzip2, ZIP y 7-Zip; las entradas ZIP/7z cifradas toman su contraseña de --ask-archive-password o de la variable de entorno ZIRCOLITE_ARCHIVE_PASSWORD.
  • Reglas Sigma: Convierte reglas YAML nativas con el backend SQLite de pySigma o carga conjuntos de reglas JSON preconvertidos.
  • Correlaciones: Recuentos, estadísticas, secuencias temporales, condiciones de ausencia y reglas encadenadas, con eventos de soporte en cada alerta. El modo unificado admite correlaciones entre archivos.
  • Procesamiento de campos: Divide campos clave-valor y aplica transformaciones de Python, incluida la decodificación Base64 y hexadecimal.
  • Exportación: JSON, CSV y plantillas Jinja para JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF y ATT&CK Navigator.
  • Salida de terminal: Detecciones ordenadas por severidad, técnicas y tácticas de MITRE ATT&CK, cobertura de reglas y enlaces de salida.

Puedes usar Zircolite directamente con Python, o descargar un binario autónomo que no necesita instalación de Python.

Lee el sitio de documentación o la documentación del repositorio.

Requisitos / Instalación

[!NOTE] Las instalaciones desde código fuente necesitan Python y un gestor de paquetes. Los binarios autónomos y la imagen Docker incluyen Python, las dependencias y el kernel compilado.

El proyecto se ha probado con Python 3.10 y versiones superiores. Las dependencias se declaran en pyproject.toml; instálalas desde el repositorio clonado con PDM (pdm install), uv (uv sync) o Poetry (poetry install).

Los ejemplos siguientes ejecutan python3 zircolite.py: activa el entorno que haya creado la herramienta, o prefaplícalos con pdm run, uv run o poetry run.

Dependencias

Las dependencias se declaran en pyproject.toml. Consulta Dependencias para conocer sus funciones.

⚠️ Instala primero un compilador de C

Las instalaciones desde código fuente usan un compilador de C para compilar el kernel de aplanamiento en Cython. Si la compilación falla, el backend de compilación avisa y la instalación continúa con el kernel de Python más lento. Establece ZIRCOLITE_REQUIRE_NATIVE=1 para exigir una compilación nativa correcta.

Para la aceleración nativa, instala la cadena de herramientas antes de pdm install:

PlataformaRequisito previo
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 se instala automáticamente como dependencia de compilación.

Binarios autónomos

Cada release publica un paquete autocontenido por plataforma. Cada uno incluye su propio Python y todas las dependencias, por lo que no hay que instalar nada previamente.

DestinoArchivoSe ejecuta en
linux-x64Zircolite-<version>-linux-x64.zipglibc 2.28 o posterior: RHEL 8, Debian 10, Ubuntu 20.04 y posteriores
linux-arm64Zircolite-<version>-linux-arm64.zipglibc 2.28 o posterior
macos-arm64Zircolite-<version>-macos-arm64.zipmacOS 15 o posterior, Apple silicon
windows-x64Zircolite-<version>-windows-x64.zipWindows 10 o posterior
windows-arm64Zircolite-<version>-windows-arm64.zipWindows 10 o posterior, ARM64

Los Mac con Intel y las distribuciones basadas en musl, como Alpine, no tienen binario; usa Python o Docker en esos casos.

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

En los ejemplos siguientes, sustituye python3 zircolite.py por la ruta al ejecutable.

Los binarios no están firmados digitalmente. macOS pone en cuarentena una descarga hecha con un navegador, los archivos extraídos heredan el indicador y Gatekeeper bloquea entonces el ejecutable y todas las bibliotecas de _internal/. Elimínalo de todo el directorio, de forma recursiva, antes de la primera ejecución:

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

Inicio rápido

Los tutoriales cubren versiones anteriores en inglés, español y francés.

Archivos EVTX

La ayuda está disponible con:

# Prefix with pdm run, uv run or poetry run if the environment is not active
python3 zircolite.py -h

Si tus archivos EVTX tienen la extensión ".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 puede omitirse: Zircolite usa entonces rules/rules_windows_merged.json, que cubre Sysmon y los canales genéricos de Windows.

Uso de reglas Sigma nativas (YAML)

Puedes usar reglas Sigma nativas (YAML) directamente:

# 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 muestra las pipelines instaladas. Indicar una que no está instalada detiene la ejecución con el código de salida 2, antes de que se convierta ninguna regla.

Otros formatos de registro

Zircolite autodetecta el formato de registro en la mayoría de los casos, por lo que los indicadores explícitos de formato son opcionales:

# 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

Categorías