تنفيذ التعليمات البرمجية العشوائية
في مجال أمن الحاسوب ، يُعرَّف تنفيذ التعليمات البرمجية العشوائي ( ACE ) بأنه قدرة المهاجم على تشغيل أي أوامر أو تعليمات برمجية يختارها على جهاز مستهدف أو في عملية مستهدفة . [ 1 ] وتُعرف ثغرة تنفيذ التعليمات البرمجية العشوائي بأنها خلل أمني في البرمجيات أو الأجهزة يسمح بتنفيذ تعليمات برمجية عشوائية. ويُطلق على البرنامج المصمم لاستغلال هذه الثغرة اسم برنامج استغلال تنفيذ التعليمات البرمجية العشوائي . أما القدرة على تشغيل تنفيذ التعليمات البرمجية العشوائي عبر الشبكة (وخاصةً عبر شبكة واسعة النطاق مثل الإنترنت) فتُعرف غالبًا باسم تنفيذ التعليمات البرمجية عن بُعد ( RCE أو RCX ).
يشير تنفيذ التعليمات البرمجية التعسفي إلى أنه إذا أرسل شخص ما مجموعة بيانات مصممة خصيصًا إلى جهاز كمبيوتر، فبإمكانه جعله يفعل ما يشاء. ورغم أن هذا الضعف تحديدًا قد لا يسبب مشاكل حقيقية في الواقع، فقد ناقش الباحثون ما إذا كان يشير إلى ميل طبيعي لدى أجهزة الكمبيوتر لوجود ثغرات تسمح بتنفيذ التعليمات البرمجية غير المصرح بها. [ 2 ]
أنواع الثغرات الأمنية
توجد عدة أنواع من الثغرات الأمنية التي قد تُمكّن المهاجم من تنفيذ أوامر أو تعليمات برمجية عشوائية. على سبيل المثال:
- ثغرات أمان الذاكرة مثل تجاوزات المخزن المؤقت أو عمليات القراءة الزائدة .
- ثغرات إلغاء التسلسل [ 3 ]
- ثغرات التشويش في النوع [ 4 ] [ 5 ]
- تنفيذ التعليمات البرمجية العشوائية GNU ldd [ 6 ]
طُرق
يُمكن تنفيذ التعليمات البرمجية العشوائية عادةً من خلال التحكم في مؤشر التعليمات (مثل القفز أو التفرع ) لعملية جارية . يشير مؤشر التعليمات إلى التعليمات التالية في العملية التي سيتم تنفيذها. وبالتالي، فإن التحكم في قيمة مؤشر التعليمات يُتيح التحكم في التعليمات التي سيتم تنفيذها تاليًا. لتنفيذ تعليمات برمجية عشوائية، تقوم العديد من الثغرات الأمنية بحقن تعليمات برمجية في العملية (على سبيل المثال، عن طريق إرسال مدخلات إليها تُخزن في مخزن مؤقت للإدخال في ذاكرة الوصول العشوائي ) وتستغل ثغرة أمنية لتغيير مؤشر التعليمات ليشير إلى التعليمات البرمجية المحقونة. بعد ذلك، يتم تنفيذ التعليمات البرمجية المحقونة تلقائيًا. يستغل هذا النوع من الهجمات حقيقة أن معظم أجهزة الكمبيوتر (التي تستخدم بنية فون نيومان ) لا تُميز بشكل عام بين التعليمات البرمجية والبيانات ، [ 7 ] [ 8 ] مما يسمح بإخفاء التعليمات البرمجية الخبيثة على أنها بيانات إدخال غير ضارة. تحتوي العديد من وحدات المعالجة المركزية الحديثة على آليات تجعل هذا الأمر أكثر صعوبة، مثل بت منع التنفيذ . [ 9 ] [ 10 ]
بالإضافة إلى تصعيد الامتيازات
بمفردها، تمنح ثغرة تنفيذ التعليمات البرمجية العشوائية المهاجم نفس امتيازات العملية المستهدفة المعرضة للخطر. [ 11 ] على سبيل المثال، عند استغلال ثغرة في متصفح ويب ، يمكن للمهاجم أن يتصرف كمستخدم، وينفذ إجراءات مثل تعديل ملفات الحاسوب الشخصي أو الوصول إلى المعلومات المصرفية، ولكنه لن يتمكن من تنفيذ إجراءات على مستوى النظام (إلا إذا كان لدى المستخدم المعني هذا الوصول أيضًا).
للتغلب على هذه المشكلة، بمجرد أن يتمكن المهاجم من تنفيذ تعليمات برمجية عشوائية على الهدف، غالبًا ما يحاول استغلال ثغرة رفع الامتيازات للحصول على مزيد من التحكم. قد يشمل ذلك نواة النظام نفسها أو حسابًا مثل المدير أو النظام أو الجذر. سواءً مع هذا التحكم المعزز أو بدونه، فإن الثغرات الأمنية لديها القدرة على إلحاق أضرار جسيمة أو تحويل الحاسوب إلى جهاز معطل تمامًا - لكن رفع الامتيازات يساعد في إخفاء الهجوم عن مدير النظام الشرعي.
أمثلة
تمكن هواة ألعاب الفيديو القديمة من اكتشاف ثغرات أمنية في ألعاب الفيديو الكلاسيكية تسمح لهم بتنفيذ تعليمات برمجية عشوائية، وذلك عادةً باستخدام تسلسل دقيق من ضغطات الأزرار في وضع اللعب المتقدم المدعوم بأداة ، مما يؤدي إلى تجاوز سعة المخزن المؤقت ، وبالتالي السماح لهم بالكتابة إلى ذاكرة محمية . في فعالية Awesome Games Done Quick 2014، تمكنت مجموعة من لاعبي السرعة من برمجة وتشغيل نسخ من ألعاب Pong و Snake و Super Mario Bros. على نسخة من لعبة Super Mario World [ 12 ]، وذلك باستخدام قراءة خارج نطاق مؤشر دالة يشير إلى مخزن مؤقت يتحكم فيه المستخدم لتنفيذ تعليمات برمجية عشوائية.
في الأول من مايو 2018، اكتشف باحث أمني ثغرة أمنية في برنامج 7-Zip لضغط الملفات . [ 13 ]
في 12 يونيو 2018، اكتشف الباحث الأمني البوسني جان إيف أفينارد من موزيلا ثغرة أمنية في نظام التشغيل ويندوز 10. [ 14 ]
تعرضت لغة PHP للعديد من الثغرات الأمنية في نظام ACE. [ 15 ] [ 16 ] [ 17 ]
في 9 ديسمبر 2021، تم اكتشاف ثغرة أمنية من نوع RCE تُسمى " Log4Shell " في إطار عمل تسجيل الأحداث الشهير Log4j ، مما أثر على العديد من الخدمات بما في ذلك iCloud و Minecraft: Java Edition و Steam ، ووُصفت بأنها "أكبر وأخطر ثغرة أمنية في العقد الماضي". [ 18 ] [ 19 ]
انظر أيضاً
مراجع
- ↑ فريق KernelCare (25 يناير 2021). "هجوم تنفيذ التعليمات البرمجية عن بُعد: ما هو، وكيفية حماية أنظمتك" . blog.kernelcare.com . تاريخ الاسترجاع: 22 سبتمبر 2021 .
- ↑ جونسون، بونتوس (2021). هل هناك ميل جوهري للثغرات الأمنية في أجهزة الكمبيوتر؟ تنفيذ التعليمات البرمجية العشوائية في آلة تورينج العالمية (نسخة أولية). arXiv : 2105.02124 .
- ↑ "فك تسلسل البيانات غير الموثوقة" . owasp.org .
- ↑ "فهم ثغرات التشويش في أنواع البيانات: CVE-2015-0336" . microsoft.com . 18 يونيو 2015.
- ↑ "استغلال الثغرة CVE-2018-19134: تنفيذ التعليمات البرمجية عن بُعد من خلال الخلط بين أنواع البيانات في Ghostscript" . lgtm.com . 5 فبراير 2019.
- ↑ "تنفيذ التعليمات البرمجية العشوائية في LDD" .
- ↑ جيلريث، ويليام ف.؛ لابلانت، فيليب أ. (2003). "تطور مجموعات التعليمات". هندسة الحاسوب: منظور تبسيطي . ص 23-32 . doi : 10.1007/978-1-4615-0237-1_4 . ISBN 978-1-4613-4980-8.
- ↑ رايلي ، إدوين د. (2003). معالم بارزة في علوم الحاسوب وتكنولوجيا المعلومات . مجموعة غرينوود للنشر. ص 245. ISBN 9781573565219.
- ↑ "نظرة تقنية: تنفيذ بت التعطيل (XD-Bit)" (ملف PDF) . توشيبا بولندا . 2005. مؤرشف من الأصل (ملف PDF) بتاريخ 31-10-2018 . تم الاطلاع عليه بتاريخ 31-10-2018 .
- ↑ "AMD توفر لك كل ما تحتاجه" (ملف PDF) . AMD . 2012. مؤرشف من النسخة الأصلية (ملف PDF) في 5 مارس 2019.
- ↑ وينترفيلد، ستيف (2013). "التكتيكات والإجراءات الهجومية". أساسيات الحرب السيبرانية . ص 67-82 . doi : 10.1016/B978-0-12-404737-2.00005-7 . ISBN 978-0-12-404737-2.
- ↑ أورلاند، كايل (14 يناير 2014). "كيف أعاد روبوت يعمل ببرنامج محاكاة برمجة لعبة سوبر ماريو وورلد أثناء التشغيل" . آرس تكنيكا . تم الاطلاع عليه بتاريخ 27 يوليو 2016 .
- ↑ "ثغرة أمنية في برنامج 7-Zip قد تسمح بتنفيذ تعليمات برمجية عشوائية" . مكتب خدمات تكنولوجيا المعلومات بولاية نيويورك . مؤرشف من الأصل بتاريخ 15 أغسطس 2021. تم الاطلاع عليه بتاريخ 31 أكتوبر 2018 .
- ↑ "ثغرة تنفيذ التعليمات البرمجية العشوائية CVE-2018-8213 في نظام التشغيل مايكروسوفت ويندوز" . سيمانتك . مؤرشف من الأصل بتاريخ 31 أكتوبر 2018. تم الاطلاع عليه بتاريخ 31 أكتوبر 2018 .
- ↑ "NVD - CVE-2017-12934" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 31-10-2018 .
- ↑ "عملية الملف التي تؤدي إلى إلغاء التسلسل عبر غلاف التدفق "phar://"" (ملف PDF) . مختبرات سيكارما . 2018.
- ↑ "NVD - CVE-2017-12933" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 31-10-2018 .
- ↑ "ثغرة Zeroday في أداة Log4j واسعة الانتشار تُشكّل تهديدًا خطيرًا للإنترنت" . Ars Technica . 9 ديسمبر 2021. تاريخ الاطلاع: 11 ديسمبر 2021 .
- ↑ "ثغرة برمجية تم اكتشافها مؤخراً تُعتبر "أخطر ثغرة أمنية في العقد الماضي"" . صحيفة الغارديان . 11 ديسمبر 2021. تم الاطلاع عليه في 11 ديسمبر 2021. "
للمزيد من القراءة
- سومستاد، تيودور؛ هولم، هانز؛ إكستيدت، ماتياس (يونيو 2012). "تقديرات معدلات نجاح هجمات تنفيذ التعليمات البرمجية العشوائية عن بُعد". إدارة المعلومات وأمن الحاسوب . 20 (2): 107-122 . doi : 10.1108/09685221211235625 .
- صن، إنبو؛ هان، جياكسوان؛ لي، ييكوان؛ هوانغ، تشنغ (2 يوليو 2024). "نموذج للكشف عن حمولة هجوم تنفيذ التعليمات البرمجية عن بُعد الموجه لمحتوى الحزمة" . إنترنت المستقبل . 16 (7): 235. doi : 10.3390/fi16070235 .
- جانسيفيتش، راسل جيه؛ كياياس، أنجيلوس؛ ميشيل، لوران دي؛ راسل، ألكسندر سي؛ شفارتسمان، ألكسندر إيه (2013). "الاستيلاء الخبيث على أنظمة التصويت: تنفيذ تعليمات برمجية عشوائية على محطات التصويت بالمسح الضوئي". وقائع الندوة السنوية الثامنة والعشرين لجمعية الحوسبة الآلية (ACM) حول الحوسبة التطبيقية . الصفحات 1816-1823 . doi : 10.1145/2480362.2480702 . ISBN 978-1-4503-1656-9.
- استغلالات الحقن
