Megjelent a Bottlerocket 1.1.0 Linux disztribúció, amelyet az Amazon közreműködésével fejlesztenek az elszigetelt konténerek hatékony és biztonságos indításához. A disztribúció eszközei és vezérlő komponensei Rust nyelven íródtak, és MIT valamint Apache 2.0 licenc alatt érhetők el. Támogatja a Bottlerocket indítását az Amazon ECS és AWS EKS Kubernetes klaszterekben, valamint egyedi build-ek és kiadások készítését, amelyek lehetővé teszik különféle orchestráló és runtime eszközök alkalmazását a konténerek számára.
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:
- Két új variáns került javaslatra: aws-k8s-1.20 és vmware-k8s-1.20, amelyek támogatják a Kubernetes 1.20 verziót. Ezekben a variánsokban, valamint az újragondolt aws-ecs-1 verzióban, egy új Linux kernel 5.10-es kiadása található. Az alapértelmezett lockdown mód "integrity" értékre lett állítva (blokkolja azokat a lehetőségeket, amelyek lehetővé teszik, hogy a felhasználói térből módosításokat végezzenek a futó kernelen). Leállt az aws-k8s-1.15 verzió támogatása, amely a Kubernetes 1.15-ön alapult.
- Az Amazon ECS-hez hozzáadásra került az awsvpc hálózati mód támogatása, amely lehetővé teszi különböző hálózati interfészek és belső IP address kiosztását minden egyes feladat számára.
- Beállításokat adtak hozzá a Kubernetes különböző paramétereinek kezelésére, beleértve a QPS-t, a pool limiteket és a lehetőséget, hogy csatlakozzanak egyéb felhőszolgáltatókhoz, nem csak az AWS-hez.
- A bootstrap konténerben SELinux segítségével korlátozták a felhasználói adatokhoz való hozzáférést.
- Hozzáadták a resize2fs segédprogramot.
Forrás: opennet.ru
