حذف بدافزار وردپرس – راهنمای جامع پاکسازی و افزایش امنیت سایت

طراحی سایت

بررسی و پاک سازی فایل های مخرب از وردپرس

پاکسازی فایل های مخرب از وردپرس فرآیندی حیاتی است که به شناسایی و حذف بدافزارها و کدهای مخرب کمک می کند تا امنیت سایت شما تضمین شود و از آسیب های جدی جلوگیری شود. در دنیای وب، جایی که هر لحظه تهدیدات جدیدی ظهور می کنند، حفاظت از وب سایت های وردپرسی در برابر حملات سایبری به یک دغدغه مهم برای مدیران وب سایت تبدیل شده است. بسیاری از صاحبان سایت ها، زمانی که با علائم غیرعادی مواجه می شوند، به دنبال راهی برای حذف ویروس وردپرس و پاکسازی سایت وردپرسی هک شده خود می گردند. این مقاله برای ارائه راهنمایی جامع و عملی در خصوص شناسایی، پاکسازی و در نهایت، تقویت امنیت وردپرس در نظر گرفته شده است، تا کاربران بتوانند با آگاهی کامل از وب سایت خود محافظت کنند.

سیستم مدیریت محتوای وردپرس به دلیل محبوبیت بالا و انعطاف پذیری بی نظیرش، همواره یکی از اهداف اصلی حملات سایبری بوده است. دلایل مختلفی برای این موضوع وجود دارد، از جمله عدم به روزرسانی منظم هسته وردپرس، استفاده از افزونه ها و قالب های نال شده یا نامعتبر، و همچنین بهره گیری از رمزهای عبور ضعیف. این نقاط ضعف می توانند راه را برای نفوذ بدافزار وردپرس، ویروس ها، بک دورها و کدهای مخرب باز کنند. در چنین شرایطی، درک نشانه های آلودگی و تسلط بر روش های موثر پاکسازی، چه از طریق افزونه ها و چه به صورت دستی، از اهمیت بالایی برخوردار است. در ادامه این مسیر، به بررسی دقیق این موارد خواهیم پرداخت تا ابزارهای لازم برای امن کردن وردپرس و مقابله با تهدیدات سایبری در دسترس باشد.

نشانه های اصلی آلودگی وردپرس به فایل های مخرب

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

  1. تغییر مسیرهای ناخواسته (Automatic Redirects): یکی از شایع ترین نشانه های آلودگی، تغییر مسیر خودکار کاربران به وب سایت های دیگر، صفحات اسپم یا تبلیغات ناخواسته است. این اتفاق معمولاً بدون اطلاع و رضایت کاربر رخ می دهد و تجربه کاربری را به شدت مختل می کند.
  2. افزایش ناگهانی و غیرعادی اسپم (Spam Injection): اگر مشاهده شود که در بخش نظرات، پست ها یا حتی پروفایل های کاربران، حجم زیادی از محتوای اسپم یا لینک های مشکوک ظاهر شده است، این می تواند نشانه ای از تزریق اسپم و آلودگی به کدهای مخرب باشد.
  3. کندی شدید سایت و عملکرد غیرعادی: کاهش ناگهانی سرعت بارگذاری صفحات، مصرف بیش از حد منابع سرور، یا پاسخ های کند و نامنظم از وب سایت، همگی می توانند ناشی از فعالیت فایل های مخرب در پس زمینه باشند که در حال اجرای کارهای مخفیانه هستند.
  4. عدم دسترسی به پنل مدیریت یا تغییر اطلاعات ورود مدیر: گاهی اوقات، هکرها پس از نفوذ، اطلاعات ورود مدیران را تغییر می دهند یا حتی کاربران ادمین جدیدی ایجاد می کنند تا دسترسی خود را حفظ کنند. اگر دسترسی به پنل مدیریت مشکل پیدا کرد یا رمز عبور بدون اطلاع تغییر یافت، باید به آلودگی مشکوک شد.
  5. نمایش هشدارهای امنیتی در مرورگر یا Google Search Console: مرورگرهایی مانند کروم ممکن است در زمان بازدید از وب سایت، هشدارهایی مانند این سایت ممکن است هک شده باشد نمایش دهند. همچنین، Google Search Console نیز در بخش مشکلات امنیتی، هشدارهای مربوط به آلودگی را گزارش می دهد. این ها نشانه های واضحی هستند که گوگل وب سایت را آلوده شناسایی کرده است.
  6. ایجاد کاربران ناشناس با سطح دسترسی ادمین: بررسی لیست کاربران در پنل مدیریت وردپرس و مشاهده کاربران ناشناس با نقش مدیر، یکی از نشانه های قطعی نفوذ و ایجاد بک دور توسط هکرها است.
  7. پیدا شدن فایل ها و فولدرهای ناشناس و مشکوک روی هاست: گشت و گذار در فایل منیجر هاست (CPanel/DirectAdmin) و مشاهده فایل ها یا فولدرهایی با نام های عجیب، تاریخ های تغییر غیرمعمول یا پسوندهای ناشناخته (مثل .php در پوشه آپلودها) می تواند نشانه ای از وجود فایل های مخرب باشد.
  8. دریافت هشدار از شرکت هاستینگ در مورد فعالیت های مشکوک: ارائه دهندگان هاستینگ معمولاً سیستم های نظارتی پیشرفته ای برای شناسایی فعالیت های غیرعادی دارند. دریافت ایمیل یا هشدار از هاستینگ در مورد ارسال اسپم، حملات دیداس، یا مصرف بیش از حد منابع، باید جدی گرفته شود.

