sudo-rs مشروع لتنفيذ sudo و su في Rust

سودو

يهدف تنفيذ sudo و su في Rust إلى تحسين الأمان في هذه المرافق.

انتشر الخبر مؤخرًا أن ملف ISRG (Internet Security Research Group) ، وهو مؤسس مشروع Let's Encrypt الذي يروج لـ HTTPS وتطوير التقنيات لزيادة أمان الإنترنت ، قدم مشروع sudo-rs.

sudo-rs تم وضعه كمشروع لإنشاء تطبيقات للمرافق sudo و su ، مكتوبة بلغة البرمجة Rust وهذا يسمح لك بتنفيذ الأوامر نيابة عن المستخدمين الآخرين.

الآن، يركز العمل على التنفيذ الوظائف في sudo-rs التي تسمح باستخدامها كبديل شفاف لـ sudo في حالات الاستخدام النموذجية (إعدادات sudoers الافتراضية على Ubuntu و Fedora و Debian).

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

في المستقبل ، هناك خطط لإنشاء مكتبة تسمح بتضمين وظائف sudo في برامج أخرى. وتوفير طريقة تكوين بديلة تتجنب تحليل صيغة ملف تكوين sudoers. اعتمادًا على وظيفة sudo التي تم تنفيذها ، سيتم أيضًا إعداد متغير من الأداة المساعدة su. بالإضافة إلى ذلك ، تشير الخطط إلى دعم SELinux و AppArmor و LDAP وأدوات التدقيق والقدرة على المصادقة دون استخدام PAM وتنفيذ جميع خيارات سطر أوامر sudo.

وفقًا لـ Microsoft و Google ، فإن حوالي 70٪ من نقاط الضعف ناتجة عن إدارة الذاكرة غير الآمنة.. من المتوقع أن يؤدي استخدام لغة Rust لبناء su و sudo إلى تقليل مخاطر نقاط الضعف بسبب معالجة الذاكرة غير الآمنة والقضاء على حدوث أخطاء مثل الوصول إلى منطقة من الذاكرة بعد تحريرها وتجاوز سعة المخزن المؤقت.

يتم تطوير Sudo-rs من قبل المهندسين في Ferrous Systems و Tweede Golf بتمويل مقدم من شركات مثل Google و Cisco و Amazon Web Services.

عندما نفكر في البرنامج الذي نريد الاستثمار فيه ، فإننا نفكر بشكل أساسي في أربعة معايير للمخاطر:

تستخدم على نطاق واسع (تقريبًا جميع الخوادم و / أو العملاء)
في حدود حرجة
لعب دور حاسم
مكتوبة بلغات غير آمنة للذاكرة (على سبيل المثال ، C ، C ++ ، ASM)
يناسب سودو معايير المخاطر هذه تمامًا. من المهم أن نحمي برامجنا الأكثر أهمية ، لا سيما من الثغرات الأمنية في الذاكرة. من الصعب تخيل برنامج أكثر أهمية من sudo و su.

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

من الجدير بالذكر أن sudo-rs قيد التطوير حاليًا بالفعل. وهي غير مناسبة لأي بيئة إنتاج. يوصى باستخدام sudo-rs فقط لأغراض التطوير والاختبار ، لذلك يُذكر أنه للإنتاج والتطوير إذا تم تنفيذ sudo-rs ، فمن شبه المؤكد أن أي نظام يمكن كسره بسهولة وليس آمنًا.

sudo-rs مرخص بموجب تراخيص Apache 2.0 و MIT ، وكما ذكرنا ، فقد تم بالفعل إصدار نسخة معاينة من sudo-rs ، وهي ليست جاهزة للاستخدام العام بعد. ومن المقرر أن ينتهي المشروع ، الذي بدأ العمل في ديسمبر 2022 ، في سبتمبر 2023.

أخيرًا ، إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك الرجوع إلى التفاصيل في الرابط التالي.