العودة إلى التحديثات
New releaseSep 6, 2026

deadair v0.8.0

يعثر على قواعد الكشف في نظام SIEM لديك التي تعمل بشكل أعمى.

مشاركة

deadair - SIEM detection coverage health

CI Release Go 1.26 License: Apache-2.0

يتحقق deadair مما إذا كانت كشوفات SIEM المفعّلة لا تزال تمتلك البيانات التليمترية التي تحتاجها.
يُبلّغ عن البيانات المفقودة أو القديمة، وتأخيرات الاستيعاب، وعدم تطابق المخططات.

يعمل محليًا · للقراءة فقط · بدون وكيل · بدون رفع بيانات تليمترية

اقرأ الشرح التقني · مُشار إليه في Detection Engineering Weekly · مُشار إليه في tl;dr sec #341

An Elastic scan showing missing and stale inputs, missing fields, and delayed events

حقول مفقودة وأحداث متأخرة في مختبر Elastic قابل للتخلص منه. افتح الصورة لمشاهدة التسجيل القصير مع أدوات التحكم في التشغيل، أو أعد إنتاجه باستخدام make record-scan-lab.

لماذا deadair

يمكن أن تكون القاعدة مفعّلة ومجدولة وبدون أخطاء بعد اختفاء البيانات التي تحتاجها. يقرأ deadair جرد القواعد الحيّ، ويحل مدخلات كل قاعدة باستخدام دلالات الواجهة الخلفية الأصلية، ويتحقق من المصادر الملموسة وراءها.

يكتشف:

  • القواعد التي تُحل فيها محددات الفهرس أو الاسم المستعار أو تدفق البيانات إلى لا شيء؛
  • القواعد ذات المحددات المختلطة حيث اختفى أحد المدخلات المُعلنة بينما لا يزال آخر يُحل؛
  • القواعد التي تكون فيها جميع المصادر المطابقة قديمة أو فارغة؛
  • على Elastic، القواعد التي تعمل مع حقول مُعلنة مفقودة؛
  • على Elastic وقواعد Sentinel Scheduled المؤهلة، نافذة عمياء لتأخر الاستيعاب؛
  • على Sentinel، القواعد التي تستخدم مصادرها المعروفة خطة جدول Basic أو Auxiliary غير متوافقة؛
  • على Elastic وOpenSearch، بيانات تليمترية سليمة لا يقرأها أي كشف مفعّل.

يدعم deadair كلاً من Elastic Security وOpenSearch Security Analytics وMicrosoft Sentinel.

البدء السريع

نزّل ملفًا تنفيذيًا لنظام macOS أو Linux أو Windows من إصدارات GitHub، أو ثبّته باستخدام Go:

go install github.com/alephnull-sh/deadair/cmd/deadair@latest

اطبع إعداد القراءة فقط لنظام SIEM الخاص بك:

deadair setup elastic      # Elastic Security
deadair setup opensearch   # OpenSearch Security Analytics
deadair setup sentinel     # Microsoft Sentinel

نفّذ إعدادًا واحدًا، ثم تحقق وامسح:

deadair check   # verify the credential can scan
deadair scan    # assess live rules and telemetry

رموز الخروج ثابتة: 0 يجتاز البوابة المُهيّأة، و1 يعني نتائج مُبوّبة، و2 يعني فشل الفحص.

للتحقيق في مصدر وكشوفاته المستهلكة:

deadair scan --json-out report.json --html-out report.html
deadair inspect --source CommonSecurityLog report.json

استخدم اسم مصدر من تقريرك. يغطي دليل التحقيق أيضًا تغذيات Sentinel الفردية، والصيانة، وتتبع الاستعادة.

كيف يعمل

المرحلةما يفعله deadair
الجرديقرأ الكشوفات المفعّلة والمدخلات التي تُعلنها
الحليستخدم حل الفهرس الأصلي على Elastic وOpenSearch؛ وعلى Sentinel، يجمع تحليل KQL مع أدلة الجداول وقوائم المراقبة والدوال المحفوظة وASIM والمساحات العاملة المترابطة
القياسيتحقق من حداثة المصدر وتوقيته، بالإضافة إلى المخطط والتخزين حيث تدعم الواجهة الخلفية ذلك
التقريريُصدر مخرجات طرفية وJSON وHTML وتجميعات الأسطول ومقاييس Prometheus مع الأدلة وراء كل حكم

يتبع Sentinel نفس نموذج القاعدة إلى المصدر ويضيف قوائم مراقبة حرفية ودوال محفوظة ومحللات ASIM ومساحات عمل مترابطة ونسب جدول الملخص. كما يُظهر متى صمت شريحة مُرشّحة من جدول مشترك أو تأخر خط أنابيب ملخص.