اقدامات اولیه قبل از پاکسازی: گام های حیاتی برای مقابله

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

پشتیبان گیری کامل از سایت (فایل ها و دیتابیس)

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

روش های بکاپ گیری:

  • از طریق کنترل پنل هاست (CPanel/DirectAdmin): اکثر شرکت های هاستینگ امکان پشتیبان گیری کامل از طریق کنترل پنل را فراهم می کنند. این روش معمولاً شامل تهیه فایل فشرده از تمامی فایل ها و یک نسخه از دیتابیس (معمولاً در قالب .sql) است. این پشتیبان گیری باید در محلی امن و خارج از سرور وب سایت ذخیره شود، به عنوان مثال بر روی کامپیوتر شخصی یا فضای ابری.
  • با استفاده از افزونه های معتبر بکاپ گیری: افزونه هایی مانند UpdraftPlus و Duplicator راهکارهای بسیار ساده و کارآمدی برای پشتیبان گیری ارائه می دهند. این افزونه ها به کاربران امکان می دهند تا به صورت منظم و حتی خودکار از فایل ها و دیتابیس پشتیبان تهیه کرده و آن ها را به سرویس های ذخیره سازی ابری مانند Dropbox یا Google Drive منتقل کنند. استفاده از این افزونه ها برای کاربرانی که دانش فنی کمتری دارند، توصیه می شود.
  • بکاپ دستی (دانلود فایل ها از FTP و خروجی گرفتن از دیتابیس با phpMyAdmin): برای کاربران پیشرفته تر، پشتیبان گیری دستی از طریق پروتکل FTP یا SFTP برای دانلود تمامی فایل های سایت و استفاده از phpMyAdmin برای خروجی گرفتن از دیتابیس (Export) نیز امکان پذیر است. این روش کنترل بیشتری را به کاربر می دهد اما نیازمند دقت و دانش فنی بیشتری است.

قرار دادن سایت در حالت تعمیر (Maintenance Mode)

هنگامی که فرآیند پاکسازی بدافزار وردپرس آغاز می شود، ضروری است که دسترسی بازدیدکنندگان به وب سایت به طور موقت قطع شود. قرار دادن سایت در حالت تعمیر (Maintenance Mode) به دلایل متعددی اهمیت دارد. این کار نه تنها از آسیب های احتمالی بیشتر به سایت در حین کار جلوگیری می کند، بلکه تجربه کاربری را نیز بهبود می بخشد، چرا که بازدیدکنندگان به جای مشاهده صفحات خطا یا محتوای آلوده، با پیامی مبنی بر عملیات نگهداری و زمان بازگشت سایت روبرو می شوند. این اقدام می تواند از سرایت هرگونه آلودگی احتمالی به سیستم کاربران نیز جلوگیری کند.

روش ها:

  • استفاده از افزونه های Maintenance Mode: افزونه هایی مانند WP Maintenance Mode & Coming Soon راهی ساده و سریع برای فعال کردن این حالت هستند. این افزونه ها امکان سفارشی سازی صفحه نگهداری را نیز فراهم می کنند تا پیام مناسبی به کاربران نمایش داده شود.
  • قرار دادن کد در فایل `functions.php`: برای کاربران پیشرفته تر، افزودن قطعه کدی به فایل `functions.php` (که در مسیر قالب فعال قرار دارد) می تواند سایت را به حالت نگهداری ببرد. این روش کنترل بیشتری بر روی نحوه نمایش صفحه نگهداری فراهم می کند.

