
deadair v0.8.0
يعثر على قواعد الكشف في نظام SIEM لديك التي تعمل بشكل أعمى.
يتحقق deadair مما إذا كانت كشوفات SIEM المفعّلة لا تزال تمتلك البيانات التليمترية التي تحتاجها.
يُبلّغ عن البيانات المفقودة أو القديمة، وتأخيرات الاستيعاب، وعدم تطابق المخططات.
يعمل محليًا · للقراءة فقط · بدون وكيل · بدون رفع بيانات تليمترية
اقرأ الشرح التقني · مُشار إليه في Detection Engineering Weekly · مُشار إليه في tl;dr sec #341
حقول مفقودة وأحداث متأخرة في مختبر 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 ومساحات عمل مترابطة ونسب جدول الملخص. كما يُظهر متى صمت شريحة مُرشّحة من جدول مشترك أو تأخر خط أنابيب ملخص.
يصف دليل الاستخدام قواعد الأدلة، ويسجّل سجل التحقق تغطية الاختبار الحيّ.
تتشارك تغذيتا جدار حماية في 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 Security | CI موثوق على 8.19.19 و9.4.4 |
| OpenSearch Security Analytics | CI موثوق على 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 حساسة: فهي تحدد الكشوفات العمياء، وأسماء المصادر، وفجوات المخطط، والجمع غير المستخدم.
التوثيق
- دليل الاستخدام — الفحوصات الأولى، وأدلة التقرير، والنتائج، وبوابات CI، والحالة، والأساطيل
- التحقيق في فجوة تليمترية — مستهلكو المصدر، والتغذيات المتوقعة، والاستعادة
- حالة التحقق — المسارات المُختبرة والحدود الحالية
- البنية — عقد الواجهة الخلفية، ونموذج البيانات، وخصائص الأمان، والحدود
- أفضل الممارسات — ترتيب الطرح، وسياق التنبيه، والتوجيه
- دليل MSSP — الأسرار، والتنقيح، والجدولة، ومعالجة فشل المستأجر
- كشوفات تعمل لكن لا ترى — المشكلة ومحاكاة قابلة لإعادة الإنتاج
المساهمة
افتح مشكلة للأخطاء أو الاقتراحات أو عمليات إعادة الإنتاج المنقّحة. يتولى المشرفون تغييرات الكود. راجع CONTRIBUTING.md للتفاصيل.
الترخيص
Apache-2.0.

