أمان السيرفر المتقدم واكتشاف التسلل (SELinux و IDS)
في الدروس السابقة أعددنا UFW وأوقفنا دخول SSH بكلمة المرور. هذا يمثل "خط الدفاع الأول" (Perimeter Security). ولكن ماذا لو كان الخطر داخلياً؟ ماذا لو قام المخترق برفع ملف PHP خبيث (Web Shell) عبر ثغرة في تطبيقك، وأصبح قادراً على تصفح ملفات السيرفر؟ هنا يأتي دور الأمان المتقدم.
أنظمة الوصول الإلزامي (MAC: Mandatory Access Control)
في النظام التقليدي (DAC)، إذا كان لملف صلاحية 777، فيمكن لأي عملية قراءته وتعديله. لكن مع أنظمة SELinux (تستخدم غالباً في RedHat/CentOS) أو AppArmor (تستخدم في Ubuntu/Debian)، الوضع مختلف كلياً.
AppArmor يقيد ما الذي يمكن للبرنامج فعله، وليس فقط ما يمكن للمستخدم فعله. على سبيل المثال، يمكنك تفعيل ملف شخصي (Profile) لـ Nginx يُجبر Nginx على عدم قراءة أي ملف خارج /var/www/ حتى لو كان الملف الخارجي يمتلك صلاحية 777. بالتالي، إذا اختُرق Nginx، المخترق يظل محبوساً في سجن AppArmor.
# التحقق من حالة AppArmor في أوبونتو
sudo aa-status
التدقيق الأمني (Auditing) باستخدام auditd
ماذا لو تم اختراق السيرفر، وقام المخترق بتعديل ملف /etc/passwd لإضافة مستخدم جديد؟ كيف ستعرف متى حدث ذلك ومن أي IP؟
برنامج auditd يقوم بتسجيل كل شيء يحدث في نواة لينكس (Kernel-level logging)، ولا يمكن للمخترق تجاوزه بسهولة.
sudo apt install auditd -y
# مراقبة أي محاولة للكتابة (-w) في ملف passwd
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
إذا تم تعديل الملف، يمكنك مراجعة السجلات عبر الأمر ausearch -k passwd_changes لتجد معلومات دقيقة عن رقم العملية (PID) والمستخدم الذي قام بالتعديل.
اكتشاف الجذور الخفية (Rootkits) والتسلل باستخدام rkhunter
الـ Rootkit هو برنامج خبيث متطور يزرعه المخترق في قلب النظام ليخفي وجوده (يخفي ملفاته ويخفي عملياته من أمر top و ps).
أداة rkhunter (Rootkit Hunter) تقوم بفحص السيرفر ومقارنة التواقيع الرقمية للملفات الأساسية لمعرفة ما إذا تم العبث بها.
sudo apt install rkhunter -y
# تحديث قاعدة بيانات الفيروسات
sudo rkhunter --update
# تشغيل الفحص الكامل للنظام
sudo rkhunter --check --sk
قم بجدولة هذا الأمر عبر Cron Job ليقوم بالفحص يومياً وإرسال رسالة بريد إلكتروني لك في حال اكتشاف أي تغييرات مشبوهة في أدوات النظام الأساسية.
مراقبة سلامة الملفات (FIM - File Integrity Monitoring)
يمكنك استخدام أداة مثل AIDE (Advanced Intrusion Detection Environment). تقوم هذه الأداة بأخذ بصمة تشفيرية (Hash) لجميع ملفات النظام المهمة. يومياً، تقوم بمقارنة البصمات الجديدة بالقديمة، وإذا تم تغيير بايت واحد في ملف حساس (دون إذنك)، ستقوم الأداة بالتبليغ فوراً. هذا هو المعيار الذهبي المتبع في المؤسسات المالية والبنوك.
فهم وتحليل ملفات السجلات (Log Analysis) أمنياً
كمدير سيرفر محترف، لا يمكنك الاعتماد فقط على أدوات الحماية الآلية؛ يجب أن تكون لديك القدرة على قراءة وتحليل ما تقوله السجلات. جميع الأحداث الأمنية في أوبونتو يتم تسجيلها في /var/log/auth.log (وفي CentOS في /var/log/secure).
استخراج الـ IP التي تحاول اختراقك بكثافة
باستخدام أوامر لينكس القياسية (awk, grep, sort, uniq)، يمكنك بسرعة استخراج قائمة بأكثر عناوين الـ IP التي حاولت الدخول بكلمات مرور خاطئة:
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
هذا السطر البرمجي سيُخرج لك أعلى 10 عناوين آي بي حاولت اختراقك مع عدد المحاولات لكل منها.
إعداد بيئة لاصطياد المخترقين (Honeypot)
بدلاً من مجرد الدفاع، لماذا لا نقوم بنصب فخ؟ الـ Honeypot هو سيرفر (أو برنامج) صُمم خصيصاً ليبدو ضعيفاً ومغرياً للمخترقين (مثلاً يحتوي على بيانات بنكية وهمية وثغرات واضحة). عندما يهاجم المخترق هذا السيرفر الوهمي، تقوم أدوات المراقبة الخاصة بك بتسجيل كل نقرة وكل أمر يقوم به المخترق! هذا يعطيك نظرة استخباراتية لا تقدر بثمن عن طرق وأدوات المخترقين الجدد. من أشهر أدوات نصب الفخاخ لـ SSH برنامج يسمى Cowrie. يقوم بتسجيل جلسة الاختراق بالكامل كفيديو يمكنك مشاهدته لاحقاً!
تأمين الذاكرة المشتركة (Shared Memory)
العديد من المخترقين بعد رفع ملف ضار للموقع (Web Shell)، يقومون بتنفيذه في مساحة الذاكرة المشتركة /dev/shm لأنها تعمل من الذاكرة العشوائية وتتجاوز بعض أنظمة الفحص. لإيقاف هذا، يجب تعديل ملف /etc/fstab لإضافة خيار عدم التنفيذ (noexec) للذاكرة المشتركة:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
بعد ذلك، حتى لو نجح المخترق بوضع فايروس هناك، فلن يستطيع تشغيله أبداً.
💬 التعليقات
0 تعليقات