Utgivelse av Bottlerocket 1.3, en distribusjon basert på isolerte beholdere

Utgivelsen av Linux-distribusjonen Bottlerocket 1.3.0 er publisert, utviklet med deltagelse av Amazon for effektiv og sikker lansering av isolerte beholdere. Distribusjonens verktøy og kontrollkomponenter er skrevet i Rust og distribuert under MIT- og Apache 2.0-lisensene. Den støtter kjøring av Bottlerocket på Amazon ECS, VMware og AWS EKS Kubernetes-klynger, i tillegg til å lage tilpassede bygg og utgaver som tillater bruk av ulike orkestrerings- og kjøretidsverktøy for containere.

Distribusjonen gir et atomisk og automatisk oppdatert udelelig systembilde som inkluderer Linux-kjernen og et minimalt systemmiljø, inkludert bare komponentene som er nødvendige for å kjøre containere. Miljøet inkluderer systemd systembehandleren, Glibc-biblioteket, Buildroot byggeverktøyet, GRUB oppstartslasteren, den onde nettverkskonfiguratoren, containerd runtime for isolerte containere, Kubernetes container orkestreringsplattform, aws-iam-autenticator og Amazon ECS agent.

Beholderorkestreringsverktøy kommer i en separat administrasjonsbeholder som er aktivert som standard og administrert gjennom API og AWS SSM Agent. Grunnbildet mangler et kommandoskall, SSH-server og tolkede språk (for eksempel ingen Python eller Perl) - administrative verktøy og feilsøkingsverktøy er plassert i en egen tjenestebeholder, som er deaktivert som standard.

Hovedforskjellen fra lignende distribusjoner som Fedora CoreOS, CentOS/Red Hat Atomic Host er det primære fokuset på å gi maksimal sikkerhet i sammenheng med å styrke systembeskyttelsen mot mulige trusler, noe som gjør det vanskeligere å utnytte sårbarheter i OS-komponenter og øke containerisolasjonen . Beholdere lages ved å bruke standard Linux-kjernemekanismer - cgroups, namespaces og seccomp. For ytterligere isolasjon bruker distribusjonen SELinux i "håndhevende" modus.

Rotpartisjonen er montert skrivebeskyttet, og /etc settings-partisjonen monteres i tmpfs og gjenopprettes til sin opprinnelige tilstand etter en omstart. Direkte modifikasjon av filer i /etc-katalogen, slik som /etc/resolv.conf og /etc/containerd/config.toml, støttes ikke - for å lagre innstillinger permanent, må du bruke API eller flytte funksjonaliteten til separate beholdere. dm-verity-modulen brukes til å kryptografisk verifisere integriteten til rotpartisjonen, og hvis det oppdages et forsøk på å endre data på blokkenhetsnivå, starter systemet på nytt.

De fleste systemkomponenter er skrevet i Rust, som gir minnesikre funksjoner for å unngå sårbarheter forårsaket av etterfrie minnetilganger, null-peker-dereferanser og bufferoverskridelser. Når du bygger som standard, brukes kompilasjonsmodusene "-enable-default-pie" og "-enable-default-ssp" for å muliggjøre randomisering av det kjørbare filadresserommet (PIE) og beskyttelse mot stabeloverflyt gjennom kanariebytte. For pakker skrevet i C/C++ er flaggene "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash" i tillegg aktivert -beskyttelse".

I den nye utgivelsen:

  • Rettet sårbarheter i docker og runtime containerd-verktøy (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) relatert til feil innstilling av tilgangsrettigheter, noe som tillot uprivilegerte brukere å gå utover basen katalog og kjøre eksterne programmer.
  • IPv6-støtte er lagt til kubelet og pluto.
  • Det er mulig å starte beholderen på nytt etter å ha endret innstillingene.
  • Støtte for Amazon EC2 M6i-forekomster er lagt til eni-max-pods-pakken.
  • Open-vm-tools har lagt til støtte for enhetsfiltre, basert på Cilium-verktøysettet.
  • For x86_64-plattformen er en hybrid oppstartsmodus implementert (med støtte for EFI og BIOS).
  • Oppdaterte pakkeversjoner og avhengigheter for Rust-språket.
  • Støtte for distribusjonsvarianten aws-k8s-1.17 basert på Kubernetes 1.17 er avviklet. Det anbefales å bruke aws-k8s-1.21-versjonen med støtte for Kubernetes 1.21. K8s-variantene bruker innstillingene for cgroup runtime.slice og system.slice.

Kilde: opennet.ru

Legg til en kommentar