
Un outil de détection autonome basé sur SIGMA pour les journaux EVTX, Auditd et Sysmon pour Linux.
Zircolite exécute les règles Sigma sur vos journaux. Il aplatit les événements dans SQLite, transforme chaque règle en requête SQL et signale ce qui correspond, hors ligne, en une seule commande.

rules/. Règles de corrélation incluses.--timeline).📖 Consultez la documentation, également dans docs/.
Binaire autonome, rien à installer : téléchargez le zip correspondant à votre plateforme depuis les releases (Linux x64 et ARM64, macOS Apple silicon, Windows x64 et ARM64).
Docker :
docker pull wagga40/zircolite:latest
Depuis les sources avec PDM, Python 3.11 à 3.14 :
git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
pdm use -f 3.14
pdm install
pdm use éloigne PDM de Python 3.15 et des builds free-threaded, qui ne sont
pas encore pris en charge ; n'importe laquelle des versions 3.11 à 3.13 fonctionne également. Avec
uv :
git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
uv sync --python 3.14+gil
Les installations depuis les sources compilent un noyau natif de flattening et nécessitent un compilateur C ; sans celui-ci, elles se rabattent sur un noyau Python plus lent. Voir Installation pour les paquets de compilateurs, les détails des binaires (quarantaine macOS, sommes de contrôle) et les permissions Docker.
# 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
Avec un binaire, exécutez ./Zircolite au lieu de python3 zircolite.py. Depuis les sources, préfixez la commande avec pdm run (ou uv run) sauf si l'environnement est actif. Avec Docker, montez les journaux et fournissez des chemins absolus :
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
Sur un hôte Linux, ajoutez --user "$(id -u):$(id -g)" et -l /case/output/zircolite.log : l'image s'exécute en tant qu'utilisateur non privilégié qui ne peut pas écrire dans un répertoire qui vous appartient.
Les détections sont écrites dans detected_events.json. Pour des journaux sur lesquels l'essayer, voir
EVTX-ATTACK-SAMPLES.
[!IMPORTANT] Les jeux de règles par défaut peuvent contenir des règles bruyantes ou lentes. Sélectionnez les règles adaptées à votre environnement, et mettez-les à jour avec
python3 zircolite.py -U.
Zircolite aplatit chaque événement en une ligne d'une table SQLite, convertit chaque règle Sigma en une requête SQL sur cette table, et signale les lignes correspondantes.
--package écrit un fichier zip contenant tous les événements de l'exécution, avec les détections et
les alertes de corrélation qui leur sont liées. Extrayez-le et ouvrez index.html : la visionneuse fonctionne hors ligne
et propose une vue d'ensemble, les détections, une table d'événements que vous pouvez rechercher, filtrer et trier par
n'importe quelle colonne, une chronologie, la matrice ATT&CK, les entités, l'empilement des valeurs les plus rares, les connexions et
les mouvements latéraux, les arbres de processus et une console SQL. Partagez un package comme vous partageriez les journaux dont il
provient. Voir Zircolite Viewer.

Temps d'exécution médian sur un Apple M1 Max à 10 cœurs, chaque outil avec ses paramètres par défaut et ses propres règles :
| Outil | 4 EVTX Sysmon, 478 Mo | 8 EVTX sur 11 canaux, 13,3 Go |
|---|---|---|
| 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 |