Тусгаарлагдсан саванд суурилсан түгээлт болох Bottlerocket 1.3-г гаргалаа

Тусгаарлагдсан савыг үр дүнтэй, аюулгүй ажиллуулах зорилгоор Amazon-ийн оролцоотойгоор боловсруулсан Bottlerocket 1.3.0 Linux түгээлтийн хувилбарыг хэвлэв. Түгээлтийн хэрэгсэл болон хяналтын бүрэлдэхүүн хэсгүүдийг Rust дээр бичсэн бөгөөд MIT болон Apache 2.0 лицензийн дагуу түгээдэг. Энэ нь Amazon ECS, VMware, AWS EKS Kubernetes кластерууд дээр Bottlerocket-ийг ажиллуулах, түүнчлэн контейнерт зориулсан янз бүрийн зохион байгуулалт, ажиллах цагийн хэрэгслийг ашиглах боломжийг олгодог захиалгат бүтээц, хувилбаруудыг бий болгохыг дэмждэг.

Энэхүү түгээлт нь Линукс цөмийг агуулсан атомын болон автоматаар шинэчлэгдсэн хуваагдашгүй системийн дүр төрх, зөвхөн контейнер ажиллуулахад шаардлагатай бүрэлдэхүүн хэсгүүдийг багтаасан хамгийн бага системийн орчныг бүрдүүлдэг. Энэ орчинд systemd системийн менежер, Glibc номын сан, Buildroot бүтээх хэрэгсэл, GRUB ачаалагч, муу сүлжээний тохируулагч, контейнерээс тусгаарлагдсан контейнер ажиллах хугацаа, Kubernetes контейнер зохион байгуулах платформ, aws-iam-authenticator, Amazon ECS агент орно. .

Контейнер зохион байгуулах хэрэгслүүд нь анхдагчаар идэвхжсэн, API болон AWS SSM Agent-ээр удирддаг тусдаа удирдлагын контейнерт ирдэг. Үндсэн зурагт командын бүрхүүл, SSH сервер, тайлбарласан хэл байхгүй (жишээлбэл, Python эсвэл Perl байхгүй) - захиргааны болон дибаг хийх хэрэгслийг тусдаа үйлчилгээний контейнерт шилжүүлсэн бөгөөд энэ нь анхдагчаар идэвхгүй болно.

Fedora CoreOS, CentOS/Red Hat Atomic Host зэрэг ижил төстэй түгээлтийн гол ялгаа нь системийн боломжит аюулаас хамгаалах хамгаалалтыг бэхжүүлэх, үйлдлийн системийн бүрэлдэхүүн хэсгүүдийн эмзэг байдлыг ашиглахад хүндрэл учруулах, контейнер тусгаарлалтыг нэмэгдүүлэх хүрээнд хамгийн их аюулгүй байдлыг хангахад гол анхаарлаа хандуулдаг. Контейнеруудыг Линуксийн цөмийн ердийн механизмууд - cgroups, namespaces, seccomp ашиглан бүтээдэг. Нэмэлт тусгаарлахын тулд түгээлт нь SELinux-ийг "хэрэгжүүлэх" горимд ашигладаг.

Үндэс хуваалтыг зөвхөн унших горимд суурилуулсан бөгөөд /etc тохиргоотой хуваалтыг tmpfs-д суулгаж, дахин эхлүүлсний дараа анхны төлөвт нь сэргээнэ. /etc/resolv.conf болон /etc/containerd/config.toml зэрэг /etc лавлах дахь файлуудыг шууд өөрчлөхийг дэмждэггүй - тохиргоог бүрмөсөн хадгалахын тулд та API ашиглах эсвэл функцийг тусдаа контейнерт шилжүүлэх хэрэгтэй. Үндэс хуваалтын бүрэн бүтэн байдлыг криптограф шалгахын тулд dm-verity модулийг ашигладаг бөгөөд блок төхөөрөмжийн түвшинд өгөгдлийг өөрчлөх оролдлого илэрвэл системийг дахин ачаална.

Системийн ихэнх бүрэлдэхүүн хэсгүүд нь Rust хэл дээр бичигдсэн байдаг бөгөөд санах ойг чөлөөлсний дараа санах ойн талбарыг хаяглах, тэг заагчийг ялгах, буфер хэт ачааллаас үүсэх эмзэг байдлаас зайлсхийхийн тулд санах ойд аюулгүй хэрэгслүүдээр хангадаг. Барилга барих үед "--enable-default-pie" болон "--enable-default-ssp" эмхэтгэлийн горимуудыг анхдагчаар ашиглан гүйцэтгэгдэх файлуудын хаягийн орон зайг санамсаргүй хуваарилах (PIE) болон канарын шошгыг орлуулах замаар стек халихаас хамгаалах боломжтой. C/C++ хэл дээр бичигдсэн багцуудын хувьд "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" болон "-fstack-clash" гэсэн тугуудыг нэмж оруулсан болно. орсон - хамгаалалт.

Шинэ хувилбарт:

  • Хандалтын эрхийг буруу тохируулсантай холбоотой докер болон ажиллах цагийн контейнерийн хэрэгслүүдийн (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) сул талуудыг зассан бөгөөд энэ нь эрх мэдэлгүй хэрэглэгчдэд нэвтрэх боломжийг олгосон. лавлах ба гадаад програмуудыг ажиллуулна.
  • IPv6 дэмжлэгийг kubelet болон pluto-д нэмсэн.
  • Тохиргоог өөрчилсний дараа савыг дахин эхлүүлэх боломжтой.
  • Amazon EC2 M6i instance-ийн дэмжлэгийг eni-max-pods багцад нэмсэн.
  • Open-vm-tools нь Cilium хэрэглүүр дээр суурилсан төхөөрөмжийн шүүлтүүрийн дэмжлэгийг нэмсэн.
  • X86_64 платформын хувьд гибрид ачаалах горим хэрэгждэг (EFI болон BIOS-ийн дэмжлэгтэйгээр).
  • Rust хэлний багцын хувилбарууд болон хамаарлыг шинэчилсэн.
  • Kubernetes 8 дээр суурилсан aws-k1.17s-1.17 түгээлтийн хувилбарын дэмжлэгийг зогсоосон. Kubernetes 8-ийн дэмжлэгтэйгээр aws-k1.21s-1.21 хувилбарыг ашиглахыг зөвлөж байна. k8s хувилбарууд нь cgroup runtime.slice болон system.slice тохиргоог ашигладаг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх