صعود الصدأ ، لغة البرمجة الآمنة “الفيروسية” التي تسيطر على التكنولوجيا
صعود الصدأ ، لغة البرمجة الآمنة “الفيروسية” التي تسيطر على التكنولوجيا
هذه الأنواع من نقاط الضعف ليست مجرد أخطاء برمجية مقصورة على فئة معينة. لقد وجد البحث والتدقيق مرارًا وتكرارًا أنهما يشكلان غالبية نقاط ضعف البرامج. لذلك ، بينما لا يزال بإمكانك ارتكاب الأخطاء وخلق ثغرات أمنية أثناء البرمجة في Rust ، فإن فرصة القضاء على نقاط الضعف في أمان الذاكرة مهمة.
يقول دان لورينك ، الرئيس التنفيذي لشركة Chainguard لأمن سلسلة التوريد: “تعتبر مشكلات أمان الذاكرة مسؤولة عن نسبة كبيرة جدًا من جميع نقاط الضعف التي تم الإبلاغ عنها ، وهذا يحدث في التطبيقات المهمة مثل أنظمة التشغيل والهواتف المحمولة والبنية التحتية”. “على مدى العقود التي كان الناس يكتبون فيها تعليمات برمجية بلغات غير آمنة للذاكرة ، حاولنا تحسين وبناء أدوات أفضل وتعليم الناس كيفية عدم ارتكاب هذه الأخطاء ، ولكن هناك حدودًا فقط لمدى قدرة الأشخاص على المحاولة بجدية أكبر في الواقع. لذا فأنت بحاجة إلى تقنية جديدة تجعل هذه الفئة بأكملها من نقاط الضعف مستحيلة ، وهذا ما يجلبه روست أخيرًا إلى الطاولة “.
الصدأ لا يخلو من المشككين والمنتقدين. كان الجهد المبذول على مدار العامين الماضيين لتطبيق Rust في Linux مثيرًا للجدل ، ويرجع ذلك جزئيًا إلى أن إضافة دعم لأي لغة أخرى يزيد التعقيد بطبيعته ، وجزئيًا بسبب المناقشات حول كيفية القيام ، على وجه التحديد ، بجعل كل ذلك يعمل. لكن عناصر المؤيدين تؤكد أن Rust لديه ما هو ضروري – فهو لا يسبب خسارة في الأداء ، ويعمل بشكل جيد مع البرامج المكتوبة بلغات أخرى – وأنه أمر بالغ الأهمية لمجرد أنه حاجة ماسة.
يقول Lorenc ، وهو باحث ومساهم مفتوح المصدر منذ فترة طويلة: “لا يتعلق الأمر بالاختيار الصحيح بل إنه جاهز أكثر”. “لا توجد بدائل حقيقية في الوقت الحالي ، بخلاف عدم القيام بأي شيء ، ولم يعد هذا خيارًا متاحًا بعد الآن. إن الاستمرار في استخدام رمز غير آمن للذاكرة لعقد آخر سيكون مشكلة كبيرة لصناعة التكنولوجيا والأمن القومي ولكل شيء “.
على الرغم من ذلك ، فإن أحد أكبر تحديات الانتقال إلى Rust هو بالضبط كل العقود التي أمضاها المطورون بالفعل في كتابة التعليمات البرمجية الحيوية بلغات غير آمنة للذاكرة. كتابة برامج جديدة في Rust لا تعالج هذا التراكم الهائل. يبدأ تطبيق Linux kernel ، على سبيل المثال ، في المحيط من خلال دعم برامج التشغيل المستندة إلى Rust ، وهي البرامج التي تنسق بين نظام التشغيل والأجهزة مثل الطابعة.
“عند استخدام أنظمة التشغيل ، تكون السرعة والأداء دائمًا في مقدمة اهتماماتك ، والأجزاء التي تقوم بتشغيلها في C ++ أو C عادةً ما تكون الأجزاء التي لا يمكنك تشغيلها في Java أو غيرها من الذاكرة الآمنة اللغات ، بسبب الأداء “، كما يقول Kleidermacher من Google. “لذا فإن القدرة على تشغيل Rust والحصول على نفس الأداء ولكن الحصول على ذاكرة آمنة أمر رائع حقًا. لكنها رحلة. لا يمكنك الذهاب وإعادة كتابة 50 مليون سطر من التعليمات البرمجية بين عشية وضحاها ، لذلك نحن نختار بعناية المكونات الأمنية الهامة ، وبمرور الوقت سنقوم بتعديل أشياء أخرى “.
في نظام Android ، يقول Kleidermacher إن الكثير من ميزات إدارة مفاتيح التشفير مكتوبة الآن بلغة Rust ، وكذلك ميزة اتصال الإنترنت الخاصة DNS عبر HTTPS ، وهي نسخة جديدة من مكدس شرائح النطاق العريض للغاية ، والجديد. إطار عمل المحاكاة الافتراضية لنظام Android المستخدمة في رقائق Tensor G2 المخصصة من Google. يضيف HeFi أن فريق Android يقوم بتحويل حزم الاتصال مثل تلك الخاصة بـ Bluetooth و Wi-Fi إلى Rust لأنها تستند إلى معايير صناعية معقدة وتميل إلى احتواء الكثير من نقاط الضعف. باختصار ، تتمثل الإستراتيجية في البدء في الحصول على مزايا أمان إضافية من تحويل مكونات البرامج الأكثر تعرضًا أو حيوية إلى Rust أولاً ثم العمل من الداخل من هناك.