تصدر Amazon إصدار Bottlerocket 1.0.0 ، وهو توزيع Linux يعتمد على الحاويات المعزولة

شركة أمازون مقدم أول إصدار مهم لتوزيع Linux مخصص بوتليركيت 1.0.0، مصممة لتشغيل الحاويات المعزولة بكفاءة وأمان. أدوات التوزيع ومكونات التحكم مكتوبة بلغة Rust و الانتشار بموجب تراخيص MIT وApache 2.0. يتم تطوير المشروع على GitHub وهو متاح للمشاركة من قبل أفراد المجتمع. يتم إنشاء صورة نشر النظام لمعماريتي x86_64 وAarch64. تم تكييف نظام التشغيل ليعمل على مجموعات Amazon ECS وAWS EKS Kubernetes. تم تقديمة أدوات لإنشاء التجميعات والإصدارات الخاصة بك، والتي يمكنها استخدام أدوات التنسيق والنوى ووقت التشغيل للحاويات الأخرى.

يوفر التوزيع نواة Linux وبيئة نظام بسيطة، بما في ذلك فقط المكونات الضرورية لتشغيل الحاويات. من بين الحزم المشاركة في المشروع مدير النظام systemd ومكتبة Glibc وأدوات التجميع
Buildroot، محمل الإقلاع GRUB، مكون الشبكة شريروقت التشغيل للحاويات المعزولة حاوياتومنصة تنسيق الحاويات Kubernetes وaws-iam-authenticator ووكيل Amazon ECS.

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

يتمثل الاختلاف الرئيسي عن التوزيعات المماثلة مثل Fedora CoreOS وCentOS/Red Hat Atomic Host في التركيز الأساسي على توفير أقصى قدر من الأمن في سياق تعزيز حماية النظام من التهديدات المحتملة، مما يزيد من صعوبة استغلال نقاط الضعف في مكونات نظام التشغيل وزيادة عزل الحاويات. يتم إنشاء الحاويات باستخدام آليات Linux kernel القياسية - مجموعات cgroups ومساحات الأسماء وseccomp. لمزيد من العزل، يستخدم التوزيع SELinux في وضع "الفرض"، ويتم استخدام الوحدة للتحقق التشفيري من سلامة القسم الجذر DM-حقيقة. إذا تم اكتشاف محاولة لتعديل البيانات على مستوى جهاز الحظر، فسيتم إعادة تشغيل النظام.

يتم تثبيت القسم الجذر للقراءة فقط، ويتم تثبيت قسم الإعدادات /etc في tmpfs ويتم استعادته إلى حالته الأصلية بعد إعادة التشغيل. التعديل المباشر للملفات في الدليل /etc، مثل /etc/resolv.conf و/etc/containerd/config.toml، غير مدعوم - لحفظ الإعدادات بشكل دائم، يجب عليك استخدام واجهة برمجة التطبيقات (API) أو نقل الوظيفة إلى حاويات منفصلة.

تتم كتابة معظم مكونات النظام بلغة Rust، والتي توفر ميزات آمنة للذاكرة لتجنب الثغرات الأمنية الناجمة عن الوصول إلى الذاكرة بعد الفراغ، وإلغاء مرجعيات المؤشر الفارغ، وتجاوزات المخزن المؤقت. عند الإنشاء بشكل افتراضي، يتم استخدام أوضاع التجميع "--enable-default-pie" و"--enable-default-ssp" لتمكين التوزيع العشوائي لمساحة العنوان للملفات القابلة للتنفيذ (فطيرة) وحماية تجاوز سعة المكدس عبر استبدال الكناري.
بالنسبة للحزم المكتوبة بلغة C/C++، يتم تضمين علامات إضافية
"-Wall"، "-Werror=format-security"، "-Wp,-D_FORTIFY_SOURCE=2"، "-Wp,-D_GLIBCXX_ASSERTIONS" و"-fstack-clash-protection".

يتم توفير أدوات تنسيق الحاوية بشكل منفصل حاوية التحكم، والذي يتم تمكينه افتراضيًا ويتم التحكم فيه عبر API ووكيل AWS SSM. لا تحتوي الصورة الأساسية على واجهة أوامر وخادم SSH واللغات المفسرة (على سبيل المثال، لا يوجد Python أو Perl) - توجد الأدوات الإدارية وأدوات تصحيح الأخطاء في حاوية خدمة منفصلة، والذي يتم تعطيله بشكل افتراضي.

المصدر: opennet.ru

إضافة تعليق