پاک کردن ویروس و کد مخرب از وردپرس، یکی از حساس‌ترین و زمان‌برترین فرآیندهایی است که هر مدیر سایت ممکن است با آن روبرو شود و کیفیت اجرای آن، تفاوت بین بازگشت سریع به فعالیت عادی و یک بحران طولانی را می‌سازد.

وردپرس، به دلیل سهم بازار بالا، هدف اصلی حملات خودکار است و در صورت نبود نگهداری منظم، به‌سرعت آلوده می‌شود.

پاک کردن ویروس، تنها حذف فایل مخرب نیست؛ فرآیندی چندمرحله‌ای است که از شناسایی ریشه آلودگی آغاز می‌شود و با سخت‌سازی سایت پایان می‌یابد.

در این مقاله، چارچوبی عملی برای پاک کردن ویروس و کد مخرب از وردپرس ارائه می‌شود.

در پروژه‌های متعدد وردپرسی، دیده‌ام که پاک‌سازی ویروس، نیازمند رویکردی سیستماتیک است که بدون آن، آلودگی پس از چند روز بازمی‌گردد.

چرا وردپرس آلوده می‌شود؟

  • افزونه‌ها و قالب‌های نصب‌شده از منابع نامعتبر.
  • نسخه‌های قدیمی وردپرس، افزونه‌ها یا قالب‌ها.
  • رمز عبور ضعیف مدیر.
  • نبود 2FA.
  • سایت‌های اشتراکی با هم‌زیستی با سایت آلوده.
  • نبود فایروال و Malware Scanner.
  • دسترسی FTP یا SSH ناامن.
  • نبود HTTPS.
«حملات خودکار به وردپرس، امروز در عرض چند ساعت سایت را آلوده می‌کنند؛ نگهداری منظم، تنها دفاع است.»

علائم آلودگی

  • کندی شدید سایت.
  • ریدایرکت‌های ناخواسته.
  • نمایش محتوای ناخواسته.
  • خطای سئو در Search Console.
  • افزایش مصرف CPU و RAM هاست.
  • ورودهای ناشناخته به پنل مدیریت.
  • افزایش فایل‌های ناشناخته در سرور.
  • مسدود شدن IP سرور در لیست‌های سیاه.
  • ارسال ایمیل‌های ناخواسته از سرور.

اقدامات فوری در زمان آلودگی

  1. قطع دسترسی عمومی موقت.
  2. تهیه بکاپ فوری از سایت.
  3. تغییر رمز عبور مدیر.
  4. اسکن اولیه برای شناسایی ریشه.
  5. اطلاع‌رسانی به هاست.

بکاپ پیش از پاک‌سازی

بکاپ از فایل‌ها و دیتابیس، پیش از هر تغییر، ضروری است. اما این بکاپ باید به‌عنوان «شاهد» نگهداری شود، نه بازگردانی.

mysqldump -u user -p db > infected-backup.sql
tar -czf files-backup.tar.gz /public_html/

جداسازی سایت

  • فعال‌سازی حالت Maintenance.
  • قطع ورود کاربران عادی.
  • محدودسازی دسترسی FTP.
  • تغییر رمزهای FTP و SSH.
  • محدودسازی cron jobs مشکوک.

ابزارهای اسکن

  • Wordfence: اسکن کامل فایل‌ها و دیتابیس.
  • Sucuri SiteCheck: اسکن آنلاین.
  • MalCare: اسکن سریع و پاک‌سازی.
  • Quttera: اسکن دقیق.
  • VirusTotal: بررسی فایل‌های مشکوک.

شناسایی فایل‌های آلوده

روش‌های شناسایی

  • مقایسه فایل‌های هسته وردپرس با نسخه اصلی.
  • جستجوی کدهای مشکوک: eval، base64_decode، gzinflate.
  • بررسی تاریخ تغییر فایل‌ها.
  • بررسی فایل‌های ناشناخته در پوشه‌های اصلی.
  • بررسی .htaccess و index.php.
  • بررسی wp-config.php برای کدهای اضافه.

ابزارهای خط فرمان

find /path -type f -mtime -7 -exec ls -la {} \;
grep -r "eval(" /path --include="*.php"
grep -r "base64_decode" /path --include="*.php"

انواع آلودگی رایج

نوعنشانه
Backdoorفایل‌های مشکوک PHP در ریشه
SEO Spamلینک‌های ناخواسته در محتوا
Redirect Malwareریدایرکت به سایت‌های خارجی
Phishingصفحات جعلی ورود
Cryptominerمصرف بالای CPU
Mailerارسال اسپم از سرور

پاک‌سازی دیتابیس

  • شناسایی کدهای مخرب در wp_posts و wp_options.
  • حذف کاربران ناشناخته با دسترسی مدیر.
  • بررسی تنظیمات siteurl و home.
  • حذف ترنزینت‌های مشکوک.
  • بررسی Cron Jobs ناشناخته.
  • پاک‌سازی دیدگاه‌های اسپم.

پاک‌سازی فایل‌ها

  • حذف فایل‌های ناشناخته.
  • بازگردانی فایل‌های هسته از نسخه اصلی.
  • بازگردانی .htaccess پیش‌فرض.
  • حذف افزونه‌ها و قالب‌های ناشناخته.
  • پاک‌سازی پوشه uploads از فایل‌های PHP مشکوک.

