
نظام كشف سلوكي في نقاط النهاية قائم على التعلم الآلي لأجهزة لينكس
كشف الشذوذ السلوكي لنظام Linux، مدعوم بـ eBPF وتعلّم الآلة.
يتعلّم Guardd كيف يتصرف مضيف Linux عادةً ويرصد النشاط الذي يختلف عن هذا الأساس المرجعي. تجمع مستشعرات النواة عمليات تنفيذ البرامج ومحاولات الاتصال الصادرة عبر TCP؛ ويقيّم Isolation Forest نوافذ النشاط الناتجة التي تبلغ مدتها دقيقة واحدة. تتضمن التنبيهات الدرجة، والسياق السلوكي، والتفسيرات لمساعدتك في التحقيق.
تتولى خدمة خلفية عملية الجمع والتدريب والكشف. تتيح لك واجهة المستخدم الرسومية وواجهة الطرفية فحص التنبيهات واستخدام الموارد بينما تستمر الخدمة الخلفية في العمل.
الحالة: تجريبي وقيد التطوير النشط. تعتمد جودة الكشف على عبء العمل والأساس المرجعي وإعدادات الحساسية.
التثبيت · الاستخدام · الإعداد · كيف يعمل · التحديث · استكشاف الأخطاء وإصلاحها


تستخدم لقطات شاشة سطح المكتب تنبيهات نموذجية وحالة خدمة محاكاة.

