چطور جلوی حمله به XML-RPC وردپرس را بگیریم؟
یکی از روشهای مهم و اساسی حمله به سایتهای وردپرس حمله به XML-RPC سایت است. پروتکل XML-RPC در وردپرس همان حکم API یا رابط برنامه نویسی وردپرس را دارد که برنامه نویسان میتوانند وردپرس را به دیگر سیستمها متصل نمایند. البته کاربران وردپرس هم زمانی که XML-RPC روی وردپرس فعال است، میتوانند از ابزارهایی مثل اپلیکیشن موبایلی وردپرس روی گوشیِ هوشمند خود برای مدیریت سایت و ارسال نوشته هم استفاده کنند. اما از همین قابلیت، هکرها برای هک کردن سایت هم میتوانند استفاده کنند.
به این صورت که مدام درخواستهای بسیار سنگین در عرض چند ثانیه یا دقیقه به سایت ارسال میکنند که باعث خارج شدن سایت از سرویسدهی میگردد. این امر مخصوصاً اگر سایت شما روی هاست اشتراکی باشد، خیلی شدتش زیاد خواهد شد! پس باید به دنبال راهحلی بود تا جلوی حمله به XML-RPC وردپرس را بگیریم. این کار البته زیاد سخت نیست و در ادامه راهکار انجام این کار به شما آموزش داده خواهد شد.
نشانه های حمله XML-RPC وردپرس چیست؟
اول از همه باید بدانیم که نشانههای این نوع حمله چیست؛ یعنی ما چه چیزی را باید مشاهده کنیم که متوجه شویم سایت زیر حملهٔ XML-RPC است؟ از روی موارد زیر میتوان این نشانهها را دریافت:
- به صورت تصادفی برخی از درخواستهای صفحات سایت در مرورگر با خطای «Error establishing database connection» روی وردپرس مواجه میشود. حالا چه بخش پیشخوان وردپرس و چه بخشی که بازدید کنندگان میبینند.
- خطای «Out of memory» در کنسول وب سرور
- خطای «Cannot open the file no such file/directory» موجود در اسناد گزارش وب سرور (access log)
- خطای «POST /xmlrpc.php HTTP/1.0» موجود در اسناد گزارش وب سرور (access log)
نشانهٔ اول که ممکن است کاملاً برای شما مشهود باشد. البته به غیر از رخ دادن چنین اتفاقی، کلاً متوجه کاهش سرعت سایت در مواقعی که حمله به XML-RPC است خواهید شد.
نشانهٔ دوم را معمولاً مدیر فنی سرور میبیند که اگر سایت شما روی سرور مجازی یا اختصاصی باشد و حافظه RAM کمی داشته باشید، میتوانید این خطا را ببینید. البته در اسناد گزارش موجود روی فضای میزبانی هاست اشتراکی هم ممکن است این خطا درج گردد.
خطای نوع سوم و چهارم مربوط به گزارشهایی از دسترسیهای مختلف است که وب سرور یا همان آپاچی یا NGINX یا حتی لایت اسپید جمعآوری میکند و درون اسنادی ذخیره مینماید. برای دسترسی به این اسناد گزارش، روی هاست اشتراکی، باید به مسیر /home/username/logs بروید و اسناد گزارش دسترسیها را خواهید دید. سندی که درون نام آن access.log داشته باشد، همانی است که مد نظر ماست. البته ممکن است مدیران فنی سرورهای اشتراکی، جلوی نمایش و دسترسی یک چنین سندی توسط شما را گرفته باشند. یا این سند مثلا روی هاستهای سی پنل در مسیر access-logs قرار گرفته باشند. به هر حال وب سرور سندی برای جمعآوری این نوع خطاها دارد که باید درون این سندها با دستور grep لینوکس جستجو کرده و ببینید که آیا یک چنین خطایی وجود دارد یا خیر.
مثلاً دستور زیر کاربردش روی سرور CentOS است:
grep xmlrpc /var/logs/httpd/access.log
یا این دستور روی اوبونتو:
grep xmlrpc /var/logs/apache2/access.log
برای سرورهای cPanel :
grep xmlrpc /home/username/logs/access.log
برای nginx :
grep xmlrpc /var/logs/nginx/access.log
اگر وردپرس تحت حمله باشد، یک چنین خطی باید درون یکی از این اسناد وجود داشته باشد:
“POST /xmlrpc.php HTTP/1.0” ۲۰۰ ۶۷۴ “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)”
مسدود کردن حمله به XML-RPC وردپرس
حالا به روشها و در سطوح مختلفی میتوانی جلوی یک چنین حملهای به وردپرس را بگیریم.
بستن دسترسی xmlrpc با سند .htaccess
به صورت دستی جلوی دسترسی به xmlrpc وردپرس را با سند .htaccess بگیریم. برای این منظور مقالهٔ آموزشی غیر فعال کردن XML-RPC وردپرس با htaccess را مطالعه نمایید که کامل توضیح داده شده.
امنیت وردپرس
بدون دیدگاه
امن کردن وردپرس، تنظیمات htaccess وردپرس، جلوگیری از حملات brute force