به روزرسانی تمام رمزهای عبور

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

  • رمز عبور پنل مدیریت وردپرس: تمامی رمزهای عبور مربوط به کاربران با سطح دسترسی مدیر در پنل وردپرس باید بلافاصله تغییر یابند. این کار شامل رمز عبور خود مدیر سایت نیز می شود.
  • رمز عبور FTP/SFTP: دسترسی به فایل ها از طریق FTP یا SFTP یکی از مسیرهای اصلی نفوذ هکرها است. تغییر این رمز عبور، دسترسی آن ها به فایل های سایت را قطع می کند.
  • رمز عبور کنترل پنل هاست (CPanel/DirectAdmin): رمز عبور کنترل پنل هاست، دروازه ورود به تمامی جنبه های میزبانی سایت است. تغییر آن از اهمیت بالایی برخوردار است.
  • رمز عبور دیتابیس: این رمز عبور که در فایل wp-config.php قرار دارد، دسترسی به پایگاه داده وردپرس را کنترل می کند. تغییر آن و به روزرسانی در فایل پیکربندی سایت ضروری است.

در هنگام تغییر رمزهای عبور، استفاده از ترکیبات پیچیده شامل حروف بزرگ و کوچک، اعداد و نمادها، و همچنین طول مناسب رمز، توصیه می شود. همچنین، از ابزارهای تولید رمز عبور قوی می توان بهره برد.

اسکن و پاکسازی کامپیوتر شخصی شما

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

توصیه می شود قبل از شروع فرآیند بررسی و پاک سازی فایل های مخرب از وردپرس، یک اسکن کامل و عمیق توسط نرم افزارهای آنتی ویروس معتبر و به روز (مانند Kaspersky, ESET, Bitdefender) بر روی سیستم عامل اجرا شود. این کار اطمینان می دهد که هیچ بدافزاری بر روی دستگاه شما باقی نمانده و راه برای انتقال مجدد آلودگی به وب سایت باز نیست.

روش های بررسی و پاکسازی فایل های مخرب از وردپرس

با آماده سازی های اولیه، حالا زمان آن است که به قلب ماجرا بزنیم و به پاکسازی فایل های مخرب از وردپرس بپردازیم. دو رویکرد اصلی برای این کار وجود دارد: استفاده از افزونه های امنیتی (روشی ساده تر و برای اکثر کاربران مناسب) و پاکسازی دستی (روشی تخصصی تر و نیازمند دانش فنی). هر یک از این روش ها مزایا و چالش های خاص خود را دارند که در ادامه به تفصیل بررسی می شوند.

الف. پاکسازی با استفاده از افزونه های امنیتی (روش پیشنهادی برای اکثر کاربران)

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

۱. انتخاب و نصب افزونه امنیتی معتبر:

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

  • Wordfence Security: این افزونه یکی از جامع ترین ابزارهای امنیتی است که شامل فایروال برنامه وب (WAF)، اسکنر بدافزار و ابزارهای نظارتی قوی می شود. وردفنس می تواند فایل های اصلی وردپرس، قالب ها و افزونه ها را از نظر وجود کدهای مخرب بررسی کند.
  • Sucuri Security: سوکوری نه تنها یک افزونه امنیتی، بلکه یک پلتفرم کامل امنیت وب سایت است. این افزونه قابلیت اسکن از راه دور، پاکسازی بدافزار، و محافظت در برابر حملات DDoS را ارائه می دهد.
  • iThemes Security: این افزونه با تمرکز بر روی تقویت نقاط ضعف امنیتی، اقداماتی مانند محدود کردن تلاش های ورود، تغییر پیشوند جداول دیتابیس و محافظت از فایل های مهم را فراهم می کند.

نصب این افزونه ها معمولاً از طریق مخزن افزونه های وردپرس (بخش افزونه ها > افزودن جدید) صورت می گیرد و پس از نصب، فعال سازی آن ها لازم است.

۲. اجرای اسکن کامل سایت:

پس از نصب و فعال سازی افزونه، گام بعدی اجرای یک اسکن کامل از وب سایت است. این فرآیند ممکن است بسته به حجم سایت و توانایی های افزونه، چند دقیقه تا چند ساعت به طول بینجامد. افزونه ها معمولاً به صورت خودکار فایل های هسته وردپرس، قالب ها، افزونه ها و حتی بخش هایی از دیتابیس را برای یافتن کدهای مشکوک، بدافزارها و تغییرات غیرمجاز اسکن می کنند. در حین اسکن، بهتر است سایت در حالت نگهداری (Maintenance Mode) قرار داشته باشد تا از بروز مشکلات بیشتر جلوگیری شود.

۳. بررسی و حذف/تعمیر فایل های شناسایی شده:

