محافظت از وردپرس در برابر حملات XML-RPC

محافظت از وردپرس در برابر حملات XML-RPC محافظت از وردپرس در برابر حملات XML-RPC

امنیت سایت یکی از مهم‌ترین موضوعاتی است که به راحتی نمی‌­توان از کنار آن گذشت و همواره یکی از دغدغه­‌های مهم مدیران سایت‌­ها است. یکی از مشکلات امنیتی مربوط به حملات XML-RPC در وردپرس می­‌باشد. این پروتکل به تنهایی مشکلی ایجاد نمی‌­کند اما هکرها می‌­توانند با استفاده از این پروتکل حملات بی‌رحمانه‌ای به سایت شما وارد و موجب از دسترس خارج شدن آن شوند.

اما جای هیچ نگرانی نیست‌؛ با ما تا آخر این مقاله همراه باشید تا با چند اقدام ساده از حمله­­‌ی هکرها پیشگیری و سایت خود را ایمن کنید.

محافظت از وردپرس در برابر حملات XML-RPC

 آنچه در این مقاله به اختصار خواهید خواند :

  • XML-RPC چیست؟
  • چرا XML-RPC ساخته شد؟
  • چرا باید XML-RPC را غیرفعال کنیم؟
  • نقاط ضعف XML-RPC
  • نحوه غیر فعال کردن xml-rpc
  • تست غیرفعال بودن xml-rpc

XML-RPC چیست؟

XML-RPC مخفف عبارت  XML-Remote Procedure Call به معنای فراخوانی دستورها از راه دور می‌­باشد که با xml و با استفاده از مکانیسم انتقالی IHTTP اطلاعات را منتقل می‌کند. این ویژگی اوایل به دلایل امنیتی غیر‌فعال بود؛ اما از نسخه 3.5 توسط تیم توسعه دهنده وردپرس بعد از قابل اطمینان دانستن این پروتکل امکان فعال کردن و یا غیرفعال کردن xml-rpc را از منوی پیشخوان وردپرس برداشته شد و اینک در نسخه‌های جدید وردپرس بطور پیشفرض فعال است.

XML-RPC-محافظت از وردپرس در برابر حملات XML-RPC
XML-RPC در وردپرس

این پروتکل امکان مدیریت سایت (ایجاد نوشته، ارسال پست، مدیریت تنظیمات سایت و…) از راه دور توسط Trackbacks و Pingbacks از سایر سایت‌ها و بعضی از توابع مربوط با پلاگین Jetpack با گوشی موبایل و تبلت فراهم می­‌کند.یا به عبارتی دیگر xml-rpc  مکانیزمی است که وردپرس با استفاده از آن با سیستم‌های دیگر و وبسایت­‌های دیگر ارتباط برقرار می­‌کند.

چرا XML-RPC ساخته شد؟

XML-RPC نخستین بار توسط دیو وینر از شرکت userland به همراه مایکروسافت در سال ۱۹۹۸ تولید شد.

اجرای XML-RPC به روزهای اولیه وردپرس برمی­گردد، در گذشته‌ه­ای نه چندان دور که وبلاگ نویسی رواج داشت و سرعت اینترنت بسیار کند بود، روند نوشتن و انتشار پست در وب بسیار زمان­بر بود به همین خاطر به جای نوشتن در مرورگر، افراد مطالب خود را به صورت آفلاین می­‌نوشتند، سپس محتوای خود را بر روی وب کپی می­‌کردند؛ اما این روش نیز بسیار دشوار بود.

در نتیجه بلاگر، برنامه API یا application programming interface را ایجاد کرد که به توسعه دهندگان اجازه دسترسی به وبلاگ‌های بلاگر را می­‌داد. وارد شدن به وبلاگ به صورت آفلاین به کاربران اجازه می‌­داد تا به صورت آفلاین مطالب خود را تایپ کرده و سپس از طریق XML-RPC به بلاگر متصل شوند.

چرا باید XML-RPC را غیرفعال کنیم؟

XML-RPC علاوه برقابلیت‌های مفید، نقطه ضعف‌هایی نیز دارد، در نسخه‌های جدید وردپرس باگ­‌های امنیتی تا حدود زیادی رفع شده­‌اند اما هکرها می­‌توانند درخواست‌های بسیاری به این فایل از متد post ارسال کنند که این کار منجر به بالا رفتن لود سرور و خوابیدن سایت شما شود، یعنی این فایل به نوعی برای حملات DDOS استفاده می‌­شود. بنابراین اگر از امکان ارسال از راه دور مثلا نرم افزار Windows  Live Writer یا اپلیکیشن‌های وردپرس استفاده نمی‌کنید اصلا نیازی به فعال بودن این امکان در وردپرس ندارید، هرچند می­‌توانید با استفاده از رمز عبورهای قوی و افزونه‌های امنیتی، وردپرس خود را محافظت کنید اما بهترین حالت غیرفعال کردن این ویژگی است.

شاید با خودتان بپرسید که حملات DDOS چیست؟

ddos مخفف عبارت (Distributed Denial Of Service) به معنای حملات بسیار مخرب است که هدف آن اختلال، کند کردن و تخریب سرور می­‌باشد، به این صورت که هکر­ها مقدار زیادی ترافیک جعلی را به سرور قربانی سرازیر می­‌کنند و باعث استفاده بیش از حد از پردازنده، پایگاه داده، پهنای باند، حافظه و… می­‌شود و در نهایت موجب از کار افتادن وبسایت می­‌شوند.

ddos attack-حملات XML-RPC در وردپرس
DDOS چیست؟

نقاط ضعف XML-RPC

  • حملات Brute force

در این روش هکرها سعی می‌­کنند با استفاده از نام کاربری و رمزهای عبور مختلف از طریق xmlrpc.php وارد سایت شوند. روشی از طریق xmlrpc.php  وجود دارد  که به هکرها اجازه می‌دهد تا از یک خط دستور برای حدس زدن صدها پسورد استفاده و ابزارهای امنیتی سرور را مسدود کند.

  • حملات DDoS از طریق pingback
  کلید وردپرس API چیست ؟

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

غیر‌‌فعال کردن xml-rpc وردپرس

disable xml-rpc-محافظت از وردپرس در برابر حملات XML-RPC
غیر‌فعال کردن xml-rpc وردپرس

دو روش برای غیر‌فعال کردن xml-rpc وردپرس برای محافظت از وردپرس در برابر حملات XML-RPC وجود دارد که هرکدام را به صورت جدا آموزش خواهیم داد.

1. استفاده از افزونه

اولین روش برای محافظت از وردپرس در برابر حملات XML-RPC می­توان به نصب افزونه­‌ی Disable XML-RPC اشاره کرد.با نصب این پلاگین از مخزن وردپرس قادر به غیرفعال کردن این API خواهید بود.

افزونه­‌ی Disable XML-RPC
افزونه­‌ی Disable XML-RPC

پس از نصب و فعال کردن، افزونه به طور خودکار XML-RPC را خاموش یا غیرفعال می‌­کند؛ اما باید توجه داشته باشید که بعضی از افزونه‌های دیگر ممکن است از بخش هایی از XML-RPC استفاده کنند و غیرفعال کردن کامل آن امکان بروز مشکل در سایت شما را دارد.

دانلود افزونه­‌ی Disable XML-RPC
دانلود افزونه‌ی Disable XML-RPC صفحه افزونه

اگر نیاز دارید برخی از عناصر خاص از XML-RPC را غیرفعال کنید و از حملات XML-RPC در وردپرس جلوگیری کنید، می‌­توانید از افزونه‌ی زیر استفاده کنید:

افزونه Stop XML-RPC Attack

این افزونه تمام حملات XML-RPC را متوقف می‌کند، اما به افزونه‌هایی مانند Jetpack و سایر ابزارهای خودکار اجازه دسترسی به پرونده xmlrpc.php را می‌دهد.

افزونه Stop XML-RPC Attack
افزونه Stop XML-RPC Attack
دانلود افزونه­‌ی Disable XML-RPC
دانلود افزونه stop XML-RPC Attacks صفحه افزونه

2. استفاده از کدنویسی در فایل function قالب

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

add_filter('xmlrpc_enabled', '__return_false');

3. استفاده از کدنویسی در فایل htaccess هاست

در سومین روش که بهترین و کارآمدترین روش است، دسترسی به پروتکل xml-rpc از سایت غیرفعال می‌­شود و در نهایت از حملات XML-RPC در وردپرس جلوگیری خواهد شد.

با استفاده از این روش اگر کسی به این پروتکل نیز دسترسی پیدا کند باز هم امکان استفاده از آن را نخواهد داشت. یکی از نکات مثبت این روش این است که قادر خواهید بود دسترسی آی پی یک دستگاه خاص را فعال بگذارید و دسترسی دیگر افراد بیگانه را مسدود کنید. برای این کار کافی است کد زیر را به انتهای فایل htaccess وردپرس خود اضافه کنید:

<FilesMatch “^(xmlrpc\.php)”>
    Order Deny,Allow
    Deny from all
    Allow from 111.111.111.111
</FilesMatch>

دقت داشته باشید بجای آی پی ۱۱۱.۱۱۱. ۱۱۱.۱۱۱ باید آی پی یا آی پی‌هایی که دسترسی مجاز دارند را وارد کنید و اگر به کلی از امکان xml-rpc استفاده نمی‌­کنید بهتر است به طور کامل خط مربوط به Allow را حذف کنید.

تست غیرفعال بودن xml-rpc

برای اینکه از غیرفعال بودن این ویژگی مطمئن شوید آدرس سایت خود، به طور مثال آدرس hamyarwp.com/xmlrpc.php را در مرورگر جستجو کرده در صورتی که خطای ۴۰۳ یا ۴۰۴ دریافت کردید به این معنا است که xmlrpc.php روی سایت شما غیرفعال شده است.

در صورتیکه قصد غیرفعال سازی XML-RPC را ندارید بهترین کار استفاده از یک افزونه امنیتی چون Wordfense می‌باشد.

محافظت از وردپرس در برابر حملات XML-RPC

وردپرس یکی از بهترین سیستم‌های مدیریت محتوا در جهان است و به دلیل محبوبیتی که بین کاربران دارد همواره مورد هک و نفوذ قرار می‌­گیرد. اما با گذشت زمان، می­‌توان انتظار داشت که ویژگی XML-RPC در API وردپرس جدید ادغام شود و قابلیت‌های دسترسی از راه دور و مانند آن را حفظ کند، بدون آن که امنیت سایت را به خطر بیندازد. امیدواریم با کمک این آموزش گام بزرگی در جهت محافظت از وردپرس در برابر حملات XML-RPC بردارید. در صورتی که در رابطه با این آموزش سوال یا مشکلی داشتید در بخش دیدگاه‌ها با ما در میان بگذارید.

آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.