अपडेट पर वापस जाएँ
New releaseAug 5, 2026

Zircolite v3.8.1

EVTX, Auditd और Sysmon Linux लॉग्स के लिए एक स्टैंडअलोन SIGMA-आधारित डिटेक्शन टूल

साझा करें

EVTX, Auditd, Sysmon for Linux, XML, CSV, या JSONL/NDJSON लॉग्स के लिए स्टैंडअलोन SIGMA-आधारित डिटेक्शन टूल

python version

Zircolite Python 3 में लिखा गया एक स्टैंडअलोन टूल है जो आपको निम्नलिखित पर SIGMA नियमों का उपयोग करने की अनुमति देता है:

  • MS Windows EVTX (EVTX, XML, और JSONL प्रारूप)
  • Auditd लॉग्स
  • Sysmon for Linux
  • EVTXtract
  • CSV और XML लॉग्स
  • JSON Array लॉग्स

मुख्य विशेषताएँ

  • तेज़: 452,554 इवेंट्स बनाम 4,319 Sigma नियम 11.6 सेकंड में — समान लॉग्स पर Hayabusa से 2.1× तेज़ और Chainsaw से 9.8× तेज़, जो दोनों Rust टूल्स हैं। बेंचमार्क देखें।
  • स्वचालित लॉग प्रकार पहचान: magic bytes, सामग्री विश्लेषण, और regex-आधारित fallback का उपयोग करके लॉग प्रारूपों और टाइमस्टैम्प फ़ील्ड्स को स्वचालित रूप से पहचानता है -- अधिकांश मामलों में प्रारूप फ़्लैग निर्दिष्ट करने की आवश्यकता नहीं।
  • एकाधिक इनपुट प्रारूप: EVTX, JSON Lines, JSON Arrays, CSV, XML, और अन्य सहित विभिन्न लॉग प्रारूपों का समर्थन करता है। संपीड़ित या संग्रहीत लॉग्स (gzip, bzip2, ZIP, 7-Zip) समर्थित हैं; एन्क्रिप्टेड ZIP/7z के लिए --archive-password का उपयोग करें।
  • नेटिव Sigma समर्थन: Zircolite pySigma के साथ परिवर्तित करके सीधे नेटिव Sigma नियमों (YAML) का उपयोग कर सकता है।
  • SIGMA बैकएंड: यह एक SIGMA बैकएंड (SQLite) पर आधारित है और आंतरिक SIGMA-to-something रूपांतरण का उपयोग नहीं करता।
  • उन्नत लॉग मैनिपुलेशन: यह फ़ील्ड्स को विभाजित करके और रूपांतरण लागू करके इनपुट लॉग्स में हेरफेर कर सकता है, जिससे अधिक लचीला और शक्तिशाली लॉग विश्लेषण संभव होता है।
  • फ़ील्ड ट्रांसफ़ॉर्म: प्रोसेसिंग के दौरान फ़ील्ड्स पर कस्टम Python रूपांतरण लागू करें (जैसे, Base64 डिकोडिंग, hex-to-ASCII रूपांतरण)।
  • लचीला निर्यात: Zircolite Jinja टेम्पलेट्स का उपयोग करके परिणामों को कई प्रारूपों में निर्यात कर सकता है, जिनमें JSON, CSV, JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator, और अन्य शामिल हैं।
  • समृद्ध टर्मिनल आउटपुट: डिटेक्शन परिणाम MITRE ATT&CK तकनीक ID, ATT&CK रणनीति हीटमैप, नियम कवरेज मेट्रिक्स, और क्लिक करने योग्य आउटपुट फ़ाइल लिंक के साथ गंभीरता-क्रमबद्ध तालिकाओं में प्रदर्शित होते हैं।

आप Zircolite का उपयोग सीधे Python के साथ कर सकते हैं, या एक स्टैंडअलोन बाइनरी डाउनलोड कर सकते हैं जिसे Python इंस्टॉलेशन की आवश्यकता नहीं है।

दस्तावेज़ीकरण यहाँ (समर्पित साइट) या यहाँ (रिपॉज़िटरी निर्देशिका) उपलब्ध है।

आवश्यकताएँ / इंस्टॉलेशन

[!NOTE] इस अनुभाग में सब कुछ केवल तब लागू होता है जब Zircolite को स्रोत से चलाया जाता है। स्टैंडअलोन बाइनरीज़ और Docker इमेज अपना Python, हर निर्भरता और संकलित कर्नेल साथ लाते हैं: उन्हें किसी Python, पैकेज मैनेजर और C कंपाइलर की आवश्यकता नहीं है।

यह प्रोजेक्ट Python 3.10 और उससे ऊपर के साथ परीक्षित किया गया है। निर्भरताएँ pyproject.toml में घोषित हैं; उन्हें क्लोन किए गए रिपॉज़िटरी से PDM (pdm install), uv (uv sync) या Poetry (poetry install) के साथ इंस्टॉल करें।

नीचे दिए गए उदाहरण python3 zircolite.py चलाते हैं: टूल द्वारा बनाए गए वातावरण को सक्रिय करें, या उन्हें pdm run, uv run या poetry run के साथ प्रीफ़िक्स करें।

निर्भरताएँ

  • आवश्यक: orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zr, ijson, pyahocorasick, pyroaring
  • py7zr केवल तब आयात किया जाता है जब कोई .7z इनपुट खोला जाता है; ZIP, gzip और bzip2 मानक लाइब्रेरी का उपयोग करते हैं।

⚠️ पहले एक C कंपाइलर इंस्टॉल करें

स्रोत से इंस्टॉल करने पर Zircolite के flattening कर्नेल को Cython के साथ संकलित किया जाता है — लेकिन केवल तब जब कोई C कंपाइलर पहले से मौजूद हो। इसके बिना इंस्टॉल फिर भी सफल होता है और हर रन Python में इवेंट्स को flatten करता है, जो धीमा है। बाइनरीज़ और Docker इमेज पहले से संकलित कर्नेल के साथ बनाए जाते हैं, इसलिए यह उनसे संबंधित नहीं है।

इसलिए 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 Macs और Alpine जैसे musl-आधारित वितरणों के लिए कोई बाइनरी नहीं है; वहाँ 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 को executable के पथ से बदलें।

बाइनरीज़ कोड-साइन नहीं हैं। macOS ब्राउज़र से किए गए डाउनलोड को क्वारंटीन करता है, निकाली गई फ़ाइलें फ़्लैग विरासत में लेती हैं, और फिर Gatekeeper executable और _internal/ में प्रत्येक लाइब्रेरी को ब्लॉक कर देता है। पहले रन से पहले इसे पूरी निर्देशिका से पुनरावर्ती रूप से साफ़ करें:

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

त्वरित शुरुआत

दूसरों द्वारा बनाए गए (पुराने) ट्यूटोरियल (EN, ES, और FR) यहाँ देखें।

EVTX फ़ाइलें

सहायता इसके साथ उपलब्ध है:

# Don't forget to prefix with "pdm run" or "uv run" or "poetry run" when needed
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 इंस्टॉल किए गए पाइपलाइन दिखाता है। ऐसा नाम देना जो इंस्टॉल नहीं है, किसी भी नियम के परिवर्तित होने से पहले रन को exit code 2 के साथ रोक देता है।

अन्य लॉग प्रारूप

श्रेणियाँ