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


Zircolite Python 3 में लिखा गया एक स्टैंडअलोन टूल है जो आपको SIGMA नियमों का उपयोग करने की अनुमति देता है:
--archive-password का उपयोग करें।आप Zircolite को सीधे Python के साथ उपयोग कर सकते हैं।
दस्तावेज़ीकरण यहाँ (समर्पित साइट) या यहाँ (रिपॉजिटरी निर्देशिका) उपलब्ध है।
प्रोजेक्ट का परीक्षण Python 3.10 और उससे ऊपर के संस्करणों के साथ किया गया है। निर्भरताएँ इंस्टॉल करें: pip3 install -r requirements.txt।
orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zrpy7zr केवल तब आयात किया जाता है जब इनपुट खोला जाता है; ZIP, gzip और bzip2 मानक लाइब्रेरी का उपयोग करते हैं।⚠️ कुछ सिस्टम (Mac, ARM, आदि) पर, evtx Python लाइब्रेरी के लिए Rust और Cargo इंस्टॉल होना आवश्यक हो सकता है।
दूसरों द्वारा बनाए गए (पुराने) ट्यूटोरियल (EN, ES, और FR) यहाँ देखें।
सहायता निम्न के साथ उपलब्ध है:
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
आप नेटिव 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
Zircolite अधिकांश मामलों में लॉग प्रारूप का स्वतः पता लगाता है, इसलिए स्पष्ट प्रारूप फ़्लैग वैकल्पिक हैं:
# 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
# Explicit format flags (override auto-detection)
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json --auditd
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json --sysmon4linux
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --jsononly
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --json-array
python3 zircolite.py --events <CSV_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --csv-input
python3 zircolite.py --events <XML_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --xml-input
--events तर्क एक फ़ाइल या फ़ोल्डर हो सकता है। यदि यह एक फ़ोल्डर है, तो वर्तमान फ़ोल्डर और उपफ़ोल्डर्स की सभी लॉग फ़ाइलें चयनित की जाएँगी (अक्षम करने के लिए --no-recursion का उपयोग करें)।--file-pattern का उपयोग करें।--no-auto-detect का उपयोग करें।[!TIP] यदि आप टूल आज़माना चाहते हैं, तो आप EVTX-ATTACK-SAMPLES (EVTX फ़ाइलें) के साथ परीक्षण कर सकते हैं।
# Pull the Docker image
docker pull wagga40/zircolite:latest
# If your logs and rules are in a specific directory
docker run --rm --tty \
-v $PWD:/case/input:ro \
-v $PWD:/case/output \
wagga40/zircolite:latest \
-e /case/input \
-o /case/output/detected_events.json \
-r /case/input/a_sigma_rule.yml
$PWD बदलें।कई फ़ाइलें दिए जाने पर, Zircolite उन्हें उपलब्ध RAM और CPU के विरुद्ध मापता है, एक डेटाबेस मोड (एक साझा डेटाबेस, या प्रति फ़ाइल एक) चुनता है, और यह तय करता है कि क्या उन्हें समानांतर में संसाधित करना उचित है — फिर चलते समय मेमोरी दबाव के अनुसार वर्करों की संख्या को अनुकूलित करता है।
python3 zircolite.py --evtx ./logs/ --ruleset rules/rules_windows_merged.json
इनमें से किसी को भी --no-auto-mode, --unified-db (सभी फ़ाइलों के लिए एक डेटाबेस, जो क्रॉस-फ़ाइल सहसंबंध नियमों के लिए आवश्यक है), --no-parallel या --parallel-workers N के साथ ओवरराइड करें। यह विकल्प कैसे चुना जाता है, इसके लिए स्वचालित प्रोसेसिंग अनुकूलन देखें।
जटिल या बार-बार होने वाले विश्लेषण वर्कफ़्लो के लिए, YAML कॉन्फ़िगरेशन फ़ाइल का उपयोग करें:
# Generate a fully commented configuration file
python3 zircolite.py --generate-config my_config.yaml
# Run with it
python3 zircolite.py --yaml-config my_config.yaml
# CLI arguments override the file
python3 zircolite.py --yaml-config my_config.yaml --evtx ./other_logs/
जनरेट की गई फ़ाइल प्रत्येक समर्थित कुंजी का दस्तावेज़ीकरण करती है; config/zircolite_example.yaml एक
कार्यशील उदाहरण है। मर्ज नियमों और उन विकल्पों के लिए YAML कॉन्फ़िगरेशन देखें
जिनका कोई YAML समकक्ष नहीं है।
python3 zircolite.py -U
वैकल्पिक रूप से, यदि आप Task (go-task) का उपयोग करते हैं, तो Zircolite-Rules-v2 से नियमों को अपडेट करने के लिए प्रोजेक्ट रूट से task update-rules चलाएँ। अन्य कार्यों (Docker build, clean, आदि) के लिए docs देखें।
[!IMPORTANT]
कृपया ध्यान दें कि ये रूलसेट Zircolite को तुरंत उपयोग करने के लिए प्रदान किए गए हैं, लेकिन आपको अपने स्वयं के रूलसेट बनाने चाहिए क्योंकि वे शोरगुल या धीमे हो सकते हैं। ये स्वतः-अपडेट होने वाले रूलसेट समर्पित रिपॉजिटरी में उपलब्ध हैं: Zircolite-Rules-v2।
दो कॉन्फ़िगरेशन विशेषताएँ, दोनों config/config.yaml में, इवेंट्स को इन्जेस्ट करते समय आकार देती हैं:
Hashes फ़ील्ड (SHA1=abc123,MD5=def456,SHA256=789xyz) अलग SHA1, MD5 और SHA256 फ़ील्ड्स बन जाता है, जिससे नियम सीधे हैश से मेल खा सकते हैं।split:
Hashes:
separator: ","
equal: "="
पूर्ण कॉन्फ़िगरेशन, Zircolite द्वारा शामिल ट्रांसफ़ॉर्म और अपने स्वयं के ट्रांसफ़ॉर्म का परीक्षण कैसे करें, इसके लिए फ़ील्ड स्प्लिटिंग और फ़ील्ड ट्रांसफ़ॉर्म देखें।
संपूर्ण दस्तावेज़ीकरण यहाँ उपलब्ध है।
Mini-GUI का उपयोग पूरी तरह से ऑफ़लाइन किया जा सकता है। यह आपको परिणाम प्रदर्शित करने और खोजने की अनुमति देता है। आप --package विकल्प के साथ स्वचालित रूप से एक Mini-GUI "पैकेज" जनरेट कर सकते हैं। आउटपुट निर्देशिका निर्दिष्ट करने के लिए --package-dir का उपयोग करें। Mini-GUI का उपयोग करना सीखने के लिए, दस्तावेज़ीकरण यहाँ देखें।



अंग्रेज़ी: Russ McRee ने अपने ब्लॉग पर SIGMA और Zircolite पर एक विस्तृत ट्यूटोरियल प्रकाशित किया है।
स्पेनिश: César Marín ने स्पेनिश में एक ट्यूटोरियल यहाँ प्रकाशित किया है।
फ्रेंच: IT-connect.fr ने फ्रेंच में Zircolite पर एक विस्तृत ट्यूटोरियल प्रकाशित किया है।
फ्रेंच: IT-connect.fr ने Zircolite का उपयोग करते हुए एक Hack the Box चैलेंज राइट-अप भी प्रकाशित किया है।
evtx_dump MIT लाइसेंस के अंतर्गत है।.7z