Kutolewa kwa Bottlerocket 1.3, usambazaji kulingana na vyombo vilivyotengwa

Utoaji wa usambazaji wa Linux Bottlerocket 1.3.0 umechapishwa, ulioendelezwa kwa ushiriki wa Amazon kwa ajili ya uzinduzi wa ufanisi na salama wa vyombo vilivyotengwa. Zana za usambazaji na sehemu za udhibiti zimeandikwa kwa Rust na kusambazwa chini ya leseni za MIT na Apache 2.0. Inaauni kuendesha Bottlerocket kwenye vikundi vya Amazon ECS, VMware na AWS EKS Kubernetes, pamoja na kuunda miundo maalum na matoleo ambayo huruhusu matumizi ya zana mbalimbali za upangaji na wakati wa kukimbia kwa makontena.

Usambazaji hutoa taswira ya mfumo isiyogawanyika kiatomi na iliyosasishwa kiotomatiki ambayo inajumuisha kinu cha Linux na mazingira ya mfumo mdogo, ikijumuisha vipengele muhimu tu vya kuendesha vyombo. Mazingira yanajumuisha kidhibiti mfumo wa mfumo, maktaba ya Glibc, zana ya ujenzi ya Buildroot, kipakiaji cha boot ya GRUB, kisanidi kiovu cha mtandao, muda wa matumizi uliowekwa kwa vyombo vilivyotengwa, jukwaa la uandaaji la vyombo vya Kubernetes, kithibitishaji cha aws-iam na Amazon. Wakala wa ECS.

Zana za kupanga vyombo huja katika chombo tofauti cha usimamizi ambacho huwashwa kwa chaguomsingi na kudhibitiwa kupitia API na AWS SSM Agent. Picha ya msingi haina ganda la amri, seva ya SSH na lugha zilizotafsiriwa (kwa mfano, hakuna Python au Perl) - zana za usimamizi na zana za kurekebisha huwekwa kwenye chombo tofauti cha huduma, ambacho kimezimwa kwa chaguo-msingi.

Tofauti kuu kutoka kwa usambazaji sawa kama vile Fedora CoreOS, CentOS/Red Hat Atomic Host ndio lengo kuu la kutoa usalama wa hali ya juu katika muktadha wa kuimarisha ulinzi wa mfumo dhidi ya vitisho vinavyowezekana, na kuifanya iwe ngumu zaidi kutumia udhaifu katika vipengee vya OS na kuongeza kutengwa kwa kontena. . Vyombo vinaundwa kwa kutumia mifumo ya kawaida ya Linux kernel - makundi, nafasi za majina na seccomp. Kwa kutengwa kwa ziada, usambazaji hutumia SELinux katika hali ya "kutekeleza".

Sehemu ya mizizi imewekwa kwa kusoma tu, na /etc kizigeu cha mipangilio imewekwa kwenye tmpfs na kurejeshwa kwa hali yake ya asili baada ya kuanza tena. Urekebishaji wa moja kwa moja wa faili katika saraka ya /etc, kama vile /etc/resolv.conf na /etc/containerd/config.toml, hautumiki - ili kuhifadhi mipangilio kabisa, lazima utumie API au usogeze utendakazi kwenye vyombo tofauti. Sehemu ya dm-uaminifu inatumika kuthibitisha kwa siri uadilifu wa kizigeu cha mizizi, na ikiwa jaribio la kurekebisha data katika kiwango cha kifaa cha kuzuia litatambuliwa, mfumo huwashwa upya.

Vipengee vingi vya mfumo vimeandikwa kwa Rust, ambayo hutoa vipengele vya usalama wa kumbukumbu ili kuepuka udhaifu unaosababishwa na ufikiaji wa kumbukumbu baada ya bila malipo, kuachwa kwa vielekezi visivyo na maana, na ziada ya bafa. Wakati wa kujenga kwa chaguo-msingi, njia za ujumuishaji "-enable-default-pie" na "-enable-default-ssp" hutumiwa kuwezesha ujanibishaji wa nafasi ya anwani ya faili inayoweza kutekelezwa (PIE) na ulinzi dhidi ya kufurika kwa rafu kupitia uingizwaji wa canary. Kwa vifurushi vilivyoandikwa kwa C/C++, bendera β€œ-Wall”, β€œ-Werror=format-security”, β€œ-Wp,-D_FORTIFY_SOURCE=2”, β€œ-Wp,-D_GLIBCXX_ASSERTIONS” na β€œ-fstack-clash” ni pamoja na. kuwezeshwa -ulinzi".

Katika toleo jipya:

  • Udhaifu usiobadilika katika docker na zana zilizo na kontena za wakati wa kukimbia (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) inayohusiana na mipangilio isiyo sahihi ya haki za ufikiaji, ambayo iliruhusu watumiaji wasio na haki kupita zaidi ya msingi. saraka na utekeleze programu za nje.
  • Usaidizi wa IPv6 umeongezwa kwa kubelet na pluto.
  • Inawezekana kuanzisha upya chombo baada ya kubadilisha mipangilio yake.
  • Usaidizi wa matukio ya Amazon EC2 M6i umeongezwa kwenye kifurushi cha eni-max-pods.
  • Open-vm-tools imeongeza usaidizi kwa vichujio vya kifaa, kulingana na zana ya zana ya Cilium.
  • Kwa jukwaa la x86_64, hali ya boot ya mseto inatekelezwa (kwa usaidizi wa EFI na BIOS).
  • Ilisasisha matoleo ya vifurushi na vitegemezi vya lugha ya Rust.
  • Usaidizi wa lahaja ya usambazaji aws-k8s-1.17 kulingana na Kubernetes 1.17 umekatishwa. Inapendekezwa kutumia toleo la aws-k8s-1.21 kwa usaidizi wa Kubernetes 1.21. Vibadala vya k8s hutumia mipangilio ya cgroup runtime.slice na system.slice.

Chanzo: opennet.ru

Kuongeza maoni