انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تم اختراق الخادم: الاستجابة الطارئة والاستعادة

خطوات الاستجابة الطارئة عند اختراق خادمك: الكشف، العزل، التحليل الجنائي والتنظيف.

وقت القراءة: 18 دقيقة استكشاف الأخطاء وإصلاحها
اختراقأمانتحليل جنائيعزلتنظيفاستعادةاستجابة طارئة

جدول المحتويات

مقدمة

اكتشاف أن خادمك قد تم اختراقه هو موقف مرهق، لكن باتباع الخطوات الصحيحة يمكنك تقليل الضرر واستعادة نظامك. في هذا الدليل، سنغطي العملية بأكملها من كشف الاختراق إلى التنظيف وتعزيز الأمان.

علامات الاختراق

المؤشرات الشائعة لاختراق الخادم:

  • عمليات أو خدمات غير معروفة تعمل
  • استخدام غير طبيعي لـ CPU/RAM (تعدين العملات المشفرة)
  • إنشاء حسابات مستخدمين غير معروفة
  • مفاتيح غير معروفة في ملفات SSH authorized_keys
  • مهام غير معروفة في crontab
  • ملفات نظام معدلة
  • حركة شبكة صادرة غير طبيعية
  • تشويه الموقع أو إعادة التوجيه
  • إرسال بريد عشوائي

الخطوة 1: لا تصب بالذعر ووثّق

الخطوة الأولى والأهم هي البقاء هادئاً وتوثيق كل شيء:

hljs bash
# حفظ الحالة الحالية
date > /tmp/incident_$(date +%Y%m%d_%H%M%S).log
who >> /tmp/incident_*.log
w >> /tmp/incident_*.log
last -20 >> /tmp/incident_*.log
ps auxf >> /tmp/incident_*.log
netstat -tlnp >> /tmp/incident_*.log
ss -tlnp >> /tmp/incident_*.log

لا تقم بإيقاف تشغيل الخادم أو إعادة تشغيله فوراً! قد تُفقد الأدلة الجنائية. وثّق الحالة الحالية أولاً.

الخطوة 2: العزل

اعزل الخادم لمنع المهاجم من إحداث مزيد من الضرر:

عزل الشبكة

hljs bash
# حظر جميع الاتصالات الصادرة (باستثناء SSH)
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -j DROP

إنهاء الجلسات النشطة

hljs bash
# فحص جلسات SSH النشطة
who
w

# إنهاء الجلسات المشبوهة
sudo pkill -u مستخدم_مشبوه

الخطوة 3: التحليل الجنائي

فحص حسابات المستخدمين

hljs bash
# قائمة جميع المستخدمين
cat /etc/passwd | grep -v nologin | grep -v false

# فحص المستخدمين بـ UID 0 (صلاحيات root)
awk -F: '($3 == 0) {print}' /etc/passwd

# المستخدمون المنشأون حديثاً
ls -lt /home/

# المستخدمون بصلاحيات sudo
grep -v '^#' /etc/sudoers
ls -la /etc/sudoers.d/

# فحص SSH authorized_keys
for user_home in /home/*; do
    if [ -f "$user_home/.ssh/authorized_keys" ]; then
        echo "=== $user_home ==="
        cat "$user_home/.ssh/authorized_keys"
    fi
done
cat /root/.ssh/authorized_keys

تحليل العمليات

hljs bash
# عرض جميع العمليات الجارية بشكل شجري
ps auxf

# البحث عن عمليات مشبوهة
ps aux | grep -E '(mine|xmr|crypto|kinsing|kdevtmpfsi)'

# العمليات ذات الاستخدام العالي لـ CPU
top -b -n 1 | head -20

# فحص العمليات المخفية
ls -la /proc/*/exe 2>/dev/null | grep deleted

# فحص مسارات ملفات العمليات
ls -la /proc/[0-9]*/exe 2>/dev/null | grep -v '/usr\|/bin\|/sbin\|/lib'

