مدتی است میبینید که برگههای سایتتان در نتایج جستجوی گوگل با کلیدواژههای عجیب و غریب ژاپنی ظاهر میشود؟ خبر بد اینکه سایت شما به بدافزار موسوم به «اسپم کلیدواژه ژاپنی» یا «اسپم سئوی ژاپنی» آلوده شده.
اتفاقی که با این آلودگی میافتد اینست که هم محتوا و عناوین و کلیدواژههای ژاپنی به صفحات سایت شما اضافه میشود (ولو اینکه نبینید و صفحات در ظاهر عین قبل نمایش داده شوند) و هم اینکه برگههای جعلی زیادی (عموما با پسوند html) ساخته میشوند و به نقشه سایت شما راه پیدا میکنند تا از این طریق در موتور جستجوی گوگل ایندکس شوند. اگر زودتر این آلودگی رفع نشود متأسفانه دامنه در فهرست سیاه گوگل قرار میگیرد و باید فاتحه سئوی سایت را خواند. در این مطلب اول به نشانههای این آلودگی میپردازم و بعد قدمهای لازم برای پاکسازی آن.
اگر دامنه سایت خودتان را به صورت site:yoursite.com در گوگل جستجو کنید، فهرست تمام صفحات ایندکسشده به شما نمایش داده میشود. اگر با تصویری مشابه زیر روبرو شدید حتم بدانید که به این بدافزار آلوده شدهاید:
جالب اینجاست که رفتار این بدافزار در بازههای زمانی مختلف تغییر میکند تا شما را فریب بدهد. مثلا گاهی تمام برگهها را به صورت خالی (سفید) و بدون هیچ سورس کدی نمایش میدهد به طوری که تصور میکنید سایت کلا از دسترس خارج شده و لابد مشکل از سرور هست؛ اما چند ساعت بعد مجددا محتوای سایت به شکل قبل برمیگردد و اینبار فکر میکنید که اختلال رفع شده. در واقع این تغییر رفتار با این هدف هست که شناسایی بدافزار سختتر شود. اما نکته مهم اینست که حتی در صورت نمایش عادی محتوای سایت، آلودگی سر جای خود باقی است و آنچه شما میبینید با آنچه که به ربات گوگل نمایش داده میشود تفاوت دارد.
حالا اگر کنجکاو هستید که بات گوگل صفحه آلوده را چه شکلی میبیند، باید شبیهسازیاش کنید. برای اینکار میتوانید افزونه User-Agent Switcher را روی مرورگر کروم نصب کنید و بعد از انتخاب حالت Googlebot (Google's Spider) صفحه را مجددا ببینید. تصویر زیر نمای سایت آلودهای است که وقتی به کاربر انسانی نمایش داده میشود ظاهرا هیچ مشکلی ندارد! به عبارتی به کاربر همان محتوای همیشگی نشان داده میشود ولی به بات گوگل محتوای جعلی و اسپم (بعد از پاکسازی هم از این روش میشود برای اطمینان از موفقیت در حذف کدهای مخرب استفاده کرد).
اگر وبسایت آلوده را با اسکنرهای آنلاین هم بررسی کنید، احتمال تشخیص نوع آلودگی وجود دارد (البته در نظر داشته باشید که این اسکنرها به فایلهای هسته وردپرس و همینطور دیتابیس شما دسترسی ندارند و بنابراین فقط فرانتاند سایت را بررسی میکنند. در نتیجه احتمال نیافتن آلودگی هم بالاست و به نتیجهاش نمیتوان استناد کرد). به هر حال تصویر زیر موردی است از بررسی سایت قربانی با اسکنر آنلاین Sucuri که نوع اسپم را به درستی تشخیص داده:
Known Spam Detected: spam-seo?japanese.0
مورد بعدی که آلودگی سایت را نشان میدهد، بررسی نقشه سایت (سایت مپ) است (یعنی آدرس yoursite.com/sitemap_index.xml). تصویر زیر نقشه سایت قربانی را نشان میدهد که مملو از لینکهای ساختگی با پسوند html و shtml است و بعضا به سایتهای دیگری ریدایرکت میشود:
پاکسازی این بدافزار، دو مرحله دارد: یکی یافتن و پاک کردن کدهای مخرب در داخل سایت و دیگری حذف لینکهای آلوده از سرچ کنسول گوگل.
مرحله اول
تا جایی که به سایت مربوط میشود، کدهای مخرب این بدافزار هرجایی میتوانند لانه کرده باشند: داخل فایل htaccess (برای ریدایرکت لینکهای ساختگی به سمت یک مقصد)، داخل فایلهایی مثل index.php و wp-config.php، در فولدر پلاگینها و فولدر Uploads (عموما با فرمتهای php و ico و غیره)، به صورت یک فایل مشکوک در روت سایت و یا داخل فایلهای هسته وردپرس و غیره.
در نتیجه در قدم اول باید روت سایت (مسیر public_html) را برای یافتن فایل(های) مشکوک و غیرعادیای که هکر به عنوان درِ پشتی (backdoor) جاسازی میکند گشت (از آنجایی که فایلهای هسته وردپرس مشخص هستند -همان فایلهای داخل بسته نصبی وردپرس- اغلب به سادگی میتوان با یک نگاه فایلهای بیارتباط به وردپرس را پیدا و کدهایشان را بررسی کرد). بعد از این باید نگاهی به کدهای داخل فایل htaccess هم انداخت (یا اصلا به جای اینکار کلا یک فایل htaccess تازه ساخت و با قبلی جایگزین کرد). نهایتا باید یک نسخه تازه از وردپرس را نصب کرد. در این حالت تمام فایلها و فولدرهای هسته وردپرس به استثنای wp-content جایگزین میشوند، بنابراین کد/فایل آلوده همچنان میتواند در این فولدر آخر باقی مانده باشد. پیدا کردن این کدها به صورت دستی خیلی سخت و زمانبر و در مواردی غیرممکن است، پس باید از افزونههای اسکن سایت استفاده کرد. در بین این افزونهها قطعا malcare با اختلاف در صدر فهرست قرار دارد، منتها نسخه رایگان این افزونه صرفا وجود -و نه محل- آلودگی را به شما اطلاع میدهد و فرایند پاکسازیاش هم نیازمند خرید نسخه پولی هست. بنابراین به کار کاربران ایرانی نمیآید. بنا به تجربه اسکن مجزای سایت توسط دو افزونهی wordfence و Anti-Malware Security میتواند با دقت بالایی کدمخرب را شناسایی و ردگیری کند (فقط در نظر داشته باشید که گاهی در این اسکنها به شما False Positive هم داده میشود، یعنی فایلی را مشکوک و آلوده معرفی میکند که در واقع مشکلی ندارد و تمیز است).
مرحله دوم
در مرحله بعد از پاکسازی بدافزار باید فایل متنی robots.txt در روت سایت (public_html در سیپنل) را ویرایش کنید و قابلیت کراول/ایندکسِ برگههای جعلی html را که بدافزار به نقشه سایت شما اضافه کرده غیرفعال کنید. برای اینکار باید کد زیر را به فایل robots.txt اضافه کنید:
Disallow:/*.html$
توجه داشته باشید که اگر غیر از html برگههای دیگری با پسوندهای متفاوت (مثل shtml) به نقشه سایت اضافه شدهاند، در دستور بالا به جای html فرمت مورد نظر را قرار دهید؛ مثلا:
Disallow:/*.shtml$
بعد از این نوبت به حذف لینکهای ساختگی ایندکسشده از سرچ کنسول گوگل میرسد. در سرچ کنسول ابزار Removals وجود دارد که میتوانید از طریقش درخواست حذف urlها را بدهید. منتها اگر تعداد urlهای آلوده زیاد باشد که عموما هست، حذف دستی آنها بسیار زمانبر و طاقتفرسا میشود. در مطلب بعدی به این میپردازم که چطور میتوانید به طور اتوماتیک درخواست حذف یکجا و دسته جمعی لینکها را بدهید.
وندا نوژن
هک ریدایرکت سایت وردپرسی و نحوه پاکسازی آن
وردپرس: یافتن اکانت نامرئی هکر
وردپرس و مهمترین فایلهایی که طعمه هکرها میشوند