قواعد الكشف هي موطن القواعد التي تستخدمها Elastic Security. يتم استخدام هذا المستودع لتطوير وصيانة واختبار والتحقق من صحة وإصدار قواعد محرك الكشف الخاص بـ Elastic Security.
تم الإعلان عن هذا المستودع لأول مرة في منشور مدونة Elastic، حيث يفتح Elastic Security مستودع قواعد الكشف العام. للحصول على محتوى إضافي، راجع الندوة عبر الويب المصاحبة، Elastic Security: تقديم المستودع العام لقواعد الكشف.
قواعد الكشف
جدول المحتويات
نظرة عامة على هذا المستودع
ابدء
كيفية المساهمة
الترخيص
أسئلة؟ مشاكل؟ اقتراحات؟
تحتوي قواعد الكشف على أكثر من مجرد ملفات قواعد ثابتة. يحتوي هذا المستودع أيضًا على تعليمات برمجية لاختبار الوحدة في Python والتكامل مع Detection Engine في Kibana.
المجلد | وصف |
---|---|
detection_rules/ | وحدة بايثون لتحليل القواعد والتحقق من صحتها وتعبئتها |
etc/ | ملفات متنوعة، مثل مخططات ECS وBeats |
hunting/ | الدليل الجذر حيث يتم تخزين حزمة البحث عن التهديدات والاستعلامات |
kibana/ | مكتبة Python للتعامل مع مكالمات API إلى Kibana ومحرك الكشف |
kql/ | مكتبة بايثون للتحليل والتحقق من صحة لغة الاستعلام كيبانا |
rta/ | يستخدم رمز Red Team Automation لمحاكاة تقنيات المهاجم، ويستخدم لاختبار القواعد |
rules/ | الدليل الجذر حيث يتم تخزين القواعد |
rules_building_block/ | الدليل الجذر حيث يتم تخزين قواعد الكتلة البرمجية الإنشائية |
tests/ | كود بايثون لقواعد اختبار الوحدة |
على الرغم من أنه يمكن إضافة القواعد عن طريق إنشاء ملفات .toml
يدويًا، إلا أننا لا نوصي بذلك. يتكون هذا المستودع أيضًا من وحدة بايثون التي تساعد في إنشاء القواعد واختبار الوحدة. بافتراض أن لديك Python 3.12+، قم بتشغيل الأمر أدناه لتثبيت التبعيات باستخدام ملف makefile:
✗ makepython3.12 -m pip install --upgrade pip setuptools البحث في الفهارس: https://pypi.org/simpleالمتطلبات مستوفاة بالفعل: النقطة في /opt/homebrew/lib/python3.12/site-packages (24.0) المتطلبات مستوفاة بالفعل : أدوات الإعداد في /opt/homebrew/lib/python3.12/site-packages (69.1.1)python3.12 -m venv ./env/detection-rules-build./env/detection-rules-build/bin/pip install --upgrade pip setuptoolsالبحث في الفهارس: https://pypi.org/ تم استيفاء المتطلبات البسيطة بالفعل: نقطة في ./env/detection-rules-build/lib/python3.12/site-packages (24.0)جمع أدوات الإعداد باستخدام أدوات الإعداد المخزنة مؤقتًا-69.1.1-py3-none-any.whl.metadata (6.2 كيلو بايت)استخدام أدوات الإعداد المخزنة مؤقتًا-69.1 .1-py3-none-any.whl (819 كيلو بايت) تثبيت الحزم المجمعة: أدوات الإعدادتم تثبيت أدوات الإعداد بنجاح-69.1.1تثبيت حزم kql و kibana......
أو قم بتثبيت التبعيات باستخدام الأمر التالي:
$ pip3 install ".[dev]"جارٍ جمع jsl==0.2.4 تنزيل jsl-0.2.4.tar.gz (21 كيلو بايت)جمع jsonschema==3.2.0 تنزيل jsonschema-3.2.0-py2.py3-none- Any.whl (56 كيلو بايت) |██████████████████████████████| 56 كيلو بايت 318 كيلو بايت/ثانيةطلبات التجميع==2.22.0 تنزيل الطلبات-2.22.0-py2.py3-none-any.whl (57 كيلو بايت) |██████████████████████████████| 57 كيلو بايت 1.2 ميجابايت/ثانية نقرة التجميع==7.0 تنزيل Click-7.0-py2.py3-none-any.whl (81 كيلو بايت) |██████████████████████████████| 81 كيلو بايت 2.6 ميجابايت/ثانية...
ملاحظة: حزم kibana
و kql
غير متوفرة على PyPI ويجب تثبيتها من دليل lib
. تحتوي حزمة hunting
على تبعيات اختيارية ليتم تثبيتها باستخدام pip3 install ".[hunting]
.
# التثبيت من repositorypip3، قم بتثبيت git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kql# أو محليًا من أجل Developmentpip3، قم بتثبيت lib/kibana lib/kql
تذكر، تأكد من تنشيط بيئتك الافتراضية إذا كنت تستخدم واحدة. إذا تم التثبيت عبر make
، فسيتم إنشاء البيئة الافتراضية المرتبطة في env/detection-rules-build/
. إذا كنت تواجه مشكلة في استخدام بيئة Python 3.12، فيرجى مراجعة القسم ذي الصلة في دليل استكشاف الأخطاء وإصلاحها.
للتأكد من أن كل شيء قد تم تثبيته بشكل صحيح، قم بتشغيله باستخدام علامة --help
$ python -m Detection_rules --helpUsage: Detection_rules [OPTIONS] COMMAND [ARGS]... أوامر لمستودع قواعد الكشف. الخيارات: -d, --debug / -n, --no-debug طباعة تتبع الاستثناء الكامل لتتبع الأخطاء عند حدوث أخطاء -h, --help إظهار هذه الرسالة والخروج. الأوامر: إنشاء القاعدة إنشاء قاعدة الكشف. dev أوامر للتطوير والإدارة بواسطة أوامر داخلية للتكامل مع Elasticsearch. import-rules قواعد الاستيراد من json أو toml أو Kibana القاعدة المصدرة... kibana أوامر التكامل مع Kibana. التحديث الشامل تحديث قواعد متعددة بناءً على نتائج Eql. تطبيع البيانات تطبيع الطوابع الزمنية لبيانات Elasticsearch وفرزها. البحث عن القواعد استخدم KQL أو EQL للعثور على القواعد المطابقة. اختبار تشغيل اختبارات الوحدة على كافة القواعد. تنظيف ملفات toml-lint مع بعض تنسيقات toml البسيطة. التحقق من صحة الكل تحقق من صحة جميع القواعد مقابل المخطط. التحقق من صحة القاعدة تحقق مما إذا كانت القاعدة التي تم تنظيمها في القواعد يتم التحقق من صحتها مقابل... قاعدة العرض عرض قاعدة داخلية أو ملف قاعدة محدد.
ملحوظة:
إذا كنت تستخدم بيئة افتراضية، فتأكد من تنشيطها قبل تشغيل الأمر أعلاه.
إذا كنت تستخدم Windows، فقد يتعين عليك أيضًا تشغيل <venv_directory>Scriptspywin32_postinstall.py -install
وفقًا لإصدار python لديك.
يصف دليل المساهمة كيفية استخدام أوامر create-rule
test
لإنشاء قاعدة جديدة واختبارها عند المساهمة في قواعد الكشف.
لمزيد من الاستخدام المتقدم لواجهة سطر الأوامر (CLI)، راجع دليل CLI.
نحن نرحب بمساهماتك في قواعد الكشف! قبل المساهمة، يرجى التعرف على هذا المستودع وبنية الدليل الخاصة به وفلسفتنا حول إنشاء القواعد. عندما تكون مستعدًا للمساهمة، اقرأ دليل المساهمة للتعرف على كيفية تحويل أفكار الكشف إلى قواعد إنتاج والتحقق من صحتها من خلال الاختبار.
كل شيء في هذا المستودع — القواعد، التعليمات البرمجية، هيئة الطرق والمواصلات، وما إلى ذلك — مرخص بموجب الترخيص المرن الإصدار 2. تم تصميم هذه القواعد لاستخدامها في سياق Detection Engine ضمن تطبيق Elastic Security. إذا كنت تستخدم خدمة Elastic Cloud المدارة لدينا أو التوزيع الافتراضي لبرنامج Elastic Stack الذي يتضمن المجموعة الكاملة من الميزات المجانية، فستحصل على أحدث القواعد في المرة الأولى التي تنتقل فيها إلى محرك الكشف.
في بعض الأحيان، قد نرغب في استيراد القواعد من مستودع آخر لديه ترخيص بالفعل، مثل MIT أو Apache 2.0. وهذا مرحب به، طالما أن الترخيص يسمح بالترخيص من الباطن بموجب ترخيص Elastic v2. نحتفظ بإشعارات الترخيص هذه في ملف NOTICE.txt
ونرخصها من الباطن باسم Elastic License v2 مع جميع القواعد الأخرى. نطلب أيضًا من المساهمين التوقيع على اتفاقية ترخيص المساهم قبل المساهمة بالكود في أي مستودعات مرنة.
هل تريد معرفة المزيد عن محرك الكشف؟ تحقق من نظرة عامة في كيبانا.
يتضمن هذا المستودع قواعد جديدة ومحدثة لم يتم إصدارها بعد. لرؤية أحدث مجموعة من القواعد التي تم إصدارها مع المكدس، راجع مرجع القاعدة المعدة مسبقًا.
إذا كنت ترغب في الإبلاغ عن نتيجة إيجابية كاذبة أو أي نوع آخر من الأخطاء، فيرجى إنشاء مشكلة GitHub والتحقق من وجود مشكلة موجودة أولاً.
هل تحتاج إلى مساعدة بشأن قواعد الكشف؟ انشر مشكلة أو اسأل في منتدى مناقشة الأمان الخاص بنا أو قناة #security-detection-rules داخل مساحة عمل Slack.