
محرك قواعد سيغما داخل نواة لينكس باستخدام eBPF. التركيز على قدرات الوقاية
🛡️ تطمح owLSM لتصبح المعيار الذهبي للوقاية والكشف في لينكس 🛡️
owLSM هو وكيل eBPF LSM يطبق محرك قواعد Sigma ذو حالة يركز على الوقاية.
ما هو المشروع: يركز owLSM على ثلاثة أشياء رئيسية:
1) قدرات الوقاية باستخدام محرك قواعد Sigma منفّذ عبر eBPF LSM.
2) ربط البيانات بين نقاط ربط eBPF لقدرات وقاية تعتمد على الحالة.
3) مراقبة أمنية مركزة للنظام حيث يحتوي كل حدث على كل السياق الذي يحتاجه خبير الأمن.
لمن هو: الفرق التي تدافع عن أنظمة لينكس، الشركات التي تقدم حلول أمنية للينكس/السحابة، والمطورون أو الوكلاء الذين يبحثون عن أمثلة تنفيذ لحلول eBPF معقدة.
أين يُستخدم بالفعل: عملاء شركتي الأمن Cybereason و LevelBlue.
لماذا أنشأنا هذا المشروع: بعد سنوات من استخدام مشاريع مثل Falco و Tetragon و KubeArmor، كنا نواجه نفس الثغرات باستمرار. هذه الحلول تقدم قدرات وقائية (تنفيذ) قليلة أو معدومة. تلك التي توفر سياسات تنفيذ تفتقر إلى ميزات أساسية مثل مطابقة السلاسل الفرعية، المطابقة بالتعبيرات المنتظمة، مطابقة أمر العملية الكامل، وإنهاء العملية الأب للعمليات الخبيثة.
قررنا اتباع نهج مختلف تمامًا:
1) استخدام هيكل قواعد Sigma القياسي ودعم أكبر عدد ممكن من ميزات قواعد Sigma (نضيف المزيد باستمرار).
2) حل القيد الأساسي لمشاريع eBPF LSM الحالية: أنها عديمة الحالة. تقريبًا كل البيانات المتاحة في قاعدة تنفيذ تأتي فقط من الخطاف الحالي.
أنشأنا برامج eBPF ذات حالة تستخدم نقاط خطاف متعددة متتالية وتربط البيانات بينها، بحيث عند نقطة قرار المنع، يكون لدى المستخدمين جميع البيانات التي يحتاجونها. لقد ذهبنا بهذا النهج القائم على الحالة إلى أبعد حد، بحيث على سبيل المثال، عند مراقبة أحداث الكتابة، يمكنك تحديد قواعد المنع بناءً على أمر الصدفة الذي بدأ عملية الكتابة.
ساعدنا في النمو وحماية العالم بإعطائنا ⭐
دعم السحابة سيأتي في المستقبل
# سحب صورة دوكر
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# بدء حاوية البناء
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# بناء ملفات owlsm و rules_generator الثنائية
make -j$(nproc)
# بناء اختبارات الوحدة
make test -j$(nproc)
# الخروج من الحاوية، لا يمكن تشغيل owlsm أو الاختبارات داخل دوكر
exit
قم بهذا خارج دوكر
cd build/owlsm/bin
# التشغيل بدون إعدادات
sudo ./owlsm
# التشغيل مع إعدادات "-c"
sudo ./owlsm -c /config/path.json
# "-e" لاستثناء معرّفات العمليات (PID) (عادةً نريد استثناء العمليات الأب)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" لمعرّفات العمليات المحمية. هذه المعرّفات محمية من العبث
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# تشغيل owlsm وتمرير الإعدادات عبر stdin (عند عدم الرغبة في حفظ ملف الإعدادات على القرص)
# يتوقع owLSM تلقي الإعدادات في غضون 10 ثوانٍ.
sudo ./owlsm --stdin
ملاحظة: يستغرق بدء تشغيل owLSM 10–50 ثانية حسب النظام. هذا هو مدقق eBPF الذي يتحقق من صحة جميع البرامج قبل تحميلها في النواة. بمجرد الانتهاء، يصبح owLSM نشطًا بالكامل.
انظر Rules/README.md
cd build/unit_tests/bin
# تشغيل اختبارات الوحدة
sudo ./unit_tests
قبل تشغيل owLSM، تحقق من أن نظامك يلبي المتطلبات:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
انظر src/Tests/Automation/README.md لتشغيل اختبارات الأتمتة.
للمشاركة في مشروع owLSM، زر ديسكورد.
إذا كانت لديك أي أسئلة، يرجى طرحها على ديسكورد أو فتح مشكلة ذات صلة.
📖 قم بزيارة الوثائق لكل ما تحتاجه — كيفية استخدام المشروع، كتابة القواعد، فهم البنية، والمزيد.
نحن متحمسون لاهتمامك بالمساهمة في owLSM!
يرجى مراجعة CONTRIBUTING.md لمعرفة القواعد والاتفاقيات وحتى أدوات الذكاء الاصطناعي والوكلاء الرائعة التي ستساعدك كثيرًا!
owLSM مرخص بموجب GNU General Public License v2.0 (GPL-2.0).
يحتوي هذا المشروع على عدة مكتبات خارجية بتراخيصها الخاصة (جميعها متوافقة مع GPL). انظر THIRD_PARTY_LICENSES للتفاصيل.