دليل نهائي حول XMLRPC لـ WordPress (+ كيفية تعطيله)
نشرت: 2021-04-08يعد أمان موقع الويب أمرًا صعبًا لحلها بالطريقة الصحيحة . على وجه التحديد مع مشكلات الأمان المتعلقة بـ XML-RPC - كما يتم استغلالها بشكل شائع في الهجمات على مواقع WordPress. هناك الكثير من المعلومات المتوفرة على الإنترنت والتي تقدم جميع أنواع الحلول ، ولكن ما هي الحلول الصحيحة؟ تشرح هذه المقالة كيف ، والحلول المتاحة ، وما هو في الواقع أفضل حل. دعنا نتعمق!
يعد XMLRPC أقدم من WordPress نفسه. تم تقديم هذا النظام إلى WordPress لمحاربة معضلة الاتصال بالإنترنت البطيء من خلال مساعدة المستخدمين على كتابة منشورات جديدة دون اتصال بالإنترنت ثم تحميلها على الخادم. كانت القدرة على توصيل WordPress عن بُعد بالتطبيقات الأخرى ممكنة فقط باستخدام ملف xmlrpc.php.
حتى بعض المطورين ذوي الخبرة لا يفهمون تمامًا XMLRPC والتهديدات الأمنية المرتبطة به. من المحتمل جدًا أن يكون لدى الموقع / المواقع التي تديرها ملف XMLRPC نشطًا يحتاج إلى اهتمامك الفوري ولكن لا يمكنك تنفيذ خطة عمل فعالة إلا بعد معرفة كيفية تشغيل XMLRPC وما هي أفضل طريقة للتعامل معه بشكل آمن.
على الرغم من أن WordPress لديه الآن واجهة برمجة تطبيقات REST الخاصة به ، إلا أن ملف xmlrpc.php لا يزال موجودًا داخل النواة ويتم تمكينه افتراضيًا بتعريض موقع WordPress للعديد من الهجمات الإلكترونية. في هذه المقالة ، سنتعرف على كيفية استخدام هذا الملف ، ونقاط الضعف المرتبطة به ، وكيفية التعامل مع ذلك دون تعريض أمان موقعك للخطر.
جدول المحتويات
- ما هو ملف xmlrpc.php؟
- كيف يمكن أن يكون المتسللون الشرهون مع ملف xmlrpc.php؟
- هجوم القوة الوحشية
- هجوم DDoS
- هجوم المنفذ عبر المواقع (XSPA)
- طرق غير فعالة لمنع هجمات XMLRPC
- عن طريق تعطيل XMLRPC تمامًا
- لماذا يؤدي تثبيت البرنامج المساعد للأمان إلى الإضرار بموقعك بالفعل
- كيف تعالج المجالات المعجلة مشاكل XMLRPC لعملائها؟
- افكار اخيرة
ما هو ملف xmlrpc.php؟
في أبسط أشكاله ، تم إنشاء XML-RPC (استدعاء الإجراء البعيد) للاتصال عبر الأنظمة الأساسية. يستخدم هذا البروتوكول لإجراء استدعاءات الإجراءات باستخدام HTTP كوسيلة نقل و XML كبرنامج تشفير. يقوم العميل بإجراء هذه المكالمات عن طريق إرسال طلب HTTP إلى الخادم ويتلقى استجابة HTTP في المقابل. يستدعي XML-RPC وظائف عبر طلب HTTP ثم تقوم هذه الوظائف بتنفيذ بعض الإجراءات وإرسال استجابات مشفرة في المقابل.
دعنا نقارن هذا باستدعاء REST API لفهم المفهوم تمامًا.
إجراء | RPC | راحة |
اشتراك | POST / التسجيل | POST / المستخدمين |
اقرأ المستخدم | GET / readUser؟ userid = 123 | الحصول / الأشخاص / 1234 |
يستهلك REST معلمات URL لتحديد الموارد بينما يستخدم RPC معلمات الاستعلام لتوفيرها كوسائط دالة.
استخدم WordPress XMLRPC للسماح لمستخدميه بالتفاعل مع موقعهم عن بُعد. لا يزال يستخدمه لتشغيل تطبيق الهاتف المحمول الخاص به ودعم المكونات الإضافية مثل JetPack و WooCommerce وما إلى ذلك. استخدام ملف xmlrpc.php
له سلبياته ولكن تعطيله تمامًا هو الحل الوحيد القابل للتطبيق؟ للإجابة على ذلك ، نحتاج أولاً إلى النظر في نقاط الضعف المرتبطة بها وما هي الحلول المتاحة لتجنبها.
كيف يمكن أن يكون المتسللون الشرهون مع ملف xmlrpc.php؟
باستخدام XMLRPC ، يستفيد المتسللون من استدعاءات الإجراءات عن بُعد (RPC) واستدعاء الوظائف لجلب البيانات التي يريدونها. في غالبية مواقع WordPress ، يمكن تتبع ملف xmlrpc.php
بسهولة ، وفقط عن طريق إرسال بيانات XML عشوائية ، يتحكم المتسللون في الموقع لتشغيل التعليمات البرمجية التي أعدوها لتنفيذ نوع معين من الهجوم.
لفهم كيفية اختراق WordPress XMLRPC ، دعنا نلقي نظرة على الهجمات الإلكترونية الأكثر شيوعًا المرتبطة بها.
هجوم القوة الوحشية
في هجوم Bruteforce ، يحاول المتسلل تخمين اسم المستخدم وكلمة المرور الصحيحين عن طريق تشغيل محاولات تسجيل دخول عديدة. لسوء الحظ ، يستخدم عدد كبير من مواقع WordPress كلمات مرور إدارية ضعيفة أو لا تحتوي على أي طبقة أمان مضافة لإيقاف المهاجمين. يتم اختراق هذه المواقع بسهولة بهذا النوع من الهجوم.
يستخدم الآخرون كلمة مرور قوية ولديهم أيضًا آليات أمان مثل reCaptcha وحظر IP التلقائي الذي يكون فعالاً ضد هجمات القوة الغاشمة ولكن إذا قرر المتسلل استخدام XMLRPC ؛ إنها لا تحتاج حتى إلى الوصول إلى مسؤول WordPress.
أداة شائعة جدًا من Kali Linux ، يتم استخدام WPSCAN لتعداد جميع أسماء المستخدمين وبمجرد الانتهاء من ذلك ، يقوم المتسللون بفرض كلمة المرور باستخدام ملف xmlrpc.php
عن طريق إرسال طلب HTTP التالي إلى موقع الضحية.
POST /xmlrpc.php HTTP/1.1
User-Agent: Fiddler
Host: www.example.com
Content-Length: 164
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>
في المثال أعلاه ، يمكن للمتسلل إرسال آلاف الأشكال المختلفة حتى يستعيد كلمة المرور الصحيحة.
يتم إرجاع الرد التالي على الطلب أعلاه. تحتوي الاستجابة على رمز الخطأ ورسالة واضحة تفيد بأن اسم المستخدم وكلمة المرور اللذين تم تجربتهما غير صحيحين. إنه مؤشر واضح يخبر المتسلل بالمحاولة مرة أخرى حتى يتم مطابقة كلمة المرور الصحيحة.
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 26 May 2019 13:30:17 GMT
Content-Type: text/xml; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.21
Cache-Control: private, must-revalidate
Expires: Sun, 02 Jun 2019 13:30:17 GMT
Content-Length: 403
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>403</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Incorrect username or password.</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
عرضت الاستجابة رمز HTTP 200 والرسالة التي تفيد بأن اسم المستخدم وكلمة المرور المقدمين غير صحيحين. بالمرور عبر قناة XMLRPC ، لا داعي للقلق بشأن إعادة الكابتشا أو تقييد المكونات الإضافية لمحاولات تسجيل الدخول. يمكنها الاستمرار في تشغيل التباينات حتى يتم استرداد كلمة المرور الصحيحة.
ملاحظة: هجمات القوة الغاشمة كثيفة الاستخدام للموارد وتتسبب في حدوث مشكلات في الأداء أيضًا. تعمل عملية التجربة والخطأ في حلقة مستمرة لفترة زمنية أطول يمكن أن تبقي خادمك مشغولاً لخدمة الزوار الفعليين. يتسبب استهلاك هذا المورد غير الضروري في أن تستهلك الخوادم مزيدًا من الطاقة.
هجوم DDoS
يُعد رفض الخدمة الموزع (DDoS) أحد أكثر الهجمات الإلكترونية فتكًا التي يمكن أن تشل الخادم عن طريق ضربه بمئات وآلاف الطلبات المتزامنة. يستخدم المتسللون ميزة pingback في WordPress مع ملف xmlrpc.php لتنفيذ مثل هذه الهجمات.
من الناحية المثالية ، يستهدف المخترق نقطة النهاية أو صفحة يمكن ضربها عدة مرات وتستغرق وقتًا أطول للرد. وبهذه الطريقة يمكن أن يكون لضربة واحدة أقصى تأثير على موارد الخادم وفي حالتنا ، يخدم XMLRPC المتسلل جيدًا في كشف نقاط النهاية هذه.
يتم استخدام العديد من مواقع WordPress التي تم اختراقها بالفعل لتنفيذ طريقة pingback.ping لاستهداف ضحية واحدة. تطلب HTTP GET و POST الساحقة ازدحام حركة المرور العادية وتعطل الخادم في النهاية.
أولاً ، يتحقق المخترق مما إذا كان ملف xmlrpc.php ممكّنًا أم لا عن طريق إرسال الطلب التالي.
POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 175
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>demo.sayHello</methodName>
<params>
<param>
<value>admin</value>
</param>
</params>
</methodCall>
بمجرد التأكد من تمكين XMLRPC على موقع الويب الهدف ، يبدأ المهاجم في ضربه باستخدام شبكة المواقع المستغلة لإرسال طلبات pingback متعددة إلى موقع الضحية. يمكن أتمتة هذا من عدة مضيفين ويمكن استخدامه للتسبب في هجوم DDoS جماعي على موقع الضحية.
POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 293
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string>http://173.244.58.36/</string></value>
</param>
<param>
<value><string>https://example.com/blog/how-to-make-a-salad</string></value>
</param>
</params>
</methodCall>
هجوم المنفذ عبر المواقع (XSPA)
تعد هجمات المنافذ عبر المواقع (XSPA) شائعة جدًا حيث يقوم المتسلل بحقن البرنامج النصي الضار لاسترداد معلومات حول منافذ TCP وعناوين IP. في حالة WordPress ، يتم استخدام XMLRPC جنبًا إلى جنب مع آلية pingback لتجاوز أي إخفاء لعنوان IP مثل WAF الأساسي مثل Cloudflare.
في هجوم XSPA ، يستخدم المخترق طريقة pingback.ping لإجراء اختبار pingback على منشور على موقع ويب مستهدف والذي بدوره يرسل عنوان IP ردًا على ذلك. يستخدم Hacker متشممًا لإنشاء نقطة نهاية لإرسال pingback وعنوان URL مباشر لمنشور مدونة.
يرسل المتسللون الطلب التالي من خادمها.
<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>
إذا كانت الاستجابة تحتوي على رمز خطأ وقيمة أكبر من 0 ، فهذا يعني أن المنفذ مفتوح لك لبدء إرسال حزم HTTP مباشرة.
طرق غير فعالة لمنع هجمات XMLRPC
لقد أثبتنا حتى الآن في المقالة أن ملف xmlrpc.php عرضة لبعض الهجمات الإلكترونية الخطيرة مثل DDoS و Bruteforce و Cross-site Port Attack ، لذلك من الضروري التعامل معه بشكل صحيح لمنع هذه الهجمات .
عن طريق حذف XMLRPC بالكامل
يمكنك ببساطة حذف ملف XMLRPC الذي سيجعل خادمك يبدأ في إلقاء أخطاء 404 على أي شخص يحاول الوصول إليه. الجانب السلبي لهذا الحل هو أنه سيتم إعادة إنشاء الملف في كل مرة تقوم فيها بتحديث WordPress.
عن طريق تعطيل XMLRPC تمامًا
الخيار الآخر الأكثر قابلية للتطبيق هو تعطيل ملف xmlrpc.php
. يمكنك القيام بذلك ببساطة عن طريق إضافة كتلة التعليمات البرمجية داخل ملف .htaccess
الخاص بك. تأكد من القيام بذلك قبل قواعد .htaccess
التي لا تتغير أبدًا والتي أضافها WordPress.
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
سيؤدي هذا إلى تعطيل ملف xmlrpc.php
لكل تطبيق أو خدمة تستخدمه. يمكنك إضافة عنوان IP معين إلى القائمة البيضاء في حال كنت لا تزال ترغب في الوصول إلى موقع WordPress الخاص بك عبر XMLRPC. لذلك ، تحتاج إلى إضافة الأمر التالي:
<Files xmlrpc.php>
<RequireAny>
Require ip 1.1.1.2
Require ip 2001:db8::/32
</RequireAny>
</Files>
الايجابيات
- يزيل مخاطر إساءة استخدام XMLRPC في الهجمات الإلكترونية.
- فوائد الأداء والتوفير على المدى الطويل على موارد الخادم.
سلبيات
- يعد تعطيل XMLRPC بمثابة تعطيل الوصول عن بُعد للتطبيقات التي تستخدم هذا الإصدار من الوصول عن بُعد. هذا يعني أن Jetpack أو تطبيق WP mobile أو أي حل آخر يتصل بموقع WordPress الخاص بك عبر XMLRPC لا يمكنه الاتصال بموقعك بعد الآن.
- قد لا يعمل الرمز القديم للتطبيقات المخصصة أيضًا.
لماذا يؤدي تثبيت البرنامج المساعد للأمان إلى الإضرار بموقعك بالفعل
غالبًا ما يعتمد مستخدمو WordPress على المكونات الإضافية لأي ميزة أو وظيفة مطلوبة دون التفكير كثيرًا في تأثيرها على أداء الموقع. هناك العديد من المكونات الإضافية للأمان في WordPress والتي تعد بتأمين موقع الويب الخاص بك من مشكلات الأمان المتعلقة بـ XMLRPC ولكنها في الواقع تضر موقعك أكثر.
فيما يلي بعض الأسباب التي تجعل تأمين موقعك باستخدام مكون إضافي ليس هو الخيار الأفضل.
- تعد المكونات الإضافية للأمان فعالة فقط على مستوى التطبيق ولا تحمي خادمك من التعرض للضرب.
- يضيفون رمزًا غير ضروري إلى موقعك يقلل من أدائه ويزيد الوقت إلى البايت الأول (TTFB).
- تضر بعض هذه المكونات الإضافية أكثر من نفعها ويستخدمها المتسللون لإنشاء أبواب خلفية لموقع الويب الخاص بك.
- تتطلب هذه المكونات الإضافية إدارة متكررة تضيف المزيد من عبء العمل.
من التقييم أعلاه ، لا يقدم أي من الخيارات حلاً مثاليًا للتعامل مع مشكلة أمان XMLRPC. هذا يقودنا إلى المجالات المتسارعة. خدمة تم تصميمها لحل المشكلات المعقدة المتعلقة بالأمان وغير ذلك الكثير. دعنا نلقي نظرة على كيف يمكن للمجالات السريعة أن تحل مشكلة XMLRPC بشكل فعال.
كيف تعالج المجالات المعجلة مشاكل XMLRPC لعملائها؟
تعمل المجالات المعجلة على حل مشكلات الأداء والأمان وقابلية التوسع المعقدة بأكثر الطرق فعالية. تقدم المجالات المعجلة أمانًا مُدارًا على مستوى المؤسسة يحظر أي نوع من الهجمات الإلكترونية بما في ذلك تلك المرتبطة بـ XMLRPC.
يقع محرك الأمان الذكي لـ Accelerated Domains أمام الخادم ويقوم بتصفية ما يقرب من 40٪ من حركة مرور HTTP بالكامل. يكتشف حتى أكثر الهجمات الإلكترونية تعقيدًا في وقت مبكر من الجدول الزمني من خلال قدراته الاستدلالية الذكية المدعومة بالتغذية المستمرة للبيانات والمعرفة العملية لـ Servebolt وتحليل حركة المرور. تقوم Accelerated Domains بعملها السحري دون المساس بأداء موقعك بأي شكل من الأشكال. في الواقع ، إنه يسرع ذلك.
يحمي محرك الأمان الاستباقي Accelerated Domains تلقائيًا موقع الويب الخاص بك من هجمات DDoS. مع ما يقرب من 60 تيرابايت من سعة الشبكة ، فهي مجهزة جيدًا لتحمل حتى بعض أكبر هجمات DDoS على الإنترنت. وبالمثل ، فإنه يوفر آلية دفاع فعالة ضد هجمات Bruteforce من خلال ميزة تحديد المعدل التلقائي حيث يتم تحديد عدد الطلبات التي تم إنشاؤها من مصدر واحد وتحديدها لمنع الأنشطة الضارة.
الايجابيات
- تعمل المجالات المتسارعة على تخفيف غالبية الثغرات الأمنية المرتبطة بـ XMLRPC ، وبالتالي لا داعي لتعطيلها.
- يسمح للمستخدم بالاستمرار في استخدام المكونات الإضافية مثل Jetpack وتطبيق WooCommerce والأدوات الأخرى التي تعتمد على ملف xmlrpc.php.
- تكامل خالٍ من المتاعب على أي مجال ، فلا داعي لتعديل ملف
.htaccess
. - لا حاجة لتثبيت ملحقات إضافية.
سلبيات
- لا يوجد لديه.
افكار اخيرة
تزداد الهجمات الإلكترونية تطورًا يومًا بعد يوم ، وبصفتك مشرف موقع وصاحب عمل ، فمن الضروري أن تفهمها وتعرف الأدوات اللازمة لمواجهتها. يتم تجنب غالبية الهجمات من خلال نهج استباقي مثل المراقبة المستمرة وتحديث البرنامج أو عن طريق إضافة أدوات مثل Accelerated Domains التي تقوم بكل ذلك على الطيار التلقائي. بمجرد التمكين ، تقوم المجالات المسرّعة بتصفية حركة المرور بذكاء وتتخذ الإجراءات اللازمة عند الحاجة للحفاظ على خادمك الأصلي وموقع الويب الخاص بك محميين من الهجمات الإلكترونية.