پس از اتمام اسکن، افزونه گزارشی از فایل های مشکوک یا آلوده ارائه می دهد. این گزارش معمولاً شامل جزئیاتی مانند نوع تهدید، محل فایل، و پیشنهاد برای اقدام (حذف، تعمیر یا نادیده گرفتن) است. در این مرحله، دقت و احتیاط بسیار مهم است:

  • Delete All Malicious Files: این گزینه می تواند تمامی فایل هایی را که افزونه به عنوان مخرب شناسایی کرده است، حذف کند. در استفاده از این گزینه باید دقت کرد، زیرا گاهی اوقات افزونه ها ممکن است تغییرات مجاز یا کدهای سفارشی سازی شده را به اشتباه به عنوان تهدید شناسایی کنند.
  • Repair: برخی افزونه ها قابلیت تعمیر فایل های هسته وردپرس را دارند، به این معنی که کدهای مخرب را از فایل های اصلی حذف کرده و آن ها را به حالت اولیه و سالم باز می گردانند. این گزینه برای فایل های هسته وردپرس و افزونه های محبوب بسیار مفید است.
  • Ignore: در صورتی که از صحت یک فایل یا کد مطمئن هستید و افزونه آن را به اشتباه به عنوان مخرب شناسایی کرده است، می توانید آن را نادیده بگیرید.

بررسی جزئیات هر مورد شناسایی شده و اطمینان از اینکه فایل های مهم یا تغییرات مجاز حذف نمی شوند، از اهمیت بالایی برخوردار است. در صورت عدم اطمینان، مشاوره با یک متخصص امنیت وردپرس توصیه می شود.

۴. پاکسازی هشدارهای گوگل از طریق Search Console:

اگر گوگل وب سایت را به عنوان آلوده شناسایی کرده باشد و هشدارهایی را به کاربران نمایش دهد (مانند This site may be hacked)، پس از پاکسازی کامل سایت، باید این موضوع به گوگل اطلاع داده شود. این کار از طریق Google Search Console صورت می گیرد:

  1. وارد حساب Google Search Console خود شوید.
  2. به بخش Security & Manual Actions و سپس Security Issues بروید.
  3. در این بخش، مشکلات امنیتی گزارش شده توسط گوگل را مشاهده خواهید کرد.
  4. پس از اطمینان از پاکسازی کامل، گزینه I have Fixed these issues را انتخاب کرده و Request a Review را کلیک کنید.

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

ب. پاکسازی دستی فایل های مخرب (روش تخصصی و نیازمند دانش فنی)

پاکسازی دستی فایل های مخرب از وردپرس، روشی است که نیازمند دانش فنی عمیق در زمینه ساختار وردپرس، کدنویسی PHP و مدیریت سرور است. این روش برای مواردی که افزونه های امنیتی قادر به شناسایی یا حذف کامل بدافزار نیستند، یا برای وب مسترها و توسعه دهندگانی که ترجیح می دهند کنترل کامل فرآیند را در دست داشته باشند، مناسب است. اما لازم به ذکر است که هرگونه اشتباه در این مرحله می تواند به آسیب های جدی و حتی از کار افتادن کامل وب سایت منجر شود. بنابراین، تاکید مجدد بر اهمیت پشتیبان گیری کامل از سایت قبل از شروع هرگونه تغییر، ضروری است.

نکته مهم: پیش از شروع به پاکسازی دستی، حتماً از پشتیبان کاملی که در بخش اقدامات اولیه توضیح داده شد، اطمینان حاصل کنید. این پشتیبان گیری همانند نقشه راهی برای بازگشت به نقطه امن عمل می کند و در صورت بروز هرگونه خطا، وب سایت شما را نجات خواهد داد.

۱. مقایسه و جایگزینی فایل های هسته وردپرس:

فایل های هسته وردپرس (Core Files) که شامل پوشه های wp-admin و wp-includes و فایل های اصلی در ریشه سایت می شوند، اغلب هدف اصلی حملات بدافزاری هستند. هکرها ممکن است کدهای مخرب را به این فایل ها تزریق کنند یا آن ها را با نسخه های آلوده جایگزین کنند. برای اطمینان از سلامت این فایل ها:

  1. جدیدترین نسخه وردپرس را از وب سایت رسمی wordpress.org دانلود کنید.
  2. فایل فشرده دانلود شده را از حالت فشرده خارج کنید.
  3. از پوشه استخراج شده، پوشه های wp-content و فایل های wp-config-sample.php و readme.html را حذف کنید. دلیل حذف wp-content این است که این پوشه حاوی محتوای منحصر به فرد سایت شما (افزونه ها، قالب ها، آپلودها) است و نباید با نسخه تمیز جایگزین شود.
  4. با استفاده از FTP یا File Manager هاست، تمامی فایل های هسته وردپرس را (به جز wp-content، wp-config.php و فایل .htaccess موجود در ریشه) در روت هاست آپلود کرده و جایگزین فایل های موجود کنید. این کار تضمین می کند که تمامی فایل های سیستمی وردپرس سالم و بدون آلودگی هستند.

۲. بررسی و پاکسازی فایل `wp-config.php`:

