Bottlerocket 1.3:n julkaisu, eristettyihin konteihin perustuva jakelu

Linux-jakelun Bottlerocket 1.3.0 julkaisu on julkaistu, ja se on kehitetty yhdessä Amazonin kanssa eristettyjen säiliöiden tehokkaaseen ja turvalliseen käynnistämiseen. Jakelun työkalut ja ohjauskomponentit on kirjoitettu Rust-kielellä ja niitä jaetaan MIT- ja Apache 2.0 -lisensseillä. Se tukee Bottlerocketin suorittamista Amazon ECS-, VMware- ja AWS EKS Kubernetes -klustereissa sekä mukautettujen koontiversioiden ja versioiden luomista, jotka mahdollistavat erilaisten orkestrointi- ja ajonaikaisten työkalujen käytön säilöille.

Jakelu tarjoaa atomisesti ja automaattisesti päivitetyn jakamattoman järjestelmäkuvan, joka sisältää Linux-ytimen ja minimaalisen järjestelmäympäristön, joka sisältää vain säilöjen suorittamiseen tarvittavat komponentit. Ympäristö sisältää systemd-järjestelmänhallinnan, Glibc-kirjaston, Buildroot-koontityökalun, GRUB-käynnistyslataimen, ilkeän verkon konfiguraattorin, yksittäisten säilöjen konttiajon, Kubernetes-säilön orkestrointialustan, aws-iam-authenticatorin ja Amazonin. ECS-agentti.

Säilön organisointityökalut toimitetaan erillisessä hallintasäiliössä, joka on oletuksena käytössä ja jota hallitaan API:n ja AWS SSM Agentin kautta. Peruskuvasta puuttuu komentokulli, SSH-palvelin ja tulkitut kielet (esim. ei Python tai Perl) - hallintatyökalut ja virheenkorjaustyökalut sijoitetaan erilliseen palvelusäiliöön, joka on oletuksena pois käytöstä.

Keskeinen ero samankaltaisiin jakeluihin, kuten Fedora CoreOS, CentOS/Red Hat Atomic Host, on ensisijainen painopiste maksimaalisen turvallisuuden tarjoamisessa vahvistettaessa järjestelmän suojaa mahdollisilta uhkilta, mikä vaikeuttaa käyttöjärjestelmän komponenttien haavoittuvuuksien hyödyntämistä ja lisää kontin eristäytymistä. . Säilöt luodaan käyttämällä tavallisia Linux-ytimen mekanismeja - cgroups, namespaces ja seccomp. Lisäeristystä varten jakelu käyttää SELinuxia "enforcing"-tilassa.

Juuriosio asennetaan vain luku -tilassa, ja /etc-asetukset-osio liitetään tmpfs-tiedostoon ja palautetaan alkuperäiseen tilaan uudelleenkäynnistyksen jälkeen. /etc-hakemistossa olevien tiedostojen, kuten /etc/resolv.conf ja /etc/containerd/config.toml, suoraa muokkaamista ei tueta - jos haluat tallentaa asetukset pysyvästi, sinun on käytettävä API:ta tai siirrettävä toiminnallisuus erillisiin säilöihin. Dm-verity-moduulia käytetään juuriosion eheyden salaustarkistukseen, ja jos havaitaan yritys muokata tietoja lohkolaitetasolla, järjestelmä käynnistyy uudelleen.

Useimmat järjestelmäkomponentit on kirjoitettu Rust-kielellä, joka tarjoaa muistia turvallisia ominaisuuksia, joilla vältetään haavoittuvuudet, jotka aiheutuvat vapaan muistin käytön jälkeen, nollaosoittimen viittauksista ja puskurin ylityksistä. Kun rakennetaan oletusarvoisesti, käännöstiloja "-enable-default-pie" ja "-enable-default-ssp" käytetään mahdollistamaan suoritettavan tiedoston osoiteavaruuden (PIE) satunnaistaminen ja suojaus pinon ylivuodoilta kanarian korvaamisen kautta. C/C++-kielellä kirjoitetuissa paketeissa on lisäksi liput "-Wall", "-Worror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash". käytössä -suojaus".

Uudessa julkaisussa:

  • Korjattu telakointityökalujen ja ajonaikaisten konttityökalujen (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103, CVE-XNUMX-XNUMX) haavoittuvuudet, jotka liittyvät käyttöoikeuksien virheelliseen asettamiseen, mikä mahdollisti etuoikeutettujen käyttäjien ylittämisen peruskäyttäjät. hakemistoon ja suorittaa ulkoisia ohjelmia.
  • IPv6-tuki on lisätty kubeletille ja plutolle.
  • Säiliö on mahdollista käynnistää uudelleen sen asetusten muuttamisen jälkeen.
  • Tuki Amazon EC2 M6i -esiintymille on lisätty eni-max-pods -pakettiin.
  • Open-vm-tools on lisännyt tuen laitesuodattimille, jotka perustuvat Cilium-työkalupakettiin.
  • x86_64-alustalle on toteutettu hybridikäynnistystila (EFI- ja BIOS-tuella).
  • Päivitetyt pakettiversiot ja riippuvuudet Rust-kielelle.
  • Kubernetes 8:ään perustuvan jakeluversion aws-k1.17s-1.17 tuki on lopetettu. On suositeltavaa käyttää aws-k8s-1.21-versiota Kubernetes 1.21 -tuen kanssa. K8s-muunnelmat käyttävät cgroup runtime.slice- ja system.slice-asetuksia.

Lähde: opennet.ru

Lisää kommentti