نصب مجدد هسته وردپرس

  1. دانلود نسخه اصلی از wordpress.org.
  2. حذف پوشه‌های wp-admin و wp-includes.
  3. بارگذاری نسخه جدید.
  4. حفظ wp-config.php، wp-content، .htaccess و robots.txt.

بررسی افزونه‌ها و قالب

  • بررسی نسخه‌های قدیمی.
  • حذف افزونه‌های ناشناخته.
  • نصب مجدد افزونه‌ها از منابع رسمی.
  • بررسی فایل‌های قالب با نسخه اصلی.

تغییر رمزها

  • رمز مدیر وردپرس.
  • رمز FTP و SSH.
  • رمز دیتابیس.
  • کلیدهای API.
  • Secret Keys در wp-config.php.

تولید کلیدهای جدید از api.wordpress.org/secret-key/1.1/salt/.

سخت‌سازی سایت پس از پاک‌سازی

  • فعال‌سازی 2FA.
  • نصب فایروال (Wordfence، Sucuri).
  • محدودسازی ورود ناموفق.
  • فعال‌سازی HTTPS.
  • محدودسازی دسترسی فایل‌ها با مجوز درست.
  • غیرفعال‌سازی ویرایش فایل در wp-config.php.
  • محدودسازی XML-RPC.
  • بروزرسانی منظم.

پایش مستمر

  • اسکن هفتگی.
  • پایش تغییرات فایل‌ها.
  • پایش ورودهای مشکوک.
  • پایش مصرف منابع.
  • پایش لاگ‌ها.

برای درک عمیق‌تر، مقاله پیدا و حذف فایل‌های آلوده بعد از هک وردپرس را مطالعه کنید.

پیشگیری بلندمدت

  • بروزرسانی منظم.
  • استفاده از افزونه‌ها و قالب‌های معتبر.
  • بکاپ منظم.
  • 2FA و فایروال.
  • پایش مستمر.
  • آموزش کاربران.

رویکردهای توصیه‌شده

  • بکاپ پیش از پاک‌سازی.
  • شناسایی ریشه آلودگی.
  • پاک‌سازی چندلایه.
  • تغییر رمزها.
  • سخت‌سازی پس از پاک‌سازی.
  • پایش مستمر.
«پاک کردن ویروس بدون سخت‌سازی، به‌معنای دعوت از آلودگی بعدی است.»

اشتباهات رایج

اشتباهاثر عملیاتی
پاک‌سازی بدون بکاپاز دست رفتن داده
بازگردانی بکاپ آلودهبازگشت آلودگی
نبود تغییر رمزهابازگشت دسترسی مهاجم
پاک‌سازی سطحیبازگشت آلودگی
عدم بررسی دیتابیسباقی‌ماندن کد مخرب
نبود سخت‌سازیآلودگی مجدد
نبود پایشعدم تشخیص سریع
نادیده گرفتن هاستسرور آلوده باقی می‌ماند
نبود مستندسازیسردرگمی در آینده
عدم آموزش تیمتکرار خطا

پرسش‌های پرتکرار

چگونه بفهمم سایت وردپرسی من ویروس دارد؟

با علائمی مانند کندی، ریدایرکت ناخواسته، ورودهای ناشناخته، افزایش مصرف منابع و اعلان Search Console.

چگونه ویروس را از وردپرس پاک کنم؟

با بکاپ، اسکن با Wordfence یا MalCare، شناسایی فایل‌های آلوده، پاک‌سازی فایل‌ها و دیتابیس، تغییر رمزها و سخت‌سازی.

آیا Wordfence می‌تواند ویروس را پاک کند؟

Wordfence پاک‌سازی خودکار دارد اما در آلودگی‌های پیچیده، نیاز به پاک‌سازی دستی است.

آیا بازگردانی بکاپ راه‌حل بهتری است؟

اگر بکاپ قبل از آلودگی باشد، بله. اما اگر بکاپ آلوده باشد، به بازگشت آلودگی منجر می‌شود.

چگونه از آلودگی مجدد جلوگیری کنم؟

با سخت‌سازی، 2FA، فایروال، بروزرسانی منظم و پایش مستمر.

آیا باید رمزها را تغییر دهم؟

بله، همه رمزها از جمله رمز مدیر، FTP، SSH و دیتابیس.

آیا باید به هاست اطلاع دهم؟

بله، در آلودگی‌های جدی، همکاری هاست برای بررسی سرور ضروری است.

چند وقت یک‌بار سایت را اسکن کنم؟

هفتگی برای سایت‌های فعال، ماهانه برای سایت‌های کم‌فعالیت.

پایان‌بندی راهبردی

پاک کردن ویروس و کد مخرب از وردپرس، فرآیندی چندلایه است که از شناسایی ریشه آلودگی آغاز می‌شود و با سخت‌سازی و پایش مستمر پایان می‌یابد. بدون این چارچوب، آلودگی به‌سرعت بازمی‌گردد.

از منظر مهندسی سطح ارشد، سه اصل در پاک‌سازی ویروس تعیین‌کننده است: بکاپ پیش از پاک‌سازی، شناسایی ریشه آلودگی، و سخت‌سازی چندلایه پس از پاک‌سازی.

برای درک عمیق‌تر، مقاله پیدا و حذف فایل‌های آلوده بعد از هک وردپرس و مقاله چگونه سایت وردپرسی را در برابر هک محافظت کنیم؟ را مطالعه کنید.

اگر در پروژه‌های خود تجربه‌ای از پاک‌سازی ویروس داشته‌اید، تجربه‌تان را در دیدگاه‌ها بنویسید. 🛡️