فحص crontab

hljs bash
# crontab الجذر
crontab -l

# crontab جميع المستخدمين
for user in $(cut -f1 -d: /etc/passwd); do
    crontab -l -u $user 2>/dev/null | grep -v '^#'
done

# مجلدات cron النظام
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
cat /etc/crontab

# مؤقتات systemd
systemctl list-timers --all

تحليل اتصالات الشبكة

hljs bash
# فحص الاتصالات النشطة
ss -tanp
netstat -tanp

# الاتصالات الصادرة
ss -tanp | grep ESTABLISHED | grep -v '127.0.0.1'

# المنافذ المستمعة
ss -tlnp

تحليل نظام الملفات

hljs bash
# الملفات المعدلة في آخر 24 ساعة
find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# الملفات المنشأة في آخر 7 أيام
find / -ctime -7 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# فحص ملفات SUID/SGID
find / -perm -4000 -type f 2>/dev/null

# ملفات مشبوهة في /tmp
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/

تحليل السجلات

hljs bash
# محاولات تسجيل الدخول عبر SSH
grep 'Failed password' /var/log/auth.log | tail -50
grep 'Accepted' /var/log/auth.log | tail -50

# تسجيلات الدخول الناجحة عبر SSH
last -20
lastlog

# سجلات النظام
journalctl --since "24 hours ago" | grep -i -E '(error|warning|fail|denied)'

الخطوة 4: التنظيف

إيقاف العمليات الضارة

hljs bash
# إنهاء العمليات المشبوهة
sudo kill -9 <PID>

# البحث عن عمليات تعدين العملات المشفرة وإنهاؤها
sudo pkill -9 -f 'xmr\|mine\|crypto\|kinsing'

# تعطيل الخدمات المشبوهة
sudo systemctl stop خدمة_مشبوهة
sudo systemctl disable خدمة_مشبوهة

إزالة المستخدمين الضارين

hljs bash
# قفل المستخدم المشبوه
sudo usermod -L مستخدم_مشبوه

# حذف المستخدم
sudo userdel -r مستخدم_مشبوه

# تغيير كلمة مرور root
sudo passwd root

تنظيف مفاتيح SSH

hljs bash
# فحص وتنظيف جميع ملفات authorized_keys
find / -name authorized_keys -exec cat {} \;

# الاحتفاظ بمفتاحك فقط
echo "ssh-rsa مفتاحك" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

الخطوة 5: تعزيز الأمان

أمان SSH

hljs bash
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
AllowUsers اسم_المستخدم

sudo systemctl restart sshd

تثبيت Fail2ban

hljs bash
sudo apt install fail2ban -y

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

تحديث النظام

hljs bash
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install unattended-upgrades -y

الخطوة 6: الاستعادة من النسخة الاحتياطية

إذا لم يكن التنظيف كافياً، قد تحتاج إلى تثبيت نظيف:

hljs bash
# 1. نسخ احتياطي للبيانات المهمة
tar -czf /tmp/backup_data.tar.gz /var/www/ /home/

# 2. إعادة تثبيت نظام التشغيل من لوحة REXE
# my.rexe.tr > الخدمات > إعادة تثبيت نظام التشغيل

# 3. تعزيز الأمان بعد التثبيت النظيف
# 4. استعادة ملفات البيانات فقط (ليس ملفات التكوين)

عند الاستعادة من النسخة الاحتياطية، لا تستعد ملفات التكوين! قد يكون المهاجم قد أضاف أبواباً خلفية.

الخلاصة

الاستجابة السريعة والمنهجية أمر بالغ الأهمية في حوادث اختراق الخوادم. اتبع خطوات التوثيق والعزل والتحليل الجنائي والتنظيف وتعزيز الأمان بالترتيب. لمنع حوادث مماثلة في المستقبل، قم بإجراء عمليات تدقيق أمنية منتظمة وطبّق ضوابط وصول قوية.