وردپرس یکی از محبوب ترین CMS هایی است که برای ایجاد وب سایت و فروشگاه های تجارت الکترونیک استفاده می شود. با این حال، محبوبیت آن باعث شده است که هدف مکرر هکرها و اسپمرهای سئو باشد. هکرها سایت های مبتنی بر وردپرس را با انواع مختلف حملات بدافزار و هک مورد هدف قرار می دهند. یکی از متداول ترین تکنیک های هک مورد استفاده آنها این است که سعی می کنند فهرست های جستجو را دستکاری کنند تا محتوای نامناسب را در موقعیت های جستجوی برجسته قرار دهند. این تکنیک سئو کلاه سیاه (Black Hat) همچنین به عنوان "Pharma hack وردپرس یا اسپم سئو" شناخته می شود.
چرا هکرها سایت های وردپرس را با Pharma Hack مورد هدف قرار می دهند؟
پاسخ ساده است. جستجوهای آنلاین منبع اصلی مراجعات ارزشمند به وب سایت هستند و هک سئو ساده ترین راه برای دستیابی به این هدف بدون انجام کار زیاد است. این نوع حمله با هک کردن سایت های معتبر و آلوده کردن آنها با ریدایرکت اسپم، هکرها را در SERP (نتایج موتورهای جستجو) از جایگاه ویژه ای برخوردار می کند. حمله های "Pharma Hack" یا "Pharma SEO Spam" تا حدودی شبیه حملات "Spam link Injection" هستند و مشخص شده که یکی از رایج ترین تکنیک های سئو کلاه سیاه است که توسط هکرها استفاده می شود.
Pharma Hack چیست؟
Pharma Hack نوعی آلودگی به بدافزار است که وب سایت های وردپرس را هدف قرار می دهد و منجر می شود که یک سایت معتبر به صفحات ناخواسته ای ریدایرکت شود که تبلیغات نسخه تقلبی را نمایش می دهد. حتی در یکی از هک های اخیر Pharma وردپرس، یک نسخه پیچیده تر از هک مشاهده شده است. در این نسخه، هکرها نام وب سایت هک شده را در عنوان نتایج جستجوی گوگل تنظیم کرده اند. این موضوع باعث می شود کاربران باور کنند که یک وب سایت معتبر محصولات دارویی است.
نمونه ای از نسخه پیچیده حمله Pharma:
تصویر (1)
در این مثال "example.com" سایتی است که هکر ها قصد سوء استفاده از نام آنرا دارند و "example" نام دارو می باشد.
چگونگی تشخیص آلوده شدن سایت وردپرس به Pharma Hack
لیستی از وب سایت های آلوده را می توان با جستجو در گوگل با کلمات کلیدی مانند "نام دارو + example.com"مشاهده کرد اما طبق سیاست های مدیران گوگل، وب سایت های آسیب دیده در صفحه اول قابل مشاهده نیستند. بنابراین، باید به صفحه 3 یا 4 مراجعه کنید. اگر وب سایت شما در جستجو ظاهر می شود، به این معنی است که شما قربانی Pharma Hack وردپرس یا اسپم سئو کلاه سیاه (Black Hat) هستید. این لیست نه تنها شامل وب سایت های آلوده است بلکه صفحات جعلی را نیز نشان می دهد. کلیک بر روی چنین صفحاتی ممکن است شما را به صفحات دیگر هدایت کند یا محتوا را در همان صفحه بارگذاری کند.
برای بررسی اینکه کدام صفحات وب سایت شما آلوده به اسپم سئو دارویی است، نام دارو را با نام دامنه خود در جستجوی گوگل، یعنی "نام دارو + example.com" وارد کنید. گاهی اوقات فقط چند صفحه در وب سایت شما آلوده است و آن صفحات برای شما قابل مشاهده نیستند. این جستجو صفحات آلوده را نشان می دهد. در صورت ریدایرکت به وب سایت های فروش دارو، شما به اسپم سئو آلوده شده اید. گاهی اوقات به جای ریدایرکت، محتوا در همان صفحه بارگذاری می شود.
جستجوی گوگل برای نام دارو و نام دامنه
تصویر (2)
آناتومی Pharma Hack وردپرس
اتفاقات
مهاجم برای انجام Pharma Hack وردپرس، ابتدا از یک ضعف شناخته شده یا یک مشکل امنیتی zero-day استفاده می کند. "zero-day" یک اصطلاح گسترده است که باگ های امنیتی اخیری که کشف شده است را توصیف می کند. هکرها می توانند از این آسیب پذیری ها برای حمله به سیستم استفاده کنند. اصطلاح "zero-day" به این امر اشاره دارد که فروشنده یا توسعه دهنده وقتی نقص را متوجه شود صفر روز برای رفع آن فرصت دارد.
در زیر لیستی چند مورد از رایج ترین مواردی که ممکن است مورد حمله واقع شوند، ذکر شده است. آنها عبارتند از:
- تزریق کدهای مخرب در SQL یا XSS به دلیل اشتباهات برنامه نویسی که در کدهای استاندارد رخ می دهد. بهتر است که این دو مورد را زیر نظر داشته باشید.
- رمزهای ضعیف حساب یا FTP دومین علت اصلی هستند. اخیراً، مخزن لینوکس GitHub نیز در نتیجه ضعف گواهینامه ها هک شد.
- بیشتر اوقات، فهرست محتوا و نمایش خطا فعال است. در نتیجه این امر، فایل های مهم به طور آشکار در شبکه قابل خواندن هستند.
- استفاده از افزونه های patch نشده یا قدیمی یکی از دلایل اصلی هک وردپرس است.
ماندگاری
Pharma Hack وردپرس با تغییر محتویات فایل های اصلی کار می کند. بیشتر حملات اسپم از طریق پوشه misc و includes انجام می شود. اسپمرها با روش های شناخته شده ای مانند موارد زیر به اهداف خود می رسند:
- اصلاح فایل هایی مانند index.php ،wp-page.php ،nav.php و غیره
- افزودن صفحات جدید مانند leftpanelsin.php ،cache.php و غیره
- ویرایش xmlrpc.php برای جلوگیری از شناسایی توسط مدیران وب سایت.
- استفاده از کدگذاری base64 برای مبهم سازی کد.
- مخفی کردن فایل های اسپم در پوشه images. خزنده های وب انتظار دیدن فایل ها را در این پوشه ندارند بنابراین از شناسایی جلوگیری می کند.
- افزودن نقطه قبل از پسوند فایل. از این رو، نام صفحه را به example. برای نامرئی شدن تغییر می دهند.
- Cloaking: تمایز بین خزنده های وب بر اساس user-agent. یعنی محتوای مشاهده شده توسط Googlebot با محتوای مشاهده شده توسط کاربر موزیلا متفاوت است.
- استفاده از cron jobs برای آسیب مجدد
نتایج
- وب سایت شما به دلیل نمایش تبلیغات اعتبار زیادی را از دست می دهد.
- ممکن است در لیست سیاه گوگل قرار بگیرید که بازیابی شهرت را دشوار می کند.
- کاربران به وب سایت شما اعتماد نمی کنند.
- به رتبه بندی وب سایت شما در موتورهای جستجو ضربه می زند و رتبه شما را کاهش می دهد.
- در حالیکه برای بدست آوردن کلیک سخت تلاش کرده اید، وب سایت شما شروع به دریافت کلیک برای سایر وب سایت ها می کند.
چگونه می توان Pharma Hack وردپرس را برطرف کرد
Pharma Hack وردپرس مخفی است، بنابراین جستجوی فایل های آلوده و حذف آنها تا حدودی یک کار طولانی و خسته کننده خواهد بود. برای برطرف نمودن هک می بایست موارد زیر انجام شود:
1. نسخه پشتیبان تهیه کنید
ایجاد یک نسخه پشتیبان کامل از وب سایت روشی است که بسیار توصیه می شود. اگر مشکلی در فرآیند پاکسازی رخ دهد، ممکن است مفید باشد. بنابراین، همیشه مطمئن شوید که یک پشتیبان تهیه کرده اید. پشتیبان گیری اساساً باید شامل فایل های اصلی، پایگاه داده، فایل های افزونه و قالب ها باشد.
2. وب سایت خود را برای یافتن بدافزار اسکن کنید
از ابزارهای اسکن بدافزار آنلاین مانند VirusTotal برای شناسایی بدافزار استفاده کنید. همچنین می توانید برای اسکن دقیق تر، اسکنر بدافزار Astra را امتحان کنید. با این کار در عرض چند دقیقه همه فایلها و کدهای مخرب وب سایت شما شناسایی می شود و به افزایش سرعت روند حذف بدافزار کمک می کند.
تصویر (3)
3. هر گونه فایل آلوده را حذف کنید
از طریق FTP به سرور میزبانی خود متصل شوید. همچنین می توانید از file manager استفاده کنید. سپس به پوشه wp-content/ مراجعه نموده و به دنبال هرگونه فایل هک شده در افزونه ها باشید. فایل های هک شده دارای کلماتی مانند class ، .cache ، .old. خواهند بود تا به عنوان فایل های افزونه استتار شوند. یک نقطه (.) در ابتدای نام فایل، آنها را مخفی می کند مگر اینکه گزینه show hidden files انتخاب شود. بهتر است این نمونه فایل ها را حذف کنید.
4. دایرکتوری temp را پاک کنید
مسیر /wp-content/temp/ می تواند در نتیجه آلوده شدن ظاهر شود. به مسیر /wp-content/temp/ مراجعه و محتویات آن را پاک کنید. هکرها از پوشه temp و فایل های tmp برای جلوگیری از هرگونه اختلال در هنگام نصب بدافزار استفاده می کنند.
5. فایل .htaccess را بررسی کنید
فایل .htaccess یک فایل کانفیگ سرور است و نحوه پردازش درخواست های سرور را مشخص می کند. هکرها از قدرت این فایل برای ایجاد backdoors (درب پشتی - به معنی دور زدن لایه های امنیتی) در وب سایت شما استفاده می کنند. به دنبال کد هایی مانند کد زیر باشید:
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR] #checks for Google, Yahoo, msn, aol and bing crawler
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^(.*)$ somehackfile.php?$1 [L] #redirects to a hack file
همچنین می توانید طبق مراحل زیر فایل .htaccess را بازنویسی کنید.
- وارد پیشخوان وردپرس خود شوید.
- روی گزینه "تنظیمات" کلیک نموده سپس "پیوندهای یکتا" را انتخاب کنید.
- در نهایت بر روی "ذخیره تغییرات" کلیک کنید.
تصویر (4)
6. حذف کدهای مخرب از پایگاه داده
توصیه می شود قبل از ایجاد هرگونه تغییر در پایگاه داده، یک نسخه پشتیبان تهیه کنید. اگر قبلاً این کار را نکرده اید، هم اکنون باید آن را انجام دهید زیرا این مرحله می تواند حساس باشد.
در این مرحله، می توانید افزونه حذف بدافزار حرفه ای را خریداری کنید یا پایگاه داده خود را بر اساس مراحل زیر شخصا پاکسازی کنید:
- به phpMyAdmin مراجعه کنید.
نام دقیق این بخش، بسته به نوع هاست متفاوت است، اما می توانید به دنبال گزینه های زیر باشید:
- phpMyAdmin
- Database Manager
این بخش در cPanel به صورت زیر است:
تصویر (5)
در دایرکت ادمین نیز به صورت زیر می باشد:
تصویر (6)
در کنترل پنل دایرکت ادمین می توانید با استفاده از نام کاربری و رمز اصلی هاست، وارد phpMyAdmin شوید.
- پایگاه داده خود را انتخاب کنید.
- روی جدول "wp_options" کلیک کنید.
- با استفاده از تب"Search"، ورودی های مخرب را جستجو کنید.
تصویر (7)
برخی از ورودی های مخرب که باید جستجو کنید عبارتند از:
- wp_check_hash
- class_generic_support
- widget_generic_support
- ftp_credentials
- Fwp
نکته (1): بسیار مراقب باشید که اطلاعات مهم را از جدول wp_options حذف نکنید زیرا ممکن است باعث خرابی وب سایت شما شده و دیتابیس اصطلاحا crash کند.
نکته (2): اگر از نظر فنی دانش زیادی ندارید، بهتر است برای حذف بدافزار با متخصصان مشورت کنید. ممکن است نخواهید وب سایت خود را با حذف فایل هایی که از آنها مطمئن نیستید، خراب کنید.
7. به دنبال کد مشکوک باشید و آن را حذف کنید
کدهای مشکوک اغلب یکی از دلایل اصلی هک شدن وب سایت های وردپرس هستند. کد نمونه احتمالاً چیزی شبیه مثال زیر است:
این نوع کد وب سایت شما را به یک دامنه تحت کنترل مهاجمان ریدایرکت می کند. بنابراین بهتر است که دامنه های نا آشنا را مورد بررسی قرار دهید. یکی از دلایل اصلی Pharma Hack وردپرس همین مورد است.
اغلب مهاجمان برای جلوگیری از شناسایی، کد خود را به صورت base64 مخفی می کنند. برای مثال، example.com ظاهری شبیه به "YXR0YWNrZXJkb21haW4uY29t" دارد که تشخیص آن را سخت می کند. به منظور جستجوی رمزنگاری base64 در فایل ها، دستور grep مفید خواهد بود:
find . -name "*.php" -exec grep "base64"'{}'\; -print &> b64-detections.txt
این قطعه کد اساساً فایل های .php مورد نظر شما را برای رمزنگاری base64 جستجو می کند. پس از آن نتیجه در پرونده ای با نام b64-detections.txt ذخیره می شود. در نهایت، می توانید از منابع آنلاین برای رمزگشایی این موارد استفاده کنید و ببینید در پشت صحنه چه می گذرد.
8. اسکن تغییرات در محتوا
برای اسکن تغییرات فایل می توانید از افزونه های آنلاین استفاده کنید. یک نمونه از چنین اسکنری Exploit Scanner است. این برنامه تمام فایلهای اصلی و فایلهای خارجی موجود در مخزن رسمی وردپرس را برای یافتن نام یا فایلهای مشکوک و غیرمعمول اسکن می کند. پس از یافتن فایل های هک شده، می توانید کد آلوده را حذف کرده یا فایل های افزونه را بازیابی کنید. پاکسازی کامل کدها بسیار مهم است زیرا هر کد مخرب باقی مانده می تواند وب سایت شما را مجددا آلوده کند.
نحوه جلوگیری از Pharma Hack وردپرس
- از مشخصات کاربری و رمزهای عبور قوی برای ورود به وب سایت و پایگاه داده خود استفاده کنید. هکرها می توانند به آسانی مشخصات کاربری ضعیف را مورد نفوذ قرار دهند سپس وب سایت شما را هک کنند.
- برای سایت وردپرسی خود فایروال را فعال کنید. این مورد به شما کمک می کند تا سایت خود را در برابر آلوده شدن به Pharma Hack ایمن کنید و از طیف گسترده ای از تهدیدات سایبری جلوگیری نمایید.
- برای جلوگیری از دسترسی های مشکوک، سطح دسترسی پوشه ها را محدود کنید.
- افزونه ها و قالب های مشکوک یا استفاده نشده را در وردپرس خود غیرفعال یا حذف کنید. اکثر افزونه ها و قالب های غیرفعال می توانند به نقطه آسیب پذیر آسان برای هکرها تبدیل شوند.
- اگر هسته اسکریپت، افزونه یا نسخه قالب شما قدیمی است، باید آنها را در اسرع وقت به روز کنید تا از آلوده شدن به Pharma Hack جلوگیری کند.
- دانستن تمام نقاط ضعف امنیتی و آسیب پذیر موجود در سایت وردپرسی خوب است. برای کشف حفره های امنیتی احتمالی و رفع آنها قبل از سو استفاده هکرها، شما باید به طور منظم تمهیدات امنیتی را برای وب سایت خود انجام دهید و در برابر هک هایی مانند Pharma Hack محافظت کنید.