Retour aux mises à jour
New releaseSep 21, 2026

Zircolite v4.0.0

Un outil de détection autonome basé sur SIGMA pour les journaux EVTX, Auditd et Sysmon pour Linux.

Partager

Outil de détection autonome basé sur SIGMA pour les journaux EVTX, Auditd, Sysmon for Linux, XML, CSV ou JSONL/NDJSON

python version

Zircolite applique les règles de détection Sigma aux :

  • MS Windows EVTX (formats EVTX, XML et JSONL)
  • Journaux Auditd
  • Sysmon for Linux
  • EVTXtract
  • Journaux CSV et XML
  • Journaux JSON Array

Fonctionnalités clés

  • Détection de format : identifie automatiquement les formats de journaux et les champs d'horodatage. Lit les entrées gzip, bzip2, ZIP et 7-Zip ; les entrées ZIP/7z chiffrées prennent leur mot de passe depuis --ask-archive-password ou la variable d'environnement ZIRCOLITE_ARCHIVE_PASSWORD.
  • Règles Sigma : convertit les règles YAML natives avec le backend SQLite de pySigma ou charge des ensembles de règles JSON préconvertis.
  • Corrélations : comptages, statistiques, séquences temporelles, conditions d'absence et règles chaînées, avec les événements de support dans chaque alerte. Le mode unifié prend en charge les corrélations inter-fichiers.
  • Traitement des champs : découpe les champs clé-valeur et applique des transformations Python, y compris le décodage Base64 et hexadécimal.
  • Export : JSON, CSV et templates Jinja pour JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF et ATT&CK Navigator.
  • Sortie terminal : détections triées par sévérité, techniques et tactiques MITRE ATT&CK, couverture des règles et liens de sortie.

Vous pouvez utiliser Zircolite directement avec Python, ou télécharger un binaire autonome qui ne nécessite aucune installation de Python.

Consultez le site de documentation ou la documentation du dépôt.

Prérequis / Installation

[!NOTE] Les installations depuis les sources nécessitent Python et un gestionnaire de paquets. Les binaires autonomes et l'image Docker incluent Python, les dépendances et le noyau compilé.

Le projet a été testé avec Python 3.10 et versions supérieures. Les dépendances sont déclarées dans pyproject.toml ; installez-les depuis le dépôt cloné avec PDM (pdm install), uv (uv sync) ou Poetry (poetry install).

Les exemples ci-dessous exécutent python3 zircolite.py : activez l'environnement créé par l'outil, ou préfixez-les avec pdm run, uv run ou poetry run.

Dépendances

Les dépendances sont déclarées dans pyproject.toml. Voir Dependencies pour leurs rôles.

⚠️ Installez d'abord un compilateur C

Les installations depuis les sources utilisent un compilateur C pour construire le noyau d'aplatissement Cython. Si la compilation échoue, le backend de build avertit et l'installation se poursuit avec le noyau Python plus lent. Définissez ZIRCOLITE_REQUIRE_NATIVE=1 pour exiger une compilation native réussie.

Pour l'accélération native, installez la chaîne d'outils avant pdm install :

PlateformePrérequis
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 est installé automatiquement comme dépendance de build.

Binaires autonomes

Chaque release publie un paquet autonome par plateforme. Chacun embarque son propre Python et toutes les dépendances, donc rien n'a besoin d'être installé au préalable.

CibleArchiveFonctionne sur
linux-x64Zircolite-<version>-linux-x64.zipglibc 2.28 ou ultérieur : RHEL 8, Debian 10, Ubuntu 20.04 et plus récents
linux-arm64Zircolite-<version>-linux-arm64.zipglibc 2.28 ou ultérieur
macos-arm64Zircolite-<version>-macos-arm64.zipmacOS 15 ou ultérieur, Apple silicon
windows-x64Zircolite-<version>-windows-x64.zipWindows 10 ou ultérieur
windows-arm64Zircolite-<version>-windows-arm64.zipWindows 10 ou ultérieur, ARM64

Les Mac Intel et les distributions basées sur musl comme Alpine n'ont pas de binaire ; utilisez Python ou Docker dans ce cas.

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

Dans les exemples ci-dessous, remplacez python3 zircolite.py par le chemin de l'exécutable.

Les binaires ne sont pas signés. macOS met en quarantaine un téléchargement effectué avec un navigateur, les fichiers extraits héritent du drapeau, et Gatekeeper bloque alors l'exécutable et chaque bibliothèque dans _internal/. Supprimez-le de tout le répertoire, récursivement, avant la première exécution :

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

Démarrage rapide

Les tutoriels couvrent les versions antérieures en anglais, espagnol et français.

Fichiers EVTX

L'aide est disponible avec :

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

Si vos fichiers EVTX ont l'extension ".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 peut être omis : Zircolite utilise alors rules/rules_windows_merged.json, qui couvre Sysmon et les canaux Windows génériques.

Utilisation des règles Sigma natives (YAML)

Vous pouvez utiliser directement les règles Sigma natives (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 affiche les pipelines installés. En nommer un qui n'est pas installé arrête l'exécution avec le code de sortie 2, avant toute conversion de règle.

Autres formats de journaux

Zircolite détecte automatiquement le format de journal dans la plupart des cas, donc les indicateurs de format explicites sont facultatifs :

# 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

Catégories