يصف دليل الاستخدام قواعد الأدلة، ويسجّل سجل التحقق تغطية الاختبار الحيّ.

A quiet London firewall feed and its dependent detection inside Sentinel CommonSecurityLog

تتشارك تغذيتا جدار حماية في CommonSecurityLog. تتوقف إحداهما؛ وتستمر الأخرى في الإبلاغ. يُظهر التسجيل فحوصات الفشل والاستعادة المحفوظة. راجع سجل التحقق لظروف المختبر.

يتحقق deadair مما إذا كانت البيانات التليمترية لكشف ما موجودة وسليمة. وهو لا يتحقق من منطق القاعدة ولا يثبت أن هجومًا محاكيًا سيُطلق تنبيهًا. استخدم التحقق الساكن من القواعد واختبارات الكشف من طرف إلى طرف لهذه المهام.

النتائج

النتيجةالمعنىالفحص الأول
لا مصدر مطابقلا يُحل أي من مدخلات القاعدة إلى فهرس مرئي أو تدفق بيانات أو جدول Sentinelتغييرات الأنماط، والتكاملات المفقودة، ونطاق بيانات الاعتماد
جميع المصادر قديمة أو فارغةكل مصدر مُحل غير قابل للاستخدام الآنإيقاع المصدر ومسار الاستيعاب
حقول مفقودةحقل مُعلن في قاعدة Elastic غائب أو غير قابل للبحث في مصدر واحد أو أكثر بعد قراءة كل تعيينات المصادرتغييرات المحلل والحزمة والتعيين
نافذة عمياء للتأخريتجاوز تأخر الاستيعاب p95 للأحداث المزدوجة هامش التراجع في القاعدةفاصل القاعدة، والتراجع، وتجاوز الطابع الزمني، وتأخر خط الأنابيب
تغطية مدخلات جزئيةيُحل التعبير الكامل، لكن أحد المحددات الإيجابية داخله يُحل فارغًاالترحيلات، والمحددات الاحتياطية، والبدائل المتوقعة؛ معلوماتي ما لم تُبوّبه السياسة
خطة مصدر غير متوافقةتعتمد قاعدة Sentinel على جدول Basic أو Auxiliary غير مؤهل لمسار أدلة قاعدة التحليلاتخطة الجدول ونوع القاعدة
تدهور المصدرمصدر قديم أو فارغ أو منخفض الحجم أو منحرف المخططسجل المصدر والصيانة المتوقعة
بيانات تليمترية غير مستخدمةعلى Elastic أو OpenSearch، تُخزَّن البيانات لكن لا يُحل إليها أي كشف محلي مفعّلالقواعد المعطّلة والجمع المتعمد
منتج متوقع صامتلم تُبلّغ تغذية بائع أو منتج أو جهاز Sentinel مُهيّأة خلال حدهامُرسِل تلك التغذية وجامعها
خط أنابيب ملخص غير سليمفشلت مهمة ملخص Sentinel ذات صلة أو تأخر آخر نجاح لهاسجل التنفيذ الأصلي واستعلام الملخص

تؤثر نتائج المنتج وخط أنابيب الملخص على حالة الخروج عندما تُحدد فئاتها في السياسة. تُبلَّغ تغذية جهاز صامتة بشكل منفصل عن المستهلكين الآخرين لجدولها المشترك.

كل حكم محدود بما يمكن لبيانات الاعتماد المُهيّأة رؤيته. تتضمن تقارير JSON التعبيرات المُهيّأة، والمصادر المُحلّة، وطريقة الحل، وحالة التقييم، وبيانات الواجهة الخلفية الوصفية، وأدلة القدرات. راجع دليل الاستخدام لأمثلة عملية والفرز.

توصيل SIEM

Elastic:

export DEADAIR_ES_URL=https://es.example.internal:9200
export DEADAIR_KIBANA_URL=https://kibana.example.internal:5601
export DEADAIR_API_KEY=<read-only-api-key>

deadair check
deadair scan --json-out report.json --html-out report.html

OpenSearch:

export DEADAIR_BACKEND=opensearch
export DEADAIR_OPENSEARCH_URL=https://opensearch.example.internal:9200
export DEADAIR_OPENSEARCH_USERNAME=deadair
export DEADAIR_OPENSEARCH_PASSWORD=<password>

deadair check
deadair scan

Microsoft Sentinel:

az login --tenant <tenant-id>

export DEADAIR_BACKEND=sentinel
export DEADAIR_AZURE_SUBSCRIPTION_ID=<subscription-id>
export DEADAIR_AZURE_RESOURCE_GROUP=<resource-group>
export DEADAIR_SENTINEL_WORKSPACE=<workspace-resource-name>
# Optional: JSON allowlist for literal workspace() targets.
# export DEADAIR_SENTINEL_REMOTES=/restricted/path/sentinel-remotes.json

