ما هو RCE وكيف يحدث تنفيذ التعليمات عن بُعد؟

الكاتب: تاريخ النشر

باختصار: يشير RCE، وهو اختصار لـ Remote Code Execution، إلى تنفيذ تعليمات برمجية عن بُعد على حاسوب أو خادم. وفي سياق الهجمات، يستغل المتسلل خطأً ليجعل الجهاز ينفذ تعليماته دون موافقة مالكه. وهذا تهديد خطير، لكن حجم الضرر يعتمد، من بين عوامل أخرى، على صلاحيات البرنامج المستهدف؛ فهجوم RCE لا يعني دائمًا السيطرة الفورية على النظام بأكمله.

ماذا يعني تنفيذ التعليمات البرمجية عن بُعد عمليًا؟

الشيفرة البرمجية هي تعليمات ينفذها الحاسوب. وعادةً ما تشغّلها عن قصد، مثلما تفعل عند فتح برنامج. أما في هجوم RCE، فتأتي التعليمات من المهاجم، وينفذها التطبيق المصاب بالثغرة على نحو يخالف الغرض الذي صُمم من أجله.

يمكن تشبيه ذلك بشباك لاستلام الاستمارات. من المفترض أن يقرأ الموظف البيانات المقدَّمة، لكنه يبدأ بدلًا من ذلك بتنفيذ الأوامر المكتوبة على الاستمارة. وتحدث مشكلة مشابهة حين يتعامل البرنامج مع محتوى وارد من الخارج بوصفه تعليمات، لا مجرد بيانات.

يُستخدم تعبير «ثغرة RCE» للإشارة إلى خلل يتيح هذا السلوك. لكن RCE نفسه يصف إمكانية تنفيذ التعليمات البرمجية أو النتيجة المترتبة على ذلك، ولا يشير إلى خلل واحد بعينه. فقد تؤدي أخطاء مختلفة كثيرة إلى النتيجة نفسها.

وتعني عبارة «عن بُعد» أن المهاجم لا يحتاج إلى الجلوس أمام الجهاز. فقد يصل الهجوم عبر الإنترنت أو الشبكة المحلية أو ملف مُعدّ خصيصًا. وليس من الممكن استغلال كل ثغرة دون تسجيل الدخول ودون تدخل المستخدم؛ فذلك يعتمد على شروط استغلالها.

كيف يمكن أن يحدث هجوم RCE؟

قد ينتج RCE عن معالجة غير صحيحة للبيانات، أو التعامل غير الآمن مع الملفات، أو أخطاء في آليات إدارة الذاكرة. وقد تكون الثغرة في التطبيق نفسه، أو في مكتبة يستخدمها، أي مكوّن برمجي جاهز.

تخيّل متجرًا إلكترونيًا يرفع فيه العملاء صورًا مع طلباتهم، وينشئ الخادم صورًا مصغّرة لها تلقائيًا. إذا كانت أداة معالجة الصور تحتوي على ثغرة تتيح ذلك، فقد يؤدي ملف مُعدّ خصيصًا إلى تنفيذ تعليمات المهاجم بدلًا من مجرد تغيير أبعاد الصورة.

في هذا السيناريو، لا يحتاج صاحب المتجر إلى فتح أي شيء على حاسوبه المحمول. فالخادم الذي يعالج الملف هو المستهدف بالهجوم. ومجرد اقتصار نموذج الرفع على قبول الصور لا يضمن الأمان؛ إذ إن المحتوى الفعلي للملف وطريقة معالجته مهمان أيضًا.

ومن الطرق الأخرى حقن الأوامر، أي تمرير بيانات يضمّها التطبيق بالخطأ إلى تعليمة تُشغَّل في النظام. وهذه إحدى الآليات التي قد تؤدي إلى RCE، وليست مرادفًا لجميع الثغرات من هذا النوع.

ماذا يستطيع المهاجم فعله بعد استغلال RCE؟

