فتحت Google رمز نظام التشغيل الآمن KataOS

أعلنت شركة جوجل عن اكتشاف تطورات تتعلق بمشروع KataOS، الذي يهدف إلى إنشاء نظام تشغيل آمن للأجهزة المدمجة. تتم كتابة مكونات نظام KataOS بلغة Rust ويتم تشغيلها فوق النواة الدقيقة seL4، والتي تم توفير دليل رياضي لموثوقيتها على أنظمة RISC-V، مما يشير إلى أن الكود يتوافق تمامًا مع المواصفات المحددة في اللغة الرسمية. رمز المشروع مفتوح بموجب ترخيص Apache 2.0.

يوفر النظام الدعم للمنصات القائمة على معماريات RISC-V وARM64. لمحاكاة تشغيل seL4 وبيئة KataOS أعلى الأجهزة، يتم استخدام إطار عمل Renode أثناء عملية التطوير. كتطبيق مرجعي، تم اقتراح مجمع البرامج والأجهزة Sparrow، الذي يجمع بين KataOS والرقائق الآمنة المستندة إلى منصة OpenTitan. يتيح لك الحل المقترح الجمع بين نواة نظام التشغيل التي تم التحقق منها منطقيًا ومكونات الأجهزة الجديرة بالثقة (RoT، Root of Trust)، والتي تم إنشاؤها باستخدام منصة OpenTitan وبنية RISC-V. بالإضافة إلى كود KataOS، من المخطط فتح جميع مكونات Sparrow الأخرى، بما في ذلك مكون الأجهزة، في المستقبل.

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

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

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

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

المصدر: opennet.ru

إضافة تعليق