Megjelent a Bottlerocket 1.8.0 Linux-disztribúció, amelyet az Amazon közreműködésével fejlesztenek az izolált konténerek hatékony és biztonságos indítására. A disztribúció eszközei és kezelőkomponensei Rust nyelven íródtak, és az MIT és Apache 2.0 licenc alatt elérhetők. Támogatott a Bottlerocket futtatása az Amazon ECS, VMware és AWS EKS Kubernetes klaszterekben, valamint egyedi felépítések és változatok létrehozása, amelyek különböző konténer-orkesztáló és futási eszközök alkalmazását lehetővé teszik.
A disztribúció atomikus és automatikusan frissíthető, oszthatatlan rendszerképet biztosít, amely tartalmazza a Linux magot és a minimális rendszerkörnyezetet, amely csak a konténerek indításához szükséges összetevőket tartalmazza. A környezetben aktív a systemd rendszerkezelő, a Glibc könyvtár, a Buildroot építési eszközkészlet, a GRUB indítóprogram, a wicked hálózati konfiguráló, az izolált konténerek runtime-ja, a containerd, a Kubernetes konténerorkésztráló platform, az aws-iam-authenticator hitelesítő és az Amazon ECS ügynök.
A konténerorkesztráló eszközök külön vezérlőkonténerben találhatók, amely alapértelmezetten be van kapcsolva és az API-n, valamint az AWS SSM Agent-en keresztül kezelhető. Az alapképből hiányzik a parancssor. szerver SSH és értelmezett nyelvek (például nincs Python vagy Perl) — az adminisztrátor és hibakereső eszközök egy külön szolgáltató konténerbe kerülnek, amely alapértelmezetten ki van kapcsolva.
A hasonló disztribúcióktól, mint a Fedora CoreOS, CentOS/Red Hat Atomic Host, eltérően a legfőbb különbség a maximális biztonság biztosítása felé irányul, figyelembe véve a rendszer védelmét a lehetséges fenyegetésekkel szemben, a sérülékenységek kihasználásának megnehezítését az operációs rendszer elemeiben, és a konténerek szigetelésének fokozását. A konténerek a Linux mag beépített mechanizmusainak — cgroups, névtér és seccomp — segítségével készülnek. További szigetelés érdekében a disztribúcióban SELinux „enforcing” üzemmódba van állítva.
A gyökérpartíció csak olvasásra van csatolva, az /etc beállításait tartalmazó partíció tmpfs formátumban van csatolva, és újraállítja az eredeti állapotát újraindítás után. Az /etc könyvtárban lévő fájlok, mint például az /etc/resolv.conf és az /etc/containerd/config.toml közvetlen módosítása nem támogatott – a beállítások tartós megőrzéséhez az API-t kell használni, vagy a funkciókat külön konténerekbe kell kihelyezni. A gyökérpartíció integritásának kriptográfiai ellenőrzésére a dm-verity modul kerül felhasználásra, és ha bármilyen adatmódosítási kísérletet észlel a blokkszintű eszközökön, a rendszer újraindul.
A legtöbb rendszerkomponens Rust nyelven íródott, amely biztonságos memóriakezelési eszközöket biztosít, lehetővé téve az olyan sebezhetőségek elkerülését, mint a memória területére való hivatkozás felszabadítás után, a null-pontra való dereferálás és a puffer túllépés. Az alapértelmezett fordítási módok között alkalmazzák a „—enable-default-pie” és a „—enable-default-ssp” beállításokat, a végrehajtható állományok (PIE) címének véletlenszerűsítésére és a verem túlcsordulás elleni védelmet olyan kanárlapok helyettesítésével. C/C++ nyelven írt csomagok esetén további kapcsolók, mint a „-Wall”, „-Werror=format-security”, „-Wp,-D_FORTIFY_SOURCE=2”, „-Wp,-D_GLIBCXX_ASSERTIONS” és „-fstack-clash-protection” is be vannak kapcsolva.
Az új kiadásban:
- Frissítve az adminisztratív és kezelő konténerek tartalma.
- Izolált konténerek futási környezete frissítve a containerd 1.6.x ágra.
- Biztosítva lett a háttérfolyamatok újraindítása, amelyek koordinálják a konténerek működését a tanúsítványtárban végzett változtatások után.
- Lehetőség nyílt a kernel indítási paramétereinek beállítására a Boot Configuration szekción keresztül.
- A dm-verity segítségével biztosított a gyökérpartíció integritásának ellenőrzésekor az üres blokkok figyelmen kívül hagyása.
- Lehetőség nyílt a gazdagépek neveinek statikus hozzárendelésére a /etc/hosts fájlban.
- Lehetőség nyílt a hálózati konfiguráció generálására a netdog eszközzel (új parancs hozzáadva: generate-net-config).
- Új disztribúciós lehetőségek kerültek javaslatra a Kubernetes 1.23 támogatásával. Csökkentették a podok indítási idejét a Kubernetesben a configMapAndSecretChangeDetectionStrategy mód letiltásával. Új kubelet beállítások kerültek bevezetésre: provider-id és podPidsLimit.
- Új disztribúciós lehetőség javasolt: «aws-ecs-1-nvidia» az Amazon Elastic Container Service (Amazon ECS) számára, NVIDIA driverekkel szállítva.
- Támogatást nyert a Microchip Smart Storage és MegaRAID SAS tárolók. Kiterjesztették a Broadcom chipjein alapuló Ethernet kártyák támogatását.
- Frissítve a Go és Rust nyelvű csomagok verzióit, valamint a harmadik féltől származó programok csomagjait. A Bottlerocket SDK frissítve lett a 0.26.0 verzióra.
Forrás: opennet.ru
