
نصوص برمجية لأمان ومراقبة لينكس
هذه مجموعة من النصوص البرمجية للأمان والمراقبة يمكنك استخدامها لمراقبة تثبيت لينكس الخاص بك للأحداث المتعلقة بالأمان أو للتحقيق. يعمل كل نص بشكل مستقل عن النصوص الأخرى. يمكن إعداد النصوص إما لطباعة نتائجها، أو إرسالها إليك عبر البريد الإلكتروني، أو باستخدام AlertR كقناة إشعار.
توجد النصوص البرمجية في الدليل scripts/. يحتوي كل نص على ملخص قصير في رأس الملف مع وصف لما يفترض أن يفعله، وكيفية تفسير نتيجة الكشف إذا لم تكن قاطعة، والمشكلات المعروفة. إذا كان له تبعيات يجب تثبيتها، فهي مدرجة أيضًا، بالإضافة إلى مراجع حول مصدر الفكرة لهذا النص (إن وجد).
لكل نص ملف تكوين في دليل scripts/config/ لتكوينه. إذا لم يتم العثور على ملف التكوين أثناء تنفيذ النص، فسيعود النص إلى الإعدادات الافتراضية ويطبع النتائج. وبالتالي، ليس من الضروري توفير ملف تكوين.
يحتوي دليل scripts/lib/ على كود مشترك بين النصوص المختلفة.
النصوص التي تستخدم بادئة monitor_ تحتفظ بحالة وهي مفيدة فقط لأغراض المراقبة. استخدامها مرة واحدة للتحقيق سيؤدي فقط إلى عرض الحالة الحالية لنظام لينكس وليس التغييرات التي قد تكون ذات صلة بأمان النظام. إذا كنت ترغب في تعيين الحالة الحالية لنظامك على أنها سليمة لهذه النصوص، يمكنك تقديم الوسيطة --init.
النصوص التي تستخدم بادئة search_ تبحث عن مؤشرات الاختراق. يمكن استخدامها لأغراض التحقيق. إذا كنت ترغب في استخدامها لأغراض المراقبة، يمكنك تقديم الوسيطة --monitoring للاحتفاظ بحالة وإخراج النتائج الجديدة فقط.
ألق نظرة على رأس النص الذي ترغب في تنفيذه. يحتوي على وصف مختصر لما يفترض أن يفعله هذا النص وما هي المتطلبات اللازمة (إن وجدت). إذا كانت هناك متطلبات، فقم بتثبيتها قبل تشغيل النص.
ملف التكوين المشترك scripts/config/config.py يحتوي على إعدادات تستخدمها جميع النصوص. علاوة على ذلك، يمكن تكوين كل نص باستخدام ملف التكوين المقابل في دليل scripts/config/. إذا لم يتم العثور على ملف تكوين، يتم استخدام إعداد افتراضي وتتم طباعة النتائج.
أخيرًا، يمكنك تشغيل جميع النصوص المكونة عن طريق تنفيذ start_search.py (الموجود في الدليل الرئيسي) أو عن طريق تنفيذ كل نص يدويًا. يلزم مترجم Python3 لتشغيل النصوص.
إذا كنت ترغب في استخدام النصوص لمراقبة نظام لينكس الخاص بك باستمرار، فيجب عليك تنفيذ الخطوات التالية:
قم بإعداد قناة إشعار تدعمها النصوص (حاليًا الطباعة أو البريد الإلكتروني أو AlertR).
قم بتكوين النصوص التي ترغب في تشغيلها باستخدام ملفات التكوين في دليل scripts/config/.
قم بتنفيذ start_search.py مع الوسيطة --init لتهيئة النصوص ذات البادئة monitor_ والسماح لها بتحديد حالة لنظامك. ومع ذلك، يفترض هذا أن نظامك غير مخترق حاليًا. إذا كنت غير متأكد من ذلك، فيجب عليك التحقق من حالته الحالية.
قم بإعداد مهمة cron كمستخدم root تنفذ start_search.py --monitoring (على سبيل المثال، 0 * * * * root /opt/LSMS/start_search.py --monitoring لبدء البحث كل ساعة). الوسيطة --monitoring تجعل النصوص تبلغ فقط عن النتائج الجديدة وبالتالي تمنعها من الإبلاغ المستمر عن نفس المشكلة.
| الاسم | النص |
|---|
| مراقبة ملفات cron | monitor_cron.py |
| مراقبة ملف /etc/hosts | monitor_hosts_file.py |
| مراقبة ملف /etc/ld.so.preload | monitor_ld_preload.py |
| مراقبة ملف /etc/passwd | monitor_passwd.py |
| مراقبة الوحدات | monitor_modules.py |
| مراقبة ملفات SSH authorized_keys | monitor_ssh_authorized_keys.py |
| مراقبة ملفات وحدات systemd | monitor_systemd_units.py |
| البحث عن البرامج المحذوفة التي لا تزال قيد التشغيل | search_deleted_exe.py |
| البحث عن الملفات القابلة للتنفيذ في /dev/shm | search_dev_shm.py |
| البحث عن ملفات ELF المخفية | search_hidden_exe.py |
| البحث عن الملفات غير القابلة للتغيير | search_immutable_files.py |
| البحث عن إدخالات lastlog المفقودة في سجلات utmp | search_lastlog_in_utmp.py |
| البحث عن البرامج بدون ملفات (memfd_create) | search_memfd_create.py |
| البحث عن انتحال خيوط النواة | search_non_kthreads.py |
| البحث عن العمليات التي بدأتها جلسة SSH منفصلة الآن | search_ssh_leftover_processes.py |
| البحث عن أعلام تلويث وحدات النواة للتركيبات المشبوهة | search_tainted_modules.py |
| البحث عن مؤشرات التلاعب بسجلات utmp | search_utmp_tampering.py |
| نص اختبار للتحقق من عمل التنبيهات | test_alert.py |
| التحقق من سلامة حزم .deb المثبتة | verify_deb_packages.py |