deadair check
deadair scan

قبل أن يقيّم deadair مساحة العمل البعيدة المترابطة لقاعدة ما، يجب أن تكون مساحة العمل تلك قد نشرت Sentinel. يمكن لترابطات الاشتراك نفسه إثبات توفر المصدر. تحتاج القواعد عبر الاشتراكات إلى أدلة وقت التشغيل مرتبطة بهوية القاعدة الدقيقة. راجع تفاصيل استخدام Sentinel لقواعد الأدلة، وحدود مساحة العمل والمنطقة، وإرشادات الأداء من Microsoft.

استخدم الأدوار الموثقة للقراءة فقط لـ Elastic، أو OpenSearch، أو Microsoft Sentinel.

CI والأساطيل والمراقبة

# Gate a candidate rule against live source availability.
deadair scan --rule new-rule.json

# Fail only on new regressions between reports.
deadair diff yesterday.json today.json

# Scan multiple SIEM instances from one process.
deadair scan --fleet fleet.json

# Export cached scan results as Prometheus metrics.
deadair serve --interval 5m

يعزل scan --rule قاعدة أو كاشفًا مرشحًا أصليًا للواجهة الخلفية عن الأعمال المتراكمة غير ذات الصلة. يعمل diff مع التقارير المنقّحة المُنشأة بنفس المفتاح المحتفظ به لدى المستدعي. تشير تهيئة الأسطول إلى الأسرار عبر متغيرات البيئة بدلاً من تخزين قيم الأسرار.

يغلّف إجراء GitHub الرسمي بوابات المرشحين لنسخة واحدة لـ Elastic وOpenSearch وSentinel. يكتب ملخص مهمة، ويرفع تقرير JSON منقّحًا، ويمكنه تطبيق سياسة deadair دون تثبيت قاعدة. تُصادق سير عمل Sentinel على المُشغّل مع Azure أولاً؛ ولا يُعرّف الإجراء أي مدخلات لبيانات اعتماد Azure.

راجع سلوك بوابة CI، ونشر الأسطول وMSSP، وأمثلة Prometheus للتهيئات التي يمكنك اختبارها في بيئتك الخاصة.

الواجهات الخلفية المُختبرة

الواجهة الخلفيةالتحقق الحيّ
Elastic SecurityCI موثوق على 8.19.19 و9.4.4
OpenSearch Security AnalyticsCI موثوق على 2.19.6 و3.7.0
Microsoft Sentinelمطابقة مسجّلة اختيارية في مساحات عمل UK South قابلة للتخلص منها؛ راجع حالة التحقق

تشغيل مطابقة Sentinel يدوي، وليس CI مجدولًا.

نموذج الأمان

  • جميع استدعاءات المحوّل للقراءة فقط. تتحقق اختبارات Elastic وOpenSearch الموثوقة بالإضافة إلى فحوص مختبر Sentinel المنفصلة من أن هويات الفحص الموثقة لا يمكنها تنفيذ عمليات كتابة تمثيلية.
  • تُكتب التقارير وHTML وملفات الحالة ومخرجات الأسطول بصلاحيات 0600 على أنظمة POSIX.
  • يمكن أن تأتي بيانات الاعتماد من متغيرات البيئة أو الملفات، مما يتجنب الأسرار في وسائط العملية.
  • يستبدل --redact معرّفات المستأجر والقاعدة والمصدر والنمط والحقل والاعتمادية والنسب والمصدر والمساحة العاملة وقائمة المراقبة والقالب والحزمة بأسماء مستعارة HMAC مُفتاحية. لا تُسلسَل أبدًا تعبيرات فحص الاعتمادية المُتحقق منها ووسائط KQL الخاصة بها. كما أن --redact-key-file المُنشأ من بايتات عشوائية يمكّن التنقيح ويحافظ على ثبات الأسماء عبر التشغيلات المنفصلة.
  • يرتبط المُصدِّر بواجهة الاسترجاع افتراضيًا.
  • لا يمتلك deadair أي سلوك اتصال بالمنزل أو بيانات تليمترية للاستخدام.

تعامل مع التقارير كأدوات SOC حساسة: فهي تحدد الكشوفات العمياء، وأسماء المصادر، وفجوات المخطط، والجمع غير المستخدم.

التوثيق

المساهمة

افتح مشكلة للأخطاء أو الاقتراحات أو عمليات إعادة الإنتاج المنقّحة. يتولى المشرفون تغييرات الكود. راجع CONTRIBUTING.md للتفاصيل.

الترخيص

Apache-2.0.

الفئات