فایل wp-config.php یکی از مهم ترین فایل های وردپرس است که حاوی اطلاعات حیاتی دیتابیس و کلیدهای امنیتی سایت است. این فایل اغلب هدف هکرها برای تزریق کدهای مخرب (مانند بک دورها یا کدهای ریدایرکت) قرار می گیرد.

  1. فایل wp-config.php فعلی را از هاست خود دانلود کنید.
  2. این فایل را با یک نمونه تمیز از wp-config-sample.php (که در بسته نصبی وردپرس وجود دارد) مقایسه کنید. در حین مقایسه، توجه داشته باشید که اطلاعات دیتابیس (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST) و Security Keys سایت شما باید در فایل فعلی حفظ شوند و نباید با مقادیر نمونه جایگزین شوند.
  3. به دنبال کدهای مشکوک و ناخوانا بگردید. کدهایی که از توابعی مانند base64_decode، eval، preg_replace با پرچم /e/، یا کدهای بسیار طولانی و رمزگذاری شده در ابتدای یا انتهای فایل استفاده می کنند، به شدت مشکوک هستند و باید حذف شوند.
  4. اطمینان حاصل کنید که مقادیر AUTH_KEY، SECURE_AUTH_KEY، LOGGED_IN_KEY، NONCE_KEY کاملاً منحصر به فرد و تصادفی هستند. در صورت نیاز، می توانید با استفاده از ابزار آنلاین وردپرس، کلیدهای جدید و تصادفی تولید کرده و آن ها را در فایل wp-config.php جایگزین کنید.

۳. بررسی و پاکسازی پوشه های `wp-content` (افزونه ها، قالب ها، آپلودها):

پوشه wp-content جایی است که تمامی افزونه ها، قالب ها و فایل های آپلود شده توسط کاربران ذخیره می شوند. این پوشه به دلیل وجود کدهای شخص ثالث و امکان آپلود فایل توسط کاربران، یکی از نقاط آسیب پذیر اصلی برای نفوذ بدافزارها است.

a. افزونه ها (wp-content/plugins):

  • غیرفعال کردن تمام افزونه ها: بهترین روش برای شروع، غیرفعال کردن تمامی افزونه ها است. این کار را می توانید از پنل مدیریت وردپرس انجام دهید. اگر دسترسی به پنل مدیریت ندارید، می توانید با تغییر نام موقت فولدر plugins (مثلاً به plugins_old) از طریق FTP، تمامی افزونه ها را غیرفعال کنید.
  • حذف افزونه های ناشناس، نال شده یا مشکوک: افزونه هایی که از منابع نامعتبر دانلود شده اند یا به نظر مشکوک می آیند، باید بلافاصله حذف شوند. افزونه های نال شده (Nullified) معمولاً حاوی کدهای مخرب هستند.
  • دانلود نسخه های جدید و سالم: برای افزونه های ضروری، نسخه های جدید و سالم آن ها را از مخزن رسمی وردپرس یا وب سایت توسعه دهنده دانلود و مجدداً نصب کنید.
  • بررسی دستی فایل ها: تمامی فایل های php و js در فولدر اصلی هر افزونه و همچنین فولدرهای فرعی آن را به دقت بررسی کنید. به دنبال کدهای رمزگذاری شده، ناخوانا، یا توابعی مانند eval، base64_decode، shell_exec بگردید که معمولاً نشان دهنده کدهای مخرب هستند.

b. قالب ها (wp-content/themes):

  • فعال کردن یک قالب پیش فرض وردپرس: برای اطمینان از عدم آلودگی قالب فعال، یک قالب پیش فرض وردپرس (مانند Twenty Twenty-Four) را فعال کنید.
  • حذف قالب های غیرضروری و قدیمی: تمامی قالب هایی که استفاده نمی شوند یا نسخه های قدیمی و به روز نشده هستند، باید حذف شوند تا سطح حمله کاهش یابد.
  • دانلود نسخه جدید و سالم قالب اصلی: اگر از قالب اصلی خود استفاده می کنید، نسخه جدید و سالم آن را از منبع معتبر دانلود و نصب کنید. اگر از Child Theme استفاده می کنید، آن را نگه دارید و تنها قالب والد را جایگزین کنید.
  • بررسی دستی فایل های قالب فعال: فایل های php، js و css قالب فعال (و Child Theme در صورت وجود) را برای یافتن کدهای مخرب بازبینی کنید. فایل functions.php در قالب ها اغلب هدف تزریق کد مخرب قرار می گیرد.

