Amazon objavljuje Bottlerocket 1.0.0, distribuciju Linuxa temeljenu na izoliranim spremnicima

tvrtka Amazon predstavio prvo značajno izdanje namjenske distribucije Linuxa Flaša za boce 1.0.0, dizajniran za učinkovito i sigurno pokretanje izoliranih spremnika. Distribucijski alati i kontrolne komponente napisani su u Rustu i širenje pod licencama MIT i Apache 2.0. Projekt se razvija na GitHubu i dostupan je za sudjelovanje članovima zajednice. Slika postavljanja sustava generirana je za x86_64 i Aarch64 arhitekture. OS je prilagođen za rad na Amazon ECS i AWS EKS Kubernetes klasterima. su osigurani alati za stvaranje vlastitih sklopova i izdanja, koji mogu koristiti druge alate za orkestraciju, kernele i runtime za spremnike.

Distribucija pruža Linux kernel i minimalno okruženje sustava, uključujući samo komponente potrebne za pokretanje spremnika. Među paketima koji su uključeni u projekt su System Manager systemd, Glibc biblioteka i alati za sklapanje
Buildroot, GRUB bootloader, mrežni konfigurator zao, vrijeme izvođenja za izolirane spremnike kontejnerd, platforma za orkestraciju kontejnera Kubernetes, aws-iam-authenticator i Amazon ECS agent.

Distribucija se ažurira atomski i isporučuje se u obliku nedjeljive slike sustava. Sustavu su dodijeljene dvije particije diska, od kojih jedna sadrži aktivni sustav, a ažuriranje se kopira u drugu. Nakon što se ažuriranje implementira, druga particija postaje aktivna, au prvoj, do sljedećeg ažuriranja, sprema se prethodna verzija sustava na koju se možete vratiti ako se pojave problemi. Ažuriranja se automatski instaliraju bez intervencije administratora.

Ključna razlika u odnosu na slične distribucije kao što su Fedora CoreOS, CentOS/Red Hat Atomic Host je primarni fokus na pružanje maksimalnu sigurnost u kontekstu jačanja zaštite sustava od mogućih prijetnji, otežavanja iskorištavanja ranjivosti u komponentama OS-a i povećanja izolacije spremnika. Spremnici se stvaraju korištenjem standardnih mehanizama Linux kernela - cgroups, namespaces i seccomp. Za dodatnu izolaciju distribucija koristi SELinux u “enforcing” modu, a modul služi za kriptografsku provjeru integriteta root particije dm-istina. Ako se otkrije pokušaj izmjene podataka na razini blok uređaja, sustav se ponovno pokreće.

Korijenska particija je montirana samo za čitanje, a /etc particija postavki je montirana u tmpfs i vraćena u svoje izvorno stanje nakon ponovnog pokretanja. Izravna izmjena datoteka u /etc direktoriju, kao što su /etc/resolv.conf i /etc/containerd/config.toml, nije podržana - da biste trajno spremili postavke, morate koristiti API ili premjestiti funkcionalnost u zasebne spremnike.

Većina komponenti sustava napisana je u Rustu, koji pruža značajke za sigurnost memorije kako bi se izbjegle ranjivosti uzrokovane pristupima memoriji nakon oslobađanja, dereferenciranjem nultog pokazivača i prekoračenjem međuspremnika. Prilikom izrade prema zadanim postavkama, načini kompilacije “--enable-default-pie” i “--enable-default-ssp” koriste se za omogućavanje nasumičnog odabira adresnog prostora izvršnih datoteka (PITA) i zaštitu od prelijevanja stogova putem canary zamjene.
Za pakete napisane u C/C++ uključene su dodatne oznake
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" i "-fstack-clash-protection".

Alati za orkestraciju spremnika isporučuju se zasebno kontrolni spremnik, koji je prema zadanim postavkama omogućen i kontroliran putem API i AWS SSM agent. Osnovnoj slici nedostaje naredbena ljuska, SSH poslužitelj i interpretirani jezici (na primjer, nema Python ili Perl) - administrativni alati i alati za otklanjanje pogrešaka nalaze se u zasebni servisni spremnik, što je prema zadanim postavkama onemogućeno.

Izvor: opennet.ru

Dodajte komentar