جوجل لغة Rust هي الحل الأفضل لزيادة أمان أندرويد

يبدو أن قرار جوجل Google باستخدام رست Rust في الكود الجديد في الاندرويد لتقليل الأخطاء المتعلقة بالذاكرة قد آتى أكله. حيث انخفضت نقاط الثغرات في أمان الذاكرة في اندرويد إلى أكثر من النصف. وهي علامة فارقة تتزامن مع تحول جوجل من C و C ++ إلى لغة البرمجة الآمنة للذاكرة Rust. إنها السنة الأولى التي لم تكن فيها الثغرات الأمنية في الذاكرة هي أكبر فئة من الثغرات الأمنية. وقد مر عام بعد أن جعلت جوجل لغة Rust الخيار الافتراضي للكود الجديد في مشروع Android Open Source Project (AOSP).

تشمل اللغات الأخرى التي استخدمتها جوجل لنظام اندرويد لغة جافا وكوتلن المتوافقة مع Java. ولا تزال لغة السي C وسي بلس بلس C ++ اللغتين السائدتين في AOSP. لكن اندرويد 13 هو الإصدار الأول حيث يكون معظم الكود الجديد بلغات آمنة للذاكرة. بعد أن تبنته جوجل من أجل مشروع اندرويد مفتوح المصدر (AOSP)في أبريل 2021، أصبحت Rust تمثل الآن حوالي 21٪ من الكود الجديد. اعتمد مشروع Linux kernel Rust كلغة رسمية جديدة للغة C هذا العام.

كيف تستخدم Google Rust لتقليل نقاط الضعف في أمان الذاكرة في Android
لغة Rust هي اللغة المناسبة لتعزيز حماية اندرويد

يحتوي إصدار اندرويد 10 2019 على 223 خطأ في أمان الذاكرة بينما يحتوي اندرويد 13 على 85 مشكلة معروفة تتعلق بسلامة الذاكرة. خلال تلك الفترة انخفضت نقاط الضعف في أمان الذاكرة من 76٪ إلى 35٪ من جميع نقاط الضعف في نظام اندرويد. في إشارة من مهندس برامج أمان أندرويد "جيفري فاندر ستويب" إلى إن هذا الانخفاض في الثغرات المتعلقة بأمان الذاكرة. وترى #جوجل أيضاً انخفاضاً في الثغرات الحرجة والقابلة للاستغلال عن بُعد. ويضيف فاندر ستويب في المنشور أن التغيير  لم يكن مدفوعاً فقط المطورين الذين يستخدمون أفضل الأدوات للعمل. يخطط فريق أندرويد لزيادة استخدامه لـ Rust على الرغم من عدم وجود خطط للتخلص من C و C ++ لبرمجة أنظمته.

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

وتقول جوجل إن أدوات الأمان مثل fuzzing كان لها أيضاً تأثير كبير على ثغرات أمان الذاكرة. وكتب فاندر ستويب، نواصل الاستثمار في الأدوات اللازمة لتحسين أمان C / C ++ الخاص بنا على مدار الإصدارات القليلة الماضية. قدمنا ​​أداة تخصيص Scudo و HWASAN و GWP-ASAN و KFENCE على أجهزة اندرويد للإنتاج. لقد قمنا أيضاً بزيادة تغطيتنا على قاعدة الشفرة الحالية لدينا. ساهمت الثغرات التي تم العثور عليها باستخدام هذه الأدوات في منع الثغرات الأمنية في التعليمات البرمجية الجديدة بالإضافة إلى الثغرات الموجودة في التعليمات البرمجية القديمة المضمنة في التقييم أعلاه. هذه أدوات مهمة وذات أهمية بالغة بالنسبة لـ كود C / C ++. ومع ذلك هذه وحدها لا تُأخذ في الحسبان التحول الكبير في الثغرات الأمنية التي نراها والمشروعات الأخرى التي نشرت هذه التقنيات لم تشهد تحولاً كبيراً في تكوين ثغراتها. نعتقد أن اندرويد يعد التحول المستمر من اللغات غير الآمنة للذاكرة إلى اللغات الآمنة للذاكرة عاملاً رئيسياً.

ويمضي في إشارته أنه في أندرويد 13 يوجد 1.5 مليون سطر إجمالي من كود Rust وهو ما يمثل حوالي 21 ٪ من جميع الأكواد الجديدة. حتى الآن لم ترأ جوجل ثغرة أمنية واحدة في أمان الذاكرة في كود Rust الخاص بنظام اندرويد. يوضح أن Rust يحقق الغرض المقصود منه وهو منع مصدر الثغرات الأمنية الأكثر انتشاراً في الأندرويد كثافة الثغرات الأمنية التاريخية أكبر من 1 / kLOC (ثغرة واحدة لكل ألف سطر من التعليمات البرمجية) في العديد من مكونات C / C ++ في اندرويد مثل الوسائط والبلوتوث وغيرها. استناداً إلى كثافة الثغرات الأمنية التاريخية، من المحتمل أن يكون استخدام Rust قد منع بالفعل مئات الثغرات الأمنية من الوصول إلى الإنتاج.

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

إرسال تعليق (0)
أحدث أقدم