
مراقب استدعاءات النظام في لينكس يستخدم ptrace لتتبع نشاط الملفات والعمليات والشبكة والذاكرة، مع عزل مساحات الأسماء وتصنيف التعلم الآلي لتحليل الأمان السلوكي.
أداة مراقبة استدعاءات نظام Linux وتحليل أمني سلوكي تجمع بين التتبّع المعتمد على ptrace، وعزل مساحات الأسماء خفيف الوزن، وتصنيف تعلّم الآلة.
يراقب SysTrace سلوك وقت التشغيل للبرنامج المستهدف على مستوى استدعاءات النظام، ويستخرج السمات السلوكية، ويصنّف النشاط المرصود كحميد أو خبيث باستخدام نموذج Random Forest مدرَّب. وهو مبني بشكل أساسي بلغة C للتتبّع والعزل منخفض المستوى، مع مكوّن Python/scikit-learn للتصنيف وإعداد التقارير.
يتتبّع SysTrace عملية مستهدفة باستخدام ptrace، ويلتقط استدعاءات النظام المتعلقة بالوصول إلى الملفات، وإنشاء العمليات، والنشاط الشبكي، وعمليات الذاكرة. يُجمَّع السلوك الملتقط في إحصائيات لاستدعاءات النظام ومتجه سمات، يُمرَّر إلى مصنّف Random Forest مدرَّب لإنتاج تنبؤ حميد/خبيث. تُجمَّع النتائج في تقرير أمني منظم بصيغة HTML.
يتضمن المشروع أيضًا طبقة عزل افتراضية (sandbox) خفيفة الوزن مبنية على مساحات أسماء Linux، تُستخدم لعزل العملية المستهدفة أثناء التتبّع.

ptrace الخاص بـ Linux للارتباط بالعمليات المستهدفة وفحصها، بما في ذلك وسائط استدعاءات النظام والسجلات.open/openat, read, close, chmodexecve, fork, clone, killsocket, connectmmap, mprotectتشير القواعد الاستدلالية إلى الأنماط السلوكية المشبوهة، بما في ذلك:
mmap/mprotect)طبقة عزل مبنية مباشرة على أوليات مساحات أسماء Linux:
clone() مع CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNSMS_PRIVATEpivot_root و umount2tmpfs، يُنشأ في وقت التشغيل تحت /tmp/systrace-rootيوفر هذا عزلًا أساسيًا للعملية وPID والتحميلات للهدف المتتبَّع — وهو ليس بديلًا عن بيئة تشغيل الحاويات.
file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill, labelRandomForestClassifier (scikit-learn) على هذه المتجهات للتمييز بين السلوك الحميد والخبيث.ml/syscall_model.pkl.DATASETfeatures.json (بيانات السمات الأولية) و report.html (تقرير قابل للقراءة البشرية).[file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill]
[15, 2, 0, 0, 0, 2, 1, 10, 4, 14, 6, 0]
linux-syscall-monitor/
├── include/
├── src/
│ ├── tracer.c # Core ptrace-based syscall tracer
│ ├── syscall.c # Syscall interception/handling
│ ├── namespace.c # Namespace/clone setup
│ ├── set_root.c # pivot_root / minimal rootfs setup
│ ├── file_monitor.c # File operation monitoring
│ ├── process_monitor.c # Process creation/execution monitoring
│ ├── network_monitor.c # Network activity monitoring
│ ├── memory_monitor.c # Memory-related activity monitoring
│ ├── fd_tables.c # File descriptor tracking
│ ├── rules.c # Rule-based detection logic
│ ├── alert.c # Security alert generation
│ ├── stat.c # Syscall statistics aggregation
│ └── dataset.c # Feature vector / dataset generation
├── ml/
│ ├── train.py # Random Forest training script
│ ├── predict.py # Classification / inference script
│ └── syscall_model.pkl # Trained model
├── dashboard/ # Report/dashboard assets
├── tests/
├── Makefile
├── dataset.csv
└── README.md
ptrace حملًا ملحوظًا على الأداء، ويمكن للبرمجيات الخبيثة المتطورة بما يكفي اكتشافه أو التحايل عليه.SysTrace هو مشروع بحثي وتعليمي يستكشف دواخل Linux، وتتبّع استدعاءات النظام، والعزل القائم على مساحات الأسماء، والكشف السلوكي عن البرمجيات الخبيثة باستخدام تعلّم الآلة. وهو ليس أداة أمان معتمدة أو جاهزة للإنتاج، ولا ينبغي الاعتماد عليه كخط دفاع وحيد ضد البرمجيات الخبيثة. استخدمه في بيئات معزولة وخاضعة للتحكم فقط.
بُني هذا المشروع لاستكشاف وعرض:
ptraceclone, pivot_root, مساحات أسماء التحميل)| الفئة | الحزمة التقنية |
|---|
| المتتبّع الأساسي | C, Linux ptrace |
| العزل | Linux namespaces, clone, mount namespaces, pivot_root, tmpfs |
| تعلّم الآلة | Python, scikit-learn, Random Forest |
| البيانات / المخرجات | JSON, HTML |
| البناء | Make |