تعمل شيفرة المهاجم عادةً بصلاحيات العملية المستهدفة، أي البرنامج قيد التشغيل. فإذا كان التطبيق يستطيع قراءة ملفات معينة أو الاتصال بقاعدة بيانات، فقد يحصل المتسلل على قدرات مماثلة.

تشمل العواقب المحتملة:

لا يعني RCE تلقائيًا الحصول على صلاحيات مسؤول النظام. فقد يساعد عزل التطبيق وتقييد صلاحياته في تقليل الأضرار. لكن المهاجم قد يحاول استغلال أخطاء إضافية للحصول على وصول أوسع.

لذلك تُؤخذ ثغرات RCE على محمل بالغ الجدية. وتستدعي الحالة تحركًا عاجلًا بشكل خاص عندما تكون الخدمة المصابة بالثغرة متاحة عبر الإنترنت، ولا يتطلب استغلال الخلل مصادقة. ويجب أن يستند التقييم الدقيق إلى الشروط الموضحة في بيان الجهة المنتجة، لا إلى مجرد ورود الاختصار RCE.

كيف تحدّ من المخاطر وتتحقق من تحذير بشأن RCE؟

الأساس هو تحديث النظام والتطبيقات والإضافات والمكتبات. فتحديث مكوّن واحد لا يزيل تلقائيًا الثغرات الموجودة في المكوّنات الأخرى. وينبغي لمالك الموقع أيضًا أن يعرف أي المكوّنات يتولى تحديثها بنفسه، وأيها تقع مسؤولية تحديثه على مزوّد الاستضافة.

يساعد تقييد صلاحيات التطبيق على الحد من نطاق الهجوم المحتمل. فلا ينبغي للبرنامج الذي يعالج الصور المرفوعة أن يتمكن من الوصول إلى جميع بيانات المتجر دون حاجة. وبالمثل، يمكن قصر الوصول إلى لوحة الإدارة على آلية وصول خاضعة للضبط، إذا لم تكن هناك حاجة لإتاحتها للعامة.

عند صدور تحذير بشأن RCE في منتج تستخدمه:

  1. راجع البيان الرسمي للجهة المنتجة لمعرفة الإصدارات والإعدادات التي تتأثر بالمشكلة.
  2. حدّد ما إذا كنت تستخدم المكوّن المصاب بالثغرة، وما إذا كان في متناول مهاجم محتمل.
  3. ثبّت التصحيح أو طبّق الإجراء الوقائي المؤقت الذي توصي به الجهة المنتجة. وإذا لم يتوفر تصحيح، ففكّر في تعطيل الوظيفة المعرّضة للخطر.
  4. إذا كان وقوع هجوم ممكنًا، فتحقّق من وجود آثار لنشاط غير مصرّح به. فالتحديث وحده لا يزيل آثار اختراق سابق.

تساعد النسخ الاحتياطية على استعادة البيانات، لكنها لا تمنع سرقتها. كذلك، لا يغني جدار الحماية أو برنامج مكافحة الفيروسات عن معالجة الثغرة.

إذا كنت تدير موقعًا ولا تعرف إصدارات مكوّناته، فابدأ بحصرها وتحديد المسؤول عن تحديث كل منها. فهذا يتيح لك تحويل تحذير عام بشأن RCE إلى قرار عملي: ما الذي يجب فحصه أو تحديثه أو تعطيله مؤقتًا.

اقرأ أيضًا

تعرّف على كيفية معالجة PHP-FPM لطلبات PHP، والفرق بينه وبين خادم الويب، وكيفية ضبط عملياته وفق حركة الزيارات وموارد الاستضافة.
تعرّف إلى BIND، برنامج خادم DNS مفتوح المصدر، وأدواره في خدمة النطاقات، ومتطلبات تأمينه، ومتى تختار تشغيله بنفسك أو خدمة مُدارة.
تعرّف إلى سجل REGON ورقم التعريف فيه في بولندا، والفرق بينه وبين NIP وKRS، وكيفية التحقق من بيانات المنشآت وحدود ما يثبته السجل.