
Zircolite v4.0.0
Ein eigenständiges SIGMA-basiertes Erkennungstool für EVTX-, Auditd- und Sysmon-for-Linux-Logs.

Eigenständiges SIGMA-basiertes Erkennungstool für EVTX-, Auditd-, Sysmon for Linux-, XML-, CSV- oder JSONL/NDJSON-Logs

Zircolite wendet Sigma-Erkennungsregeln an auf:
- MS Windows EVTX (EVTX-, XML- und JSONL-Formate)
- Auditd-Logs
- Sysmon for Linux
- EVTXtract
- CSV- und XML-Logs
- JSON-Array-Logs
Hauptfunktionen
- Formaterkennung: Erkennt Log-Formate und Zeitstempel-Felder automatisch. Liest gzip-, bzip2-, ZIP- und 7-Zip-Eingaben; verschlüsselte ZIP/7z-Eingaben beziehen ihr Passwort aus
--ask-archive-passwordoder der UmgebungsvariableZIRCOLITE_ARCHIVE_PASSWORD. - Sigma-Regeln: Konvertiert native YAML-Regeln mit pySigmas SQLite-Backend oder lädt vorkonvertierte JSON-Regelsätze.
- Korrelationen: Zählungen, Statistiken, zeitliche Sequenzen, Abwesenheitsbedingungen und verkettete Regeln, mit unterstützenden Ereignissen in jedem Alarm. Der Unified-Modus unterstützt dateiübergreifende Korrelationen.
- Feldverarbeitung: Teilt Schlüssel-Wert-Felder auf und wendet Python-Transformationen an, einschließlich Base64- und Hex-Dekodierung.
- Export: JSON, CSV und Jinja-Vorlagen für JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF und ATT&CK Navigator.
- Terminal-Ausgabe: Nach Schweregrad sortierte Erkennungen, MITRE ATT&CK-Techniken und -Taktiken, Regelabdeckung und Ausgabelinks.
Sie können Zircolite direkt mit Python verwenden oder eine eigenständige Binärdatei herunterladen, die keine Python-Installation erfordert.
Lesen Sie die Dokumentationsseite oder die Repository-Dokumentation.
Anforderungen / Installation
[!NOTE] Quellinstallationen benötigen Python und einen Paketmanager. Die eigenständigen Binärdateien und das Docker-Image enthalten Python, Abhängigkeiten und den kompilierten Kernel.
Das Projekt wurde mit Python 3.10 und höher getestet. Die Abhängigkeiten sind in
pyproject.toml deklariert; installieren Sie sie aus dem geklonten Repository mit
PDM (pdm install), uv
(uv sync) oder Poetry (poetry install).
Die folgenden Beispiele führen python3 zircolite.py aus: Aktivieren Sie die vom Tool
erstellte Umgebung oder stellen Sie ihnen pdm run, uv run oder poetry run voran.
Abhängigkeiten
Die Abhängigkeiten sind in pyproject.toml deklariert. Siehe
Abhängigkeiten für ihre Rollen.
⚠️ Installieren Sie zuerst einen C-Compiler
Quellinstallationen verwenden einen C-Compiler, um den Cython-Flattening-Kernel zu bauen. Wenn die Kompilierung
fehlschlägt, warnt das Build-Backend und die Installation wird mit dem langsameren Python-Kernel fortgesetzt.
Setzen Sie ZIRCOLITE_REQUIRE_NATIVE=1, um einen erfolgreichen nativen Build zu erzwingen.
Für native Beschleunigung installieren Sie die Toolchain vor pdm install:
| Plattform | Voraussetzung |
|---|---|
| Debian, Ubuntu | apt install build-essential python3-dev |
| RHEL, Fedora, Rocky | dnf install gcc python3-devel |
| Alpine | apk add build-base python3-dev |
| macOS | xcode-select --install |
| Windows | Build Tools for Visual Studio ("Desktop development with C++") |
Cython wird automatisch als Build-Abhängigkeit installiert.
Eigenständige Binärdateien
Jede Veröffentlichung veröffentlicht ein eigenständiges Paket pro Plattform. Jedes enthält sein eigenes Python und jede Abhängigkeit, sodass nichts zuerst installiert werden muss.
| Ziel | Archiv | Läuft auf |
|---|---|---|
linux-x64 | Zircolite-<version>-linux-x64.zip | glibc 2.28 oder neuer: RHEL 8, Debian 10, Ubuntu 20.04 und neuer |
linux-arm64 | Zircolite-<version>-linux-arm64.zip | glibc 2.28 oder neuer |
macos-arm64 | Zircolite-<version>-macos-arm64.zip | macOS 15 oder neuer, Apple Silicon |
windows-x64 | Zircolite-<version>-windows-x64.zip | Windows 10 oder neuer |
windows-arm64 | Zircolite-<version>-windows-arm64.zip | Windows 10 oder neuer, ARM64 |
Intel-Macs und musl-basierte Distributionen wie Alpine haben keine Binärdatei; verwenden Sie dort Python oder Docker.
unzip Zircolite-<version>-linux-x64.zip
cd Zircolite-<version>-linux-x64
./Zircolite --events sysmon.evtx --ruleset rules/rules_windows_merged.json
Ersetzen Sie in den folgenden Beispielen python3 zircolite.py durch den Pfad zur ausführbaren Datei.
Die Binärdateien sind nicht codesigniert. macOS unter Quarantäne stellt einen mit einem Browser heruntergeladenen Download unter Quarantäne, die
entpackten Dateien erben das Flag, und Gatekeeper blockiert dann die ausführbare Datei und jede
Bibliothek in _internal/. Entfernen Sie es aus dem gesamten Verzeichnis, rekursiv, vor dem ersten
Lauf:
xattr -dr com.apple.quarantine Zircolite-<version>-macos-arm64
Schnellstart
Die Tutorials behandeln frühere Versionen in Englisch, Spanisch und Französisch.
EVTX-Dateien
Hilfe ist verfügbar mit:
# Prefix with pdm run, uv run or poetry run if the environment is not active
python3 zircolite.py -h
Wenn Ihre EVTX-Dateien die Erweiterung ".evtx" haben:
# 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 kann weggelassen werden: Zircolite verwendet dann rules/rules_windows_merged.json, das
Sysmon und die generischen Windows-Kanäle abdeckt.
Verwendung nativer Sigma-Regeln (YAML)
Sie können native Sigma-Regeln (YAML) direkt verwenden:
# 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 zeigt die installierten Pipelines. Die Angabe einer nicht installierten
beendet den Lauf mit Exit-Code 2, bevor eine Regel konvertiert wird.
Andere Log-Formate
Zircolite erkennt das Log-Format in den meisten Fällen automatisch, daher sind explizite Format-Flags optional:
# 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