25 نقطة ضعف في RTOS Zephyr، بما في ذلك تلك التي تم استغلالها عبر حزمة ICMP

باحثون من مجموعة NCC نشرت نتائج تدقيق المشروع مجانا نسيم عليل, النامية نظام تشغيل في الوقت الفعلي (RTOS)، يهدف إلى تجهيز الأجهزة التي تتوافق مع مفهوم إنترنت الأشياء (IoT، Internet of Things). أثناء التدقيق تم الكشف عن ذلك 25 نقاط ضعف في Zephyr وثغرة أمنية واحدة في MCUboot. يتم تطوير Zephyr بمشاركة شركات Intel.

في المجمل، تم تحديد 6 نقاط ضعف في مكدس الشبكة، 4 في النواة، 2 في غلاف الأوامر، 5 في معالجات مكالمات النظام، 5 في نظام USB الفرعي و3 في آلية تحديث البرامج الثابتة. تم تصنيف قضيتين على أنها حرجة، واثنتان على درجة عالية، و9 على درجة متوسطة، و9 على درجة منخفضة، و4 على أنها قيد النظر. تؤثر المشكلات الحرجة على مكدس IPv4 ومحلل MQTT، وتؤثر المشكلات الخطيرة على وحدة تخزين USB كبيرة السعة وبرامج تشغيل USB DFU. في وقت الكشف عن المعلومات، تم إعداد الإصلاحات فقط لأخطر 15 نقطة ضعف، بينما تظل المشكلات التي تؤدي إلى رفض الخدمة أو المرتبطة بالعيوب في آليات حماية kernel الإضافية غير مصححة.

تم التعرف على ثغرة أمنية قابلة للاستغلال عن بعد في مكدس IPv4 الخاص بالمنصة، مما يؤدي إلى تلف الذاكرة عند معالجة حزم ICMP المعدلة بطريقة معينة. تم العثور على مشكلة خطيرة أخرى في محلل بروتوكول MQTT، والتي تنتج عن عدم التحقق المناسب من طول حقل الرأس ويمكن أن تؤدي إلى تنفيذ التعليمات البرمجية عن بعد. تم العثور على مشكلات أقل خطورة لرفض الخدمة في مكدس IPv6 وتنفيذ بروتوكول CoAP.

يمكن استغلال المشكلات الأخرى محليًا للتسبب في رفض الخدمة أو تنفيذ التعليمات البرمجية على مستوى kernel. ترتبط معظم نقاط الضعف هذه بعدم وجود عمليات فحص مناسبة لوسائط استدعاء النظام، ويمكن أن تؤدي إلى كتابة مناطق عشوائية من ذاكرة kernel والقراءة منها. وتمتد المشكلات أيضًا إلى كود معالجة استدعاء النظام نفسه، حيث يؤدي الاتصال برقم اتصال نظام سلبي إلى تجاوز عدد صحيح. حددت النواة أيضًا مشاكل في تنفيذ حماية ASLR (التوزيع العشوائي لمساحة العنوان) وآلية وضع علامات الكناري على المكدس، مما يجعل هذه الآليات غير فعالة.

تؤثر العديد من المشكلات على مكدس USB وبرامج التشغيل الفردية. على سبيل المثال، يمكن أن تؤدي المشكلات في وحدة تخزين USB كبيرة السعة إلى تجاوز سعة المخزن المؤقت وتنفيذ التعليمات البرمجية على مستوى kernel عندما يكون الجهاز متصلاً بمضيف USB يتحكم فيه المهاجم. تسمح لك ثغرة أمنية في USB DFU، وهو برنامج تشغيل لتحميل البرامج الثابتة الجديدة عبر USB، بتحميل صورة البرامج الثابتة المعدلة في الفلاش الداخلي لوحدة التحكم الدقيقة دون استخدام التشفير وتجاوز وضع التمهيد الآمن مع التحقق من المكونات باستخدام التوقيع الرقمي. بالإضافة إلى ذلك، تمت دراسة كود أداة تحميل التشغيل المفتوحة MCUboot، حيث تم العثور على ثغرة أمنية حميدة واحدة،
مما قد يؤدي إلى تجاوز سعة المخزن المؤقت عند استخدام بروتوكول SMP (بروتوكول الإدارة البسيط) عبر UART.

تذكر أنه في Zephyr، يتم توفير مساحة عنوان ظاهرية مشتركة عالمية واحدة فقط (SASOS، نظام تشغيل مساحة العنوان الفردي) لجميع العمليات. يتم دمج التعليمات البرمجية الخاصة بالتطبيق مع نواة خاصة بالتطبيق لتشكيل ملف قابل للتنفيذ متجانس يمكن تحميله وتشغيله على أجهزة معينة. يتم تحديد جميع موارد النظام في وقت الترجمة، مما يقلل من حجم التعليمات البرمجية ويزيد من الأداء. يمكن أن تتضمن صورة النظام فقط ميزات kernel المطلوبة لتشغيل التطبيق.

يشار إلى أن من بين المزايا الرئيسية لـ Zephyr المذكورة التنمية مع السلامة في الاعتبار. موافقةأن جميع مراحل التطوير تخضع لمراحل إلزامية لتأكيد أمان الكود: اختبار التشويش، والتحليل الثابت، واختبار الاختراق، ومراجعة الكود، وتحليل تنفيذ الباب الخلفي، ونمذجة التهديدات.

المصدر: opennet.ru

إضافة تعليق