Vydanie Bottlerocket 1.3, distribúcia založená na izolovaných kontajneroch

Bolo zverejnené vydanie linuxovej distribúcie Bottlerocket 1.3.0 vyvinutej za účasti Amazonu pre efektívne a bezpečné spúšťanie izolovaných kontajnerov. Nástroje a ovládacie komponenty distribúcie sú napísané v jazyku Rust a distribuované pod licenciami MIT a Apache 2.0. Podporuje spustenie Bottlerocket na klastroch Amazon ECS, VMware a AWS EKS Kubernetes, ako aj vytváranie vlastných zostavení a vydaní, ktoré umožňujú použitie rôznych nástrojov na orchestráciu a spustenie pre kontajnery.

Distribúcia poskytuje atomicky a automaticky aktualizovaný nedeliteľný systémový obraz, ktorý obsahuje linuxové jadro a minimálne systémové prostredie, vrátane komponentov potrebných na spustenie kontajnerov. Prostredie zahŕňa systémového manažéra systemd, knižnicu Glibc, nástroj na zostavovanie Buildroot, zavádzač GRUB, konfigurátor zlej siete, kontajnerový runtime pre izolované kontajnery, platformu na orchestráciu kontajnerov Kubernetes, aws-iam-authenticator a Amazon. Agent ECS.

Nástroje na orchestráciu kontajnerov sa dodávajú v samostatnom kontajneri na správu, ktorý je predvolene povolený a spravovaný prostredníctvom rozhrania API a agenta AWS SSM. V základnom obrázku chýba príkazový shell, SSH server a interpretované jazyky ​​(napríklad žiadny Python alebo Perl) - administratívne nástroje a nástroje na ladenie sú umiestnené v samostatnom kontajneri služieb, ktorý je predvolene vypnutý.

Kľúčovým rozdielom od podobných distribúcií, ako je Fedora CoreOS, CentOS/Red Hat Atomic Host, je primárne zameranie na poskytovanie maximálnej bezpečnosti v kontexte posilnenia ochrany systému pred možnými hrozbami, čím sa sťažuje využívanie zraniteľností v komponentoch OS a zvyšuje sa izolácia kontajnerov. . Kontajnery sú vytvorené pomocou štandardných mechanizmov jadra Linuxu – cgroups, namespaces a seccomp. Pre dodatočnú izoláciu používa distribúcia SELinux v režime „vynucovania“.

Koreňový oddiel je pripojený len na čítanie a oddiel s nastaveniami /etc je pripojený v tmpfs a po reštarte obnovený do pôvodného stavu. Priama modifikácia súborov v adresári /etc, ako napríklad /etc/resolv.conf a /etc/containerd/config.toml, nie je podporovaná - na trvalé uloženie nastavení musíte použiť API alebo presunúť funkčnosť do samostatných kontajnerov. Modul dm-verity sa používa na kryptografické overenie integrity koreňového oddielu a ak sa zistí pokus o úpravu údajov na úrovni blokového zariadenia, systém sa reštartuje.

Väčšina systémových komponentov je napísaná v jazyku Rust, ktorý poskytuje funkcie bezpečné pre pamäť, aby sa predišlo zraniteľnostiam spôsobeným prístupmi do pamäte po uvoľnení, dereferencemi nulového ukazovateľa a pretečením vyrovnávacej pamäte. Pri štandardnom zostavovaní sa režimy kompilácie "-enable-default-pie" a "-enable-default-ssp" používajú na umožnenie náhodného usporiadania priestoru adries spustiteľného súboru (PIE) a ochrany proti pretečeniu zásobníka prostredníctvom náhrady canary. Pre balíky napísané v C/C++ sú navyše príznaky „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ a „-fstack-clash“. povolená -ochrana“.

V novom vydaní:

  • Opravené chyby zabezpečenia v dockeroch a runtime kontajnerových nástrojoch (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) súvisiace s nesprávnym nastavením prístupových práv, ktoré umožňovali neprivilegovaným používateľom ísť nad rámec základne adresár a spúšťať externé programy.
  • Pre kubelet a pluto bola pridaná podpora IPv6.
  • Po zmene nastavení je možné kontajner reštartovať.
  • Do balíka eni-max-pods bola pridaná podpora pre inštancie Amazon EC2 M6i.
  • Open-vm-tools pridali podporu pre filtre zariadení na základe sady nástrojov Cilium.
  • Pre platformu x86_64 je implementovaný hybridný bootovací režim (s podporou EFI a BIOS).
  • Aktualizované verzie balíkov a závislosti pre jazyk Rust.
  • Podpora pre distribučný variant aws-k8s-1.17 založený na Kubernetes 1.17 bola ukončená. Odporúča sa používať verziu aws-k8s-1.21 s podporou Kubernetes 1.21. Varianty k8s používajú nastavenia cgroup runtime.slice a system.slice.

Zdroj: opennet.ru

Pridať komentár