العودة إلى التحديثات
New releaseAug 5, 2026

Zircolite v3.8.1

أداة كشف مستقلة قائمة على SIGMA لسجلات EVTX وAuditd وSysmon على لينكس.

مشاركة

أداة كشف مستقلة قائمة على SIGMA لسجلات EVTX وAuditd وSysmon for Linux وXML وCSV أو JSONL/NDJSON

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 ثانية — أسرع بـ 2.1× من Hayabusa و9.8× من Chainsaw على نفس السجلات، وكلاهما أداتان مكتوبتان بلغة Rust. راجع المعيار المرجعي.
  • الكشف التلقائي عن نوع السجل: يحدد تلقائيًا صيغ السجلات وحقول الطوابع الزمنية باستخدام magic bytes وتحليل المحتوى والرجوع إلى التعبيرات النمطية (regex) -- دون الحاجة إلى تحديد أعلام الصيغة في معظم الحالات.
  • صيغ إدخال متعددة: يدعم صيغ سجلات متنوعة تشمل EVTX وJSON Lines وJSON Arrays وCSV وXML وغيرها. السجلات المضغوطة أو المؤرشفة (gzip وbzip2 وZIP و7-Zip) مدعومة؛ استخدم --archive-password لملفات ZIP/7z المشفرة.
  • دعم Sigma الأصلي: يمكن لـ Zircolite استخدام قواعد Sigma الأصلية (YAML) مباشرةً عبر تحويلها باستخدام pySigma.
  • خلفية SIGMA: تعتمد على خلفية SIGMA (SQLite) ولا تستخدم تحويلًا داخليًا من SIGMA إلى شيء آخر.
  • معالجة متقدمة للسجلات: يمكنها معالجة سجلات الإدخال عبر تقسيم الحقول وتطبيق التحويلات، مما يتيح تحليلًا أكثر مرونة وقوة للسجلات.
  • تحويلات الحقول: تطبيق تحويلات Python مخصصة على الحقول أثناء المعالجة (مثل فك ترميز Base64 والتحويل من hex إلى ASCII).
  • تصدير مرن: يمكن لـ Zircolite تصدير النتائج إلى صيغ متعددة باستخدام قوالب Jinja templates، بما في ذلك JSON وCSV وJSONL وSplunk وElastic وOpenSearch وTimesketch وSARIF وATT&CK Navigator وغيرها.
  • مخرجات طرفية غنية: تُعرض نتائج الكشف في جداول مرتبة حسب الخطورة مع معرّفات تقنيات MITRE ATT&CK، وخريطة حرارية لتكتيكات 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 أولًا

التثبيت من المصدر يُصرِّف نواة التسوية (flattening kernel) الخاصة بـ Zircolite باستخدام Cython — لكن فقط إذا كان مُصرِّف C موجودًا بالفعل. بدون مُصرِّف ينجح التثبيت رغم ذلك، وكل تشغيل يسوّي الأحداث في Python بدلًا من ذلك، وهو أبطأ. أما الملفات التنفيذية وصورة 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 Mac ولا للتوزيعات القائمة على musl مثل Alpine؛ استخدم 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 بمسار الملف التنفيذي.

الملفات التنفيذية غير موقّعة رقميًا. يقوم macOS بحجر أي تنزيل يتم عبر متصفح، وترث الملفات المستخرجة هذه العلامة، فيمنع Gatekeeper الملف التنفيذي وكل مكتبة في _internal/. أزل العلامة من الدليل بأكمله، بشكل تكراري، قبل التشغيل الأول:

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

البدء السريع

اطّلع على دروس (قديمة) أعدّها آخرون (بالإنجليزية والإسبانية والفرنسية) هنا.

ملفات 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 الخطوط الأنبوبية (pipelines) المثبّتة. تسمية خط أنابيب غير مثبّت توقف التشغيل برمز خروج 2، قبل تحويل أي قاعدة.

صيغ سجلات أخرى

يكتشف 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

الفئات