c. پوشه آپلودها (wp-content/uploads):

  • پوشه uploads معمولاً نباید حاوی فایل های اجرایی PHP باشد. این پوشه برای تصاویر، ویدئوها و سایر فایل های رسانه ای است. هرگونه فایل .php، .js یا فایل های با نام های غیرمعمول و مشکوک در این پوشه باید حذف شوند.
  • فایل .htaccess احتمالی در این پوشه را بررسی کنید. یک فایل .htaccess سالم در این پوشه می تواند اجرای کدهای مخرب PHP را غیرفعال کند. اگر فایل .htaccess با محتوای مشکوک یا دستورالعمل های غیرمعمول وجود دارد، آن را با یک نسخه تمیز جایگزین کنید یا حذف نمایید.

۴. بررسی سایر فایل های مهم در ریشه سایت:

علاوه بر فایل های هسته و پوشه wp-content، چند فایل مهم دیگر در ریشه سایت وردپرس وجود دارند که ممکن است توسط هکرها مورد دستکاری قرار گیرند:

  • فایل .htaccess در ریشه سایت: این فایل مسئول تنظیمات سرور و بازنویسی URL ها است. آن را برای یافتن ریدایرکت های مشکوک، کدهای ناشناس، یا قوانین بازنویسی URL غیرمعمول به دقت بررسی کنید. کدهای مخرب معمولاً در ابتدا یا انتهای این فایل اضافه می شوند.
  • فایل های index.php، wp-settings.php، wp-load.php: این فایل ها بخشی از فرآیند بوت استرپ وردپرس هستند. آن ها را برای هرگونه کد اضافی، توابع مشکوک یا تغییرات غیرمعمول در ابتدای یا انتهای فایل بررسی کنید. مقایسه با نسخه های تمیز از هسته وردپرس (که در گام اول دانلود کرده اید) می تواند به شناسایی تغییرات کمک کند.

