مراقبة الملفات
يراقب الأمر sd monitor الدلائل بحثاً عن نشاط نظام الملفات ويفحص الملفات الجديدة أو المعدَّلة في الوقت الفعلي. هذه هي الطريقة الرئيسية لاكتشاف البرامج الضارة في اللحظة التي تصل فيها إلى القرص، قبل أن تتاح لها الفرصة للتنفيذ.
الاستخدام
sd monitor [OPTIONS] [PATHS...]إذا لم تُحدَّد مسارات، يراقب sd monitor دليل العمل الحالي.
الخيارات
| العلم | المختصر | الافتراضي | الوصف |
|---|---|---|---|
--recursive | -r | true | مراقبة الدلائل بشكل متكرر |
--block | -b | false | حظر تنفيذ الملف حتى اكتمال الفحص (لينكس فقط) |
--daemon | -d | false | التشغيل في الخلفية كعملية daemon |
--pid-file | كتابة PID إلى الملف المحدد (يستلزم --daemon) | ||
--exclude | -e | أنماط glob للاستثناء (قابل للتكرار) | |
--log-file | كتابة مخرجات السجل إلى ملف بدلاً من stderr | ||
--auto-quarantine | -q | false | عزل التهديدات المكتشفة تلقائياً |
--events | الكل | قائمة مفصولة بفواصل من الأحداث للمراقبة | |
--json | false | مخرجات الأحداث بتنسيق JSON |
آليات المنصة
يستخدم PRX-SD أكثر واجهات برمجة نظام الملفات فاعليةً المتاحة على كل منصة:
| المنصة | الواجهة البرمجية | القدرات |
|---|---|---|
| لينكس | fanotify (النواة 5.1+) | مراقبة على مستوى النظام، التحكم في إذن التنفيذ، تمرير واصف الملف |
| لينكس (احتياطي) | inotify | مراقبة لكل دليل، بدون دعم الحظر |
| macOS | FSEvents | مراقبة متكررة منخفضة الكمون، إعادة تشغيل الأحداث التاريخية |
| ويندوز | ReadDirectoryChangesW | مراقبة غير متزامنة لكل دليل مع منافذ الاكتمال |
TIP
على لينكس، يتطلب sd monitor قدرة CAP_SYS_ADMIN (أو الجذر) لاستخدام fanotify. إذا لم تكن متاحة، يعود تلقائياً إلى inotify مع تحذير.
الأحداث المُراقَبة
الأحداث التالية لنظام الملفات تُشغِّل فحصاً:
| الحدث | الوصف | المنصات |
|---|---|---|
Create | يُنشأ ملف جديد | الكل |
Modify | تُكتب محتويات الملف | الكل |
CloseWrite | الملف مُغلَق بعد الكتابة (يتجنب الفحوصات الجزئية) | لينكس |
Delete | حذف ملف | الكل |
Rename | إعادة تسمية ملف أو نقله | الكل |
Open | فتح ملف للقراءة | لينكس (fanotify) |
Execute | على وشك تنفيذ ملف | لينكس (fanotify) |
فلترة الأحداث التي تُشغِّل الفحوصات باستخدام --events:
# الفحص فقط عند الملفات الجديدة والتعديلات
sd monitor --events Create,CloseWrite /homeوضع الحظر
على لينكس مع fanotify، يُمكِّن --block وضع FAN_OPEN_EXEC_PERM. في هذا الوضع، تُوقِف النواة تنفيذ العملية حتى يُعيد PRX-SD حكمه:
sudo sd monitor --block /usr/local/bin /tmpWARNING
يُضيف وضع الحظر زمن انتظار لكل إطلاق برنامج في المسارات المُراقَبة. استخدمه فقط في الدلائل عالية المخاطر مثل /tmp أو مجلدات التنزيل، وليس على مسارات النظام الواسعة مثل /usr أو /lib.
عند اكتشاف تهديد في وضع الحظر:
- يُرفض فتح الملف/تنفيذه من قِبل النواة
- تُسجَّل الحدث مع حكم
BLOCKED - إذا كان
--auto-quarantineمُضبَّطاً، يُنقل الملف إلى قبو العزل
وضع Daemon
استخدم --daemon لفصل الشاشة عن الطرفية:
sd monitor --daemon --pid-file /var/run/sd-monitor.pid /home /tmp /var/wwwإيقاف الـ daemon بإرسال SIGTERM:
kill $(cat /var/run/sd-monitor.pid)أو استخدم sd daemon stop إذا كان يعمل عبر مدير الـ daemon. انظر الـ Daemon لمزيد من التفاصيل.
أمثلة
# مراقبة دلائل home وtmp
sd monitor /home /tmp
# مراقبة مع عزل تلقائي
sd monitor --auto-quarantine /home/downloads
# وضع الحظر على لينكس لدليل حساس
sudo sd monitor --block --auto-quarantine /tmp
# استثناء مخرجات البناء وnode_modules
sd monitor -e "*.o" -e "node_modules/**" /home/dev/projects
# التشغيل كـ daemon مع تسجيل JSON
sd monitor --daemon --json --log-file /var/log/sd-monitor.json /home
# المراقبة مع أحداث محددة فقط
sd monitor --events Create,Modify,Rename /var/wwwمخرجات JSON
عند تمكين --json، كل حدث يُنتج سطر JSON واحداً:
{
"timestamp": "2026-03-21T10:15:32.456Z",
"event": "CloseWrite",
"path": "/tmp/payload.exe",
"verdict": "malicious",
"threat": "Win.Trojan.Agent-123456",
"action": "quarantined",
"scan_ms": 12
}الخطوات التالية
- الـ Daemon -- تشغيل المراقبة كخدمة خلفية مُدارة
- حماية برامج الفدية -- الكشف السلوكي المتخصص لبرامج الفدية
- إدارة العزل -- إدارة الملفات المعزولة
- الاستجابة للتهديدات -- تهيئة سياسات الاستجابة التلقائية