ثغرات أمنية في FreeBSD وIPnet وNucleus NET تتعلق بأخطاء في تنفيذ ضغط DNS

نشرت مجموعات البحث Forescout Research Labs وJSOF Research نتائج دراسة مشتركة لأمن التطبيقات المختلفة لنظام الضغط المستخدم لحزم الأسماء المكررة في رسائل DNS وmDNS وDHCP وIPv6 RA (تغليف أجزاء المجال المكررة في الرسائل التي تتضمن أسماء متعددة). أثناء العمل تم تحديد 9 نقاط ضعف، والتي تم تلخيصها تحت الاسم الرمزي NAME:WRECK.

تم تحديد المشكلات في FreeBSD، وكذلك في أنظمة الشبكات الفرعية IPnet وNucleus NET وNetX، والتي أصبحت منتشرة على نطاق واسع في أنظمة التشغيل في الوقت الحقيقي VxWorks وNucleus وThreadX المستخدمة في أجهزة التشغيل الآلي والتخزين والأجهزة الطبية وإلكترونيات الطيران والطابعات. والالكترونيات الاستهلاكية. تشير التقديرات إلى أن ما لا يقل عن 100 مليون جهاز متأثر بالثغرات الأمنية.

  • أتاحت ثغرة أمنية في FreeBSD (CVE-2020-7461) تنظيم تنفيذ التعليمات البرمجية الخاصة به عن طريق إرسال حزمة DHCP مصممة خصيصًا إلى المهاجمين الموجودين على نفس الشبكة المحلية مثل الضحية، والتي أدت معالجتها بواسطة عميل DHCP ضعيف إلى إلى تجاوز سعة المخزن المؤقت. تم التخفيف من المشكلة من خلال حقيقة أن عملية dhclient التي كانت توجد بها الثغرة الأمنية كانت تعمل مع امتيازات إعادة التعيين في بيئة Capsicum المعزولة، الأمر الذي يتطلب تحديد ثغرة أمنية أخرى للخروج.

    يكمن جوهر الخطأ في التحقق غير الصحيح من المعلمات، في الحزمة التي تم إرجاعها بواسطة خادم DHCP مع خيار DHCP 119، والذي يسمح لك بنقل قائمة "بحث المجال" إلى المحلل. أدى الحساب غير الصحيح لحجم المخزن المؤقت المطلوب لاستيعاب أسماء النطاقات غير المعبأة إلى كتابة المعلومات التي يتحكم فيها المهاجم خارج المخزن المؤقت المخصص. في FreeBSD، تم إصلاح المشكلة في سبتمبر من العام الماضي. لا يمكن استغلال المشكلة إلا إذا كان لديك حق الوصول إلى الشبكة المحلية.

  • تسمح الثغرة الأمنية في مكدس شبكة IPnet المضمن والمستخدم في RTOS VxWorks بتنفيذ تعليمات برمجية محتملة على جانب عميل DNS بسبب المعالجة غير الصحيحة لضغط رسائل DNS. وكما تبين، فقد تم تحديد هذه الثغرة الأمنية لأول مرة بواسطة Exodus في عام 2016، ولكن لم يتم إصلاحها أبدًا. ولم يتم الرد أيضًا على طلب جديد إلى Wind River، ولا تزال أجهزة IPnet معرضة للخطر.
  • تم تحديد ست نقاط ضعف في حزمة Nucleus NET TCP/IP، المدعومة من شركة Siemens، منها اثنتان يمكن أن تؤدي إلى تنفيذ تعليمات برمجية عن بعد، وأربعة يمكن أن تؤدي إلى رفض الخدمة. تتعلق المشكلة الخطيرة الأولى بحدوث خطأ عند فك ضغط رسائل DNS المضغوطة، والثانية تتعلق بالتحليل غير الصحيح لتسميات أسماء النطاقات. تؤدي كلتا المشكلتين إلى تجاوز سعة المخزن المؤقت عند معالجة استجابات DNS المنسقة بشكل خاص.

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

  • الثغرة الأمنية في مكدس شبكة NetX (Azure RTOS NetX)، التي تم تطويرها لـ ThreadX RTOS وتم فتحها في عام 2019 بعد استحواذ شركة Microsoft عليها، اقتصرت على رفض الخدمة. سبب المشكلة هو خطأ في تحليل رسائل DNS المضغوطة في تطبيق المحلل.

من بين مجموعات الشبكة التي تم اختبارها والتي لم يتم العثور على أي ثغرات تتعلق بضغط البيانات المتكررة في رسائل DNS، تمت تسمية المشاريع التالية: lwIP، Nut/Net، Zephyr، uC/TCP-IP، uC/TCP-IP، FreeRTOS+TCP و OpenThread و FNET. علاوة على ذلك، فإن الأولين (Nut/Net وlwIP) لا يدعمان الضغط في رسائل DNS على الإطلاق، بينما يقوم الآخرون بتنفيذ هذه العملية دون أخطاء. بالإضافة إلى ذلك، تجدر الإشارة إلى أنه في السابق كان نفس الباحثين قد حددوا بالفعل نقاط ضعف مماثلة في مجموعات Treck وuIP وPicoTCP.

المصدر: opennet.ru

إضافة تعليق