يستخدم المثبِّت المرفق apt-get وsystemd. يُعد Ubuntu 24.04 LTS نقطة
انطلاق عملية؛ وتحتاج أنظمة Debian إلى حزم مكافئة. تتطلب التوزيعات الأخرى
تثبيت التبعيات يدويًا.
python3. لا يستوفي Python 3.10
الافتراضي في Ubuntu 22.04 متطلبات الحزمة./sys/kernel/btf/vmlinux، ونقاط تتبع
العمليات والمقابس المطلوبة.bpftool لتوليد ترويسات النواة وهياكل BPF.على Ubuntu، ثبّت Git وأدوات النواة قبل تشغيل المثبِّت:```bash sudo apt-get update sudo apt-get install -y git linux-tools-common "linux-tools-$(uname -r)" python3 --version bpftool version test -r /sys/kernel/btf/vmlinux && echo "Kernel BTF available"
يجب أن تتوافق حزمة kernel-tools مع النواة قيد التشغيل لديك. على Debian، يتوفر `bpftool`
كحزمة منفصلة. يوفّر المثبّت بقية تبعيات البناء و
Python، لكنه لا يثبّت `bpftool` صراحةً.
### تثبيت الخدمة الخلفية وواجهة سطح المكتب الرسومية```bash
git clone https://github.com/benny-e/guardd.git
cd guardd
sudo bash install.sh --gui
لتركيب بدون واجهة رسومية، شغّل sudo bash install.sh بدلاً من ذلك.
يقوم المثبّت بنسخ التطبيق إلى /opt/guardd، وإنشاء بيئته
الافتراضية، وبناء مجمّع eBPF، وتثبيت /usr/local/bin/guardd،
وتمكين guardd.service عند الإقلاع. لا يقوم بتشغيل الخدمة. مع --gui،
يقوم أيضاً بتثبيت تبعيات وقت تشغيل Qt، ومشغّل سطح المكتب، والأيقونة.
قبل التشغيل الأول، افتح ملف التكوين المثبّت:```bash sudoedit /opt/guardd/config.toml
اضبط قسم `[paths]` الخاص به على مسارات مطلقة:```toml
[paths]
sensor_path = "/opt/guardd/ebpf/guardd"
db_path = "/opt/guardd/data/features.db"
model_path = "/opt/guardd/data/model.bundle"
يستخدم إعداد المستودع مسارات نسبية. تعمل هذه المسارات من دليل العمل /opt/guardd الخاص بالخدمة، لكن مشغّل سطح المكتب يمكن أن يبدأ من مكان آخر.
تتيح المسارات المطلقة للـ daemon وواجهة الرسومية وواجهة سطر الأوامر استخدام البيانات نفسها.
راجع إعدادات التدريب في Configuration، ثم ابدأ:```bash sudo systemctl start guardd.service systemctl status guardd.service sudo journalctl -u guardd.service -f
أول تشغيل يجمع البيانات قبل توفر النموذج. قد تكون الخدمة النشطة لا تزال في مرحلة الجمع هذه؛ تحقق من سجلاتها للتدريب والكشف.
## الاستخدام
### واجهة سطح المكتب الرسومية
افتح **Guardd** من قائمة التطبيقات، أو شغّل:```bash
guardd gui
شغّل واجهة المستخدم الرسومية كمستخدم سطح المكتب العادي. تقرأ قاعدة البيانات الموجودة وتحدّث كل خمس ثوانٍ. إغلاقها يترك الخدمة الخلفية قيد التشغيل.
| الصفحة | ما يمكنك فعله |
|---|---|
| نظرة عامة | تحقق من الخدمة، وتنبيهات اليوم، وتوفر ملف النموذج، واستخدام المعالج/الذاكرة، ومعرّف العملية، ومدة التشغيل، وتفاصيل المضيف/النواة، وحجم نافذة الـ 60 ثانية، والقياسات الحديثة. اختر تنبيهًا حديثًا لفحصه. |
| التنبيهات | ابحث في أسماء العمليات والمسارات والوجهات والأسباب؛ وصفِّ حسب الخطورة وآخر 24 ساعة أو 7 أيام أو 30 يومًا أو كل الوقت؛ واختر تنبيهًا لعرض درجته وحدّه العتبي وتفسيراته ونشاطه وسياقه. |
استخدم تحديث للحصول على تحديث فوري. تستخدم الأوقات منطقتك الزمنية المحلية، وتغطي الإجماليات اليومية في نظرة عامة اليوم التقويمي المحلي بمعزل عن عوامل التصفية.
لاختيار قاعدة بيانات مختلفة أو زيادة حد التنبيهات المعروضة:```bash guardd gui --db-path /opt/guardd/data/features.db --model-path /opt/guardd/data/model.bundle --limit 500
واجهة المستخدم الرسومية هي عارض للقراءة فقط: تحدث عمليات الجمع والتدريب والتحكم في الخدمة
عبر الخادم الخفي وواجهة سطر الأوامر. توفر النموذج يعني وجود ملف، وليس أن
محتوياته صالحة أو أن الكشف قد بدأ. لا تقوم واجهة المستخدم الرسومية بتحميل
النماذج المخللة. تغطي مقاييس الموارد خدمة systemd بأكملها، بما في ذلك المستشعر؛
تمثل نسبة CPU 100% نواة منطقية واحدة. يحتاج أول قراءة لوحدة المعالجة المركزية إلى عينتين.
### واجهة الطرفية```bash
sudo guardd tui
تُحدَّث واجهة TUI كل ثانيتين وتعرض تفاصيل التنبيهات وإحصاءات الخدمة الخلفية.
وعلى عكس الواجهة الرسومية، فإنها تهيّئ التخزين عبر اتصال قاعدة بيانات قابل للكتابة؛
وقد يتطلب التثبيت القياسي المملوك للمستخدم الجذر استخدام sudo.
| المفتاح | الإجراء |
|---|---|
↑ / k، ↓ / j | تحديد تنبيه. |
/ | بحث؛ اضغط Enter للتطبيق أو Esc للإلغاء. |
r | مسح البحث والعودة إلى التنبيه الأول. |
q / Esc | إنهاء. |
sudo systemctl stop guardd.service sudo systemctl start guardd.service sudo systemctl restart guardd.service systemctl status guardd.service sudo journalctl -u guardd.service -n 100 --no-pager sudo journalctl -u guardd.service -f
أعد تشغيل الخدمة بعد تعديل إعداداتها. فعّل أو عطّل بدء التشغيل
عند الإقلاع باستخدام `sudo systemctl enable guardd.service` أو
`sudo systemctl disable guardd.service`.
### واجهة سطر الأوامر والتشغيل اليدوي
شغّل مجمّعًا واحدًا في كل مرة. أوقف خدمة systemd قبل الجمع أو الكشف يدويًا،
وأوقف المجمّع اليدوي قبل تدريب نموذجه.