Megjelent a Bottlerocket 1.7.0 Linux-disztribúció, amelyet az Amazon közreműködésével fejlesztenek, hogy hatékony és biztonságos módon indítsanak el elszigetelt konténereket. A disztribúció eszközei és vezérlő komponensei Rust nyelven íródtak és MIT és Apache 2.0 licenc alatt érhetők el. A Bottlerocket indítása támogatott az Amazon ECS, VMware és AWS EKS Kubernetes klaszterekben, valamint egyedi build-ek és kiadások létrehozása is lehetséges, amelyek különböző konténer-orchestration és runtime eszközök használatát teszik lehetővé.
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:
- RPM-csomagok telepítésekor a programok listájának JSON formátumban történő generálása biztosított, amelyet a host-konténerbe csatolnak, mint fájlt /var/lib/bottlerocket/inventory/application.json, hogy információt kapjunk az elérhető csomagokról.
- Frissítettük az "admin" és "control" konténereket.
- Frissültek a Go és Rust nyelvek csomagjainak verziói és függőségei.
- Frissültek a külső programok csomagjainak verziói.
- Megoldva a tmpfilesd kmod-5.10-nvidia konfigurációs problémái.
- A tuftool telepítésekor a függőségek verzióinak hozzárendelése biztosított.
Forrás: opennet.ru