۵. پاکسازی دیتابیس (پایگاه داده):

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

  1. ورود به phpMyAdmin: از طریق کنترل پنل هاست خود (CPanel/DirectAdmin)، به ابزار phpMyAdmin دسترسی پیدا کنید. phpMyAdmin رابطی گرافیکی برای مدیریت دیتابیس های MySQL است.
  2. بررسی جداول حیاتی: جداول خاصی در دیتابیس وردپرس وجود دارند که بیشتر مورد هدف حملات قرار می گیرند. این جداول شامل wp_options (برای تنظیمات سایت و افزونه ها)، wp_users (برای اطلاعات کاربران)، wp_posts (برای محتوای پست ها و صفحات)، و wp_comments (برای نظرات) می شوند. علاوه بر این، جداول مربوط به افزونه ها نیز باید بررسی شوند.
  3. جستجو برای رشته های مخرب: در فیلدهای متنی جداول ذکر شده (مانند option_value، post_content، comment_content)، به دنبال رشته های مشکوک و غیرمعمول بگردید. عبارت هایی مانند base64، eval، script، iframe، یا لینک هایی به وب سایت های ناشناس و مشکوک (مثلاً http://bad-site.com) می توانند نشان دهنده تزریق کد مخرب باشند. ابزار جستجوی phpMyAdmin می تواند در این زمینه کمک کننده باشد.
  4. حذف کاربران ناشناس و مدیران جعلی: جدول wp_users را برای یافتن هرگونه کاربر ناشناس یا مدیر جعلی که توسط هکرها ایجاد شده اند، بررسی کنید. این کاربران باید بلافاصله حذف شوند.
  5. حذف لینک های اسپم و محتوای مخرب: جداول wp_posts و wp_comments را برای هرگونه پست، صفحه یا نظر حاوی لینک های اسپم، تبلیغات ناخواسته یا کدهای مخرب بررسی کرده و آن ها را حذف کنید.
  6. بهینه سازی و تعمیر جداول دیتابیس: پس از پاکسازی، می توانید با استفاده از گزینه های Optimize table و Repair table در phpMyAdmin، عملکرد جداول دیتابیس را بهبود بخشیده و هرگونه مشکل ساختاری را رفع کنید.

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

۶. شناسایی و مسدود کردن بک دورها (Backdoors):

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

بک دورها می توانند به شکل های مختلفی در فایل های PHP پنهان شوند. برخی از توابع PHP که اغلب توسط هکرها برای ایجاد بک دور استفاده می شوند، عبارت اند از:

  • eval(): این تابع یک رشته را به عنوان کد PHP ارزیابی و اجرا می کند و بسیار خطرناک است.
  • exec()، system()، passthru()، shell_exec()، proc_open()، popen(): این توابع امکان اجرای دستورات سیستمی را فراهم می کنند.
  • assert(): مشابه eval()، یک رشته را به عنوان کد ارزیابی می کند.
  • base64_decode()، gzuncompress()، stripslashes()، str_rot13(): این توابع اغلب برای رمزگذاری/رمزگشایی کدهای مخرب استفاده می شوند تا از شناسایی آسان جلوگیری کنند.
  • move_uploaded_file(): این تابع برای جابجایی فایل های آپلود شده استفاده می شود، اما می تواند برای آپلود فایل های مخرب نیز سوءاستفاده شود.
  • unserialize(): این تابع می تواند در برخی موارد به حملات تزریق شیء (Object Injection) منجر شود.

روش جستجو:

می توان تمامی فایل های PHP در پوشه های اصلی وردپرس (به ویژه wp-content، wp-includes و ریشه سایت) را به صورت دستی یا با استفاده از ابزارهای جستجوی کد در کنترل پنل هاست، برای یافتن این توابع بررسی کرد. البته باید توجه داشت که وجود این توابع لزوماً به معنای مخرب بودن آن ها نیست، زیرا برخی افزونه ها و قالب های قانونی نیز از آن ها استفاده می کنند. اما استفاده نابجا، کدهای طولانی و رمزگذاری شده در کنار این توابع، و وجود آن ها در فایل هایی که انتظار نمی رود (مثلاً در پوشه uploads)، همگی نشان دهنده بک دور هستند. همچنین، به دنبال الگوهای رایج بک دور مانند کدهای تزریق شده در بالای فایل های قانونی یا در انتهای آن ها باشید.

اقدامات پس از پاکسازی و افزایش امنیت وردپرس (پیشگیری)

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

۱. فعال کردن و پیکربندی کامل افزونه های امنیتی:

یکی از قوی ترین ابزارها برای حفاظت مداوم از وردپرس، افزونه های امنیتی هستند. پس از پاکسازی، باید یک افزونه امنیتی معتبر (مانند Wordfence Security، Sucuri Security، یا iThemes Security) را فعال کرده و به طور کامل پیکربندی نمایید. این افزونه ها قابلیت های متعددی از جمله فایروال برنامه وب (WAF)، اسکنرهای زمان بندی شده برای شناسایی بدافزار وردپرس، و قابلیت های محافظتی پیشرفته در برابر حملات تزریق SQL، XSS و Brute-Force را ارائه می دهند. اطمینان از فعال بودن تمامی ماژول های امنیتی و تنظیم هشدارها برای فعالیت های مشکوک، بسیار حیاتی است.

۲. به روزرسانی منظم وردپرس، قالب ها و افزونه ها:

بسیاری از حملات سایبری از طریق حفره های امنیتی در نسخه های قدیمی وردپرس، قالب ها یا افزونه ها صورت می گیرند. توسعه دهندگان به طور منظم به روزرسانی هایی را منتشر می کنند که شامل رفع اشکالات و بهبودهای امنیتی هستند. بنابراین، اطمینان از به روز بودن تمامی اجزای سایت، از جمله هسته وردپرس، تمامی قالب های نصب شده (حتی غیرفعال ها) و تمامی افزونه ها، یک گام ضروری در جلوگیری از هک وردپرس است. این کار به بستن راه های نفوذ هکرها به وردپرس کمک شایانی می کند.

۳. استفاده از رمزهای عبور قوی و فعال سازی احراز هویت دو مرحله ای (2FA):

رمزهای عبور ضعیف، یکی از ساده ترین راه ها برای نفوذ هکرها هستند. اطمینان از استفاده تمامی کاربران (به ویژه مدیران) از رمزهای عبور قوی و پیچیده (ترکیبی از حروف بزرگ و کوچک، اعداد و نمادها) بسیار مهم است. علاوه بر این، فعال سازی احراز هویت دو مرحله ای (2FA) برای تمامی حساب های کاربری، به ویژه حساب های مدیریتی، لایه امنیتی مضاعفی ایجاد می کند. این روش، حتی اگر رمز عبور به دست هکر بیفتد، از ورود غیرمجاز جلوگیری می کند.

۴. تنظیم دسترسی های فایل (CHMOD) به طور صحیح:

دسترسی های فایل و پوشه (CHMOD) در سرور، تعیین می کنند که چه کسی می تواند فایل ها را بخواند، بنویسد یا اجرا کند. تنظیم نادرست این دسترسی ها می تواند راه را برای تزریق کدهای مخرب باز کند. مقادیر استاندارد و توصیه شده برای دسترسی ها عبارتند از:

  • پوشه ها: 755 (مالک می تواند بخواند، بنویسد، اجرا کند؛ گروه ها و دیگران فقط بخوانند و اجرا کنند).
  • فایل ها: 644 (مالک می تواند بخواند و بنویسد؛ گروه ها و دیگران فقط بخوانند).

فایل wp-config.php به دلیل حساسیت بالا، باید دارای دسترسی های محدودتری مانند 600 یا 400 باشد تا فقط مالک سرور به آن دسترسی داشته باشد.

۵. غیرفعال کردن ویرایش فایل از پنل وردپرس:

وردپرس به طور پیش فرض، امکان ویرایش مستقیم فایل های قالب و افزونه را از طریق پنل مدیریت فراهم می کند. در صورت نفوذ هکر به پنل مدیریت، این قابلیت می تواند برای تزریق کدهای مخرب به فایل های اصلی سایت سوءاستفاده شود. با افزودن خط کد define('DISALLOW_FILE_EDIT', true); به فایل wp-config.php، می توان این قابلیت را غیرفعال کرد و از یک لایه امنیتی اضافه بهره مند شد.

۶. استفاده از فایروال برنامه وب (WAF) در سطح سرور یا CDN:

فایروال های برنامه وب (Web Application Firewalls) لایه ای از محافظت را در برابر حملات رایج وب مانند تزریق SQL و XSS، قبل از رسیدن ترافیک مخرب به وب سایت شما، فراهم می کنند. استفاده از خدماتی مانند Cloudflare (در حالت پروکسی) یا Sucuri Firewall می تواند ترافیک مخرب را شناسایی و مسدود کند و به عنوان یک سپر محافظ برای سایت عمل کند.

۷. نظارت مداوم بر لاگ های سایت و هاست:

لاگ های دسترسی (Access Logs) و لاگ های خطا (Error Logs) در سرور، اطلاعات ارزشمندی در مورد فعالیت های وب سایت و تلاش های نفوذ احتمالی فراهم می کنند. نظارت منظم بر این لاگ ها می تواند به شناسایی الگوهای مشکوک، تلاش های ناموفق ورود، و فعالیت های غیرعادی که نشان دهنده یک حمله یا نفوذ هستند، کمک کند.

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

۸. تغییر پیشوند جداول دیتابیس (اختیاری و با احتیاط):

به طور پیش فرض، وردپرس از پیشوند wp_ برای جداول دیتابیس استفاده می کند. تغییر این پیشوند به یک مقدار تصادفی و منحصربه فرد (مثلاً wpz1x_) می تواند حملات تزریق SQL را که جداول پیش فرض را هدف قرار می دهند، دشوارتر کند. این اقدام امنیتی، هرچند مزایایی دارد، اما باید با احتیاط فراوان و پس از پشتیبان گیری کامل انجام شود، زیرا تغییر نادرست می تواند منجر به از کار افتادن سایت شود.

۹. محدود کردن تلاش های ورود (Login Attempts):

حملات Brute-Force به پنل ورود وردپرس، یکی از رایج ترین روش های هکرها برای حدس زدن رمزهای عبور است. استفاده از افزونه هایی که تلاش های ورود ناموفق را محدود می کنند (مانند Login LockDown یا ویژگی های مشابه در افزونه های امنیتی جامع) می تواند از این نوع حملات جلوگیری کند. همچنین، می توان با افزودن کدهای خاص به فایل .htaccess، دسترسی به صفحه ورود را محدود به آدرس های IP خاص کرد.

۱۰. حذف کاربران، قالب ها و افزونه های غیرضروری و ناکارآمد:

هر کاربر، قالب یا افزونه ای که در سایت نصب شده است، یک نقطه ورود بالقوه برای هکرها محسوب می شود. حذف موارد غیرضروری، به کاهش سطح حمله (Attack Surface) کمک می کند. این به معنای پاکسازی کاربران غیرفعال، قالب هایی که استفاده نمی شوند و افزونه هایی که دیگر نیازی به آن ها نیست یا به روز نمی شوند، است. این اقدام می تواند به طور قابل توجهی ریسک امنیتی سایت را کاهش دهد.

جمع بندی

در دنیای پرهیاهوی وب، که هر روز شاهد ظهور تهدیدات سایبری جدیدی هستیم، حفظ امنیت وب سایت های وردپرسی به یک چالش حیاتی تبدیل شده است. مسیر بررسی و پاک سازی فایل های مخرب از وردپرس، اگرچه ممکن است در ابتدا پیچیده به نظر برسد، اما با آگاهی از نشانه های آلودگی، انجام اقدامات اولیه ضروری مانند پشتیبان گیری کامل و به روزرسانی رمزهای عبور، و سپس به کارگیری روش های پاکسازی (چه از طریق افزونه های معتبر و چه به صورت دستی و تخصصی)، می توان امنیت سایت را به طور موثری تامین کرد. پس از پاکسازی، مرحله پیشگیری از اهمیت ویژه ای برخوردار است، چرا که امنیت یک فرآیند مداوم است که نیازمند نظارت همیشگی، به روزرسانی منظم، و پیاده سازی لایه های دفاعی متعدد از جمله استفاده از فایروال و تنظیم صحیح دسترسی ها می باشد. این رویکرد جامع، تضمین کننده پایداری و امنیت وب سایت در برابر تهدیدات آتی خواهد بود.

دکمه بازگشت به بالا