Lëshimi i Bottlerocket 1.3, një shpërndarje e bazuar në konteinerë të izoluar

Është publikuar versioni 1.3.0 i distribucionit Linux Bottlerocket, i zhvilluar në bashkëpunim me kompaninë Amazon për një lançim efikas dhe të sigurt të konteinerëve të izoluar. Instrumentet dhe komponentët menaxher të distribucionit janë shkruar në gjuhën Rust dhe shpërndahen nën licencat MIT dhe Apache 2.0. Bottlerocket mbështet ekzekutimin në klasterët Amazon ECS, VMware dhe AWS EKS Kubernetes, si dhe krijimin e ndërtimeve dhe redakteve të personalizuara që lejojnë përdorimin e mjeteve të ndryshme të orkestrimit dhe runtime për konteinerët.

Shpërndarja ofron një imazh sistemik të pandarë dhe automatikisht të azhurnueshëm, që përmban bërthamën Linux dhe një ambient minimal sistemik, duke përfshirë vetëm komponentët e nevojshëm për ekzekutimin e konteinerëve. Në ambient janë të angazhuar menaxheri i sistemit systemd, biblioteka Glibc, mjeti i ndërtimit Buildroot, ngarkuesi GRUB, konfiguruesi i rrjetit wicked, runtime për konteinerë të izoluar containerd, platforma e orkestrimit të konteinerëve Kubernetes, autentifikuesi aws-iam-authenticator dhe agjenti Amazon ECS.

Veglat për orkestrimin e kontejnerëve ofrohen në një kontejner të menaxhimit të dedikuar, i cili aktivizohet automatikisht dhe menaxhohet nëpërmjet API dhe AWS SSM Agent. Imazhi bazë nuk ka një shell komandash, server SSH dhe gjuhët interpretuese (p.sh., nuk ka Python ose Perl) — mjete për administratorin dhe instrumentet e debugging janë transferuar në një kontejner shërbimi të dedikuar, i cili është i çaktivizuar nga default.

Dallimi kyç nga distribucione të ngjashme, si Fedora CoreOS, CentOS/Red Hat Atomic Host, është orientimi fillestar drejt ofrimit të sigurisë maksimale në kontekstin e rritjes së mbrojtjes së sistemit nga kërcënimet e mundshme, komplikuar të shfrytëzimit të dobësive në komponentët e OS-së dhe rritjes së izolimit të kontejnerëve. Kontejnerët krijohen me ndihmën e mekanizmave standard të bërthamës Linux — cgroups, hapësirat emërore dhe seccomp. Për izolim të mëtejshëm, në distribucion aplikohet SELinux në modin "enforcing".

Kështu, ndarja kryesore montrohet në mënyrë vetëm për lexim, ndërsa ndarja me parametrat /etc montrohet në tmpfs dhe rikthen gjendjen e saj origjinale pas rinisjes. Ndryshimi direkt i skedareve në katalogun /etc, si /etc/resolv.conf dhe /etc/containerd/config.toml, nuk mbështetet — për ruajtjen e qëndrueshme të cilësimeve, duhet përdorur API ose të transferoni funksionalitetin në konteinerë të veçantë. Për verifikimin kriptografik të integritetit të ndarjes kryesore përdoret moduli dm-verity, dhe në rast të zbulimit të një përpjekjeje për të modifikuar të dhënat në nivelin e pajisjes bllokuese, sistemi rinstalohet.

Shumica e komponenteve sistemore janë shkruar në gjuhën Rust, që ofron mjete për punë të sigurt me memorie, duke shmangur dobësitë e shkaktuara nga qasja në zonat e memories pas lirimit të saj, dereferencimin e treguesve null dhe daljen përtej kufijve të tamponëve. Gjatë ndërtimit me parametra të paracaktuar, përdoren modet e kompilimit "--enable-default-pie" dhe "--enable-default-ssp" për të mundësuar randomizimin e adresës së hapësirës së skedarëve ekzekutues (PIE) dhe mbrojtjen nga mbipleshja e stack-ut përmes zëvendësimit të etiketave kanarinë. Për paketat e shkruara në gjuhën C/C++, përfshihen gjithashtu flamujt "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" dhe "-fstack-clash-protection".

Në lëshimin e ri:

  • Janë eliminuar vulnerabilitetet në mjetin docker dhe runtime containerd (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103), që ishin të lidhura me vendosjen e gabuar të të drejtave të aksesit, duke lejuar përdoruesit e pa privilegjuar të tejkalojnë direktorin bazë dhe të ekzekutojnë programe të jashtme.
  • Në kubelet dhe pluto është shtuar mbështetje IPv6.
  • është ofruar mundësia për të rilëshuar konteinerin pas ndryshimit të konfigurimeve të tij.
  • Në paketën eni-max-pods është shtuar mbështetje për instancat Amazon EC2 M6i.
  • Në open-vm-tools është shtuar mbështetje për filtrat e pajisjeve, e cila realizohet mbi bazën e mjeteve Cilium.
  • Për platformën x86_64 është realizuar një mod hibrid ngarkimi (me mbështetje për EFI dhe BIOS).
  • Përditësohen versionet e pakove dhe varësive për gjuhën Rust.
  • Është ndërprerë mbështetja për variantin e distribucionit aws-k8s-1.17 mbi bazën e Kubernetes 1.17. Rekomandohet të përdoret varianti aws-k8s-1.21 me mbështetje për Kubernetes 1.21. Në variantet k8s janë aktivizuar cilësimet cgroup runtime.slice dhe system.slice.

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster