Amazon julkaisee Bottlerocket 1.0.0:n, Linux-jakelun, joka perustuu eristettyihin säilöihin

Amazon yritys esitetty ensimmäinen merkittävä julkaisu Linux-jakelulle Pullotaskun 1.0.0, joka on suunniteltu erillisten säilöjen tehokkaaseen ja turvalliseen käyttöön. Jakelun työkalut ja ohjauskomponentit on kirjoitettu Rust- ja levitän Lisensoitu MIT- ja Apache 2.0 -lisensseillä. Projektia kehitetään GitHubissa ja se on avoin yhteisön osallistumisille. Järjestelmän käyttöönottokuva on rakennettu x86_64- ja Aarch64-arkkitehtuureille. Käyttöjärjestelmä on mukautettu toimimaan Amazon ECS- ja AWS EKS Kubernetes -klustereissa. Tarjotaan työkaluja mukautettujen koontiversioiden ja versioiden luomiseen, jotka voivat käyttää muita orkestrointityökaluja, ytimiä ja säilöjen suoritusympäristöjä.

Jakelu tarjoaa Linux-ytimen ja minimaalisen järjestelmäympäristön, joka sisältää vain konttien suorittamiseen tarvittavat komponentit. Projektissa käytettyihin paketteihin kuuluvat systemd-järjestelmänhallinta, Glibc-kirjasto ja käännöstyökalut.
Buildroot, GRUB-käynnistyslataaja, verkkokonfiguraattori paha, erillisten säilöjen ajonaikainen käyttö kontti, Kubernetes-konttien orkestrointialusta, aws-iam-authenticator-todennustyökalu ja Amazon ECS -agentti.

Jakelu päivittyy atomisesti ja toimitetaan jakamattomana järjestelmäkuvana. Järjestelmälle on varattu kaksi levyosiota, joista toinen sisältää aktiivisen järjestelmän ja toista käytetään päivityksen kopioimiseen. Päivityksen asentamisen jälkeen toinen osio aktivoituu, kun taas ensimmäinen osio tallentaa järjestelmän edellisen version seuraavaan päivitykseen asti, jolloin käyttäjät voivat palata siihen, jos ongelmia ilmenee. Päivitykset asennetaan automaattisesti ilman järjestelmänvalvojan toimia.

Keskeinen ero vastaaviin jakeluihin, kuten Fedora CoreOS ja CentOS/Red Hat Atomic Host, on ensisijainen keskittyminen tarjoamaan maksimaalinen turvallisuus Järjestelmän suojauksen vahvistamiseksi potentiaalisia uhkia vastaan, käyttöjärjestelmäkomponenttien haavoittuvuuksien hyödyntämisen vaikeuttamiseksi ja säilöjen eristämisen lisäämiseksi säilöt luodaan käyttämällä Linux-ytimen vakiomekanismeja – cgroups, namespaces ja seccomp. Lisäeristystä varten jakelu käyttää SELinuxia "valvovassa" tilassa, ja juuriosion eheyden kryptografiseen varmentamiseen käytetään moduulia. dm-verityJos lohkolaitetasolla havaitaan yritys muokata tietoja, järjestelmä käynnistyy uudelleen.

Juuriosio liitetään vain luku -tilassa, ja /etc-määritysosio liitetään tmpfs-osioon ja palauttaa alkuperäisen tilaansa uudelleenkäynnistyksen jälkeen. /etc-hakemiston tiedostojen, kuten /etc/resolv.conf ja /etc/containerd/config.toml, suoraa muokkaamista ei tueta. Jos haluat säilyttää asetukset, käytä API:a tai siirrä tämä toiminto erillisiin säilöihin.

Useimmat järjestelmäkomponentit on kirjoitettu Rust-kielellä, joka tarjoaa muistia turvaavia ominaisuuksia, jotka estävät haavoittuvuuksia, joita aiheuttavat use-after-free-toiminto, null-osoittimen viittausvirhe ja puskurin ylivuoto. Oletuskoonti käyttää "--enable-default-pie"- ja "--enable-default-ssp"-käännöstiloja osoiteavaruuden satunnaistamisen mahdollistamiseksi suoritettaville tiedostoille (PIIRAKKA) ja pinon ylivuotosuojaus canary-substituution avulla.
C/C++:lla kirjoitettujen pakettien osalta on lisätty asetuksia.
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash-protection".

Konttien orkestrointityökalut toimitetaan erikseen ohjaussäiliö, joka on oletuksena käytössä ja jota ohjataan API ja AWS SSM Agent. Peruslevykuvasta puuttuu komentotulkki, SSH-palvelin ja tulkitut kielet (esimerkiksi ei Pythonia tai Perliä) – järjestelmänvalvojan työkalut ja virheenkorjaustyökalut sijaitsevat erillinen huoltosäiliö, joka on oletuksena poistettu käytöstä.

Lähde: opennet.ru

Lisää kommentti