ذكاء البيانات التوليدية

يشكل خلل الصدأ الخطير تهديدًا للاستغلال في حالات استخدام محددة لنظام التشغيل Windows

التاريخ:

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

توفر مجموعة الوظائف الشائعة المضمنة في لغة برمجة Rust، والمعروفة باسم المكتبة القياسية، القدرة - من بين إمكاناتها العديدة الأخرى - على تنفيذ ملفات Windows الدفعية من خلال Command API. ومع ذلك، فإن الوظيفة لم تعالج المدخلات إلى واجهة برمجة التطبيقات (API) بدقة كافية للقضاء على إمكانية إدخال التعليمات البرمجية في التنفيذ، وفقًا لـ استشارة الفريق العامل المعني بالاستجابة الأمنية للصدأ تم النشر في 9 أبريل.

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

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

اكتسبت Rust سمعة باعتبارها لغة برمجة آمنة للغاية، لأنها لا تترك التطبيقات مفتوحة لفئة من العيوب الشديدة في كثير من الأحيان والمعروفة باسم ثغرات أمان الذاكرة. وقد نسبت جوجل انخفاض في رمز الذاكرة غير الآمنة إلى التحول إلى اللغات الآمنة للذاكرة، مثل Rust وKotlin، بينما وجدت Microsoft أنه حتى عام 2018، عندما تحولت إلى لغة آمنة للذاكرة، كانت مثل هذه الثغرات الأمنية بانتظام تمثل 70٪ من جميع القضايا الأمنية.

يطرح Windows مجموعة من المشكلات

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

يقول: "يتم تشغيل الملفات الدفعية لأسباب عديدة على الأنظمة، ويوفر Rust واجهة برمجة التطبيقات (API) للسماح لك بتنفيذ تلك الملفات بسهولة إلى حد ما". "لذا، على الرغم من أن هذه ليست بالضرورة حالة الاستخدام الأكثر شيوعًا لـ Rust، إلا أن واجهة برمجة التطبيقات (API)، قبل تنفيذ التصحيح الثابت، سمحت للجهات الفاعلة الضارة بالسيطرة نظريًا على نظامك عن طريق تشغيل أوامر عشوائية، وهذه بالتأكيد ثغرة أمنية حرجة."

عادةً، يمكن للمطور إعادة توجيه عبء العمل إلى مضيف Windows ليتم تنفيذه كعملية مجمعة من خلال واجهة برمجة تطبيقات الأوامر (API)، وهي جزء من المكتبة القياسية. عادة، يضمن Rust سلامة أي استدعاء لواجهة برمجة تطبيقات الأوامر، ولكن في هذه الحالة، لم يتمكن مشروع Rust من إيجاد طريقة لمنع تنفيذ جميع الوسائط، ويرجع ذلك في المقام الأول إلى أن Windows لا يلتزم بأي نوع من المعايير، وأن يمكن أن تسمح واجهة برمجة التطبيقات (API) للمهاجم بإرسال التعليمات البرمجية التي سيتم تنفيذها بعد ذلك.

"لسوء الحظ، تم الإبلاغ عن أن منطق الهروب الخاص بنا لم يكن شاملاً بما فيه الكفاية، وكان من الممكن تمرير وسيطات ضارة من شأنها أن تؤدي إلى تنفيذ عشوائي للصدفة،" وفقًا لمجموعة Rust Security Response WG.

مشروع الصدأ يثبت الاستجابة

في حين أن التعامل مع أي ثغرة يمكن أن يكون بمثابة صداع، فقد أظهر مشروع Rust أن المجموعة تعمل على حل المشكلات بسرعة، كما يقول الخبراء. ثغرة المكتبة القياسية CVE-2024-24576، هي في النهاية مشكلة تتعلق بمشكلة معالجة الدُفعات في Windows وتؤثر على لغات البرمجة الأخرى، إذا لم تقم بتحليل الوسيطات المرسلة إلى عملية الدُفعات في Windows بشكل مناسب. يبدو أن مشروع Rust هو أول مشروع تم طرحه لإصلاح مشكلة تمرير الوسائط إلى عملية Windows CMD.exe، كما يقول مزراحي من JFrog.

وقال مشروع Rust إن المجموعات لم تتمكن من حل المشكلة تمامًا، لكن واجهة برمجة تطبيقات الأوامر لن تُرجع خطأً عندما تكون أي زيادات تم تمريرها إلى الوظيفة غير آمنة. 

يحث مزراحي من JFrog شركة Rust على توسيع نطاق استخدامها لاختبار أمان التطبيقات الثابتة وتوسيع استخدام اختبارات التشويش والاختبار الديناميكي.

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة