Problemet er blevet offentliggjort LinuxBottlerocket 1.3.0, en distribution udviklet i samarbejde med Amazon, er designet til effektivt og sikkert at køre isolerede containere. Distributionens værktøjs- og kontrolkomponenter er skrevet i Rust og licenseret under MIT- og Apache 2.0-licenserne. Bottlerocket kører på Amazon ECS-, VMware- og AWS EKS Kubernetes-klynger og understøtter desuden brugerdefinerede builds og udgaver, der understøtter brugen af forskellige containerorkestrerings- og runtime-værktøjer.
Distributionen leverer et atomisk og automatisk opdateret udeleligt systembillede, inklusive kernen Linux og et minimalt systemmiljø, der kun inkluderer de komponenter, der er nødvendige for at køre containere. Dette miljø inkluderer systemd system manager, Glibc-biblioteket, Buildroot build toolchain, GRUB bootloader, wicked network configurator, containerd runtime til isolerede containere, Kubernetes container orchestration platform, aws-iam-authenticator authenticator og Amazon ECS agent.
Containerorkestreringsværktøjer leveres i en separat administrationscontainer, som er aktiveret som standard og administreres via API'en og AWS SSM Agent. Basisbilledet indeholder ikke en kommandoshell. server SSH og fortolkede sprog (f.eks. ingen Python eller Perl) - administrations- og fejlfindingsværktøjer er placeret i en separat servicecontainer, som som standard er deaktiveret.
Den vigtigste forskel fra lignende distributioner som Fedora CoreOS er CentOSRed Hat Atomic Host fokuserer primært på at yde maksimal sikkerhed ved at forbedre systembeskyttelsen mod potentielle trusler, komplicere udnyttelsen af sårbarheder i OS-komponenter og øge containerisoleringen. Containere oprettes ved hjælp af native kernemekanismer. Linux — cgroups, navnerum og seccomp. For yderligere isolering bruger distributionen SELinux i "håndhævelses"-tilstand.
Rodpartitionen er monteret skrivebeskyttet, og /etc-indstillingspartitionen monteres i tmpfs og gendannes til sin oprindelige tilstand efter en genstart. Direkte ændring af filer i /etc-mappen, såsom /etc/resolv.conf og /etc/containerd/config.toml, understøttes ikke - for at gemme indstillinger permanent, skal du bruge API'et eller flytte funktionaliteten til separate containere. dm-verity-modulet bruges til kryptografisk at verificere integriteten af rodpartitionen, og hvis der opdages et forsøg på at ændre data på blokenhedsniveau, genstarter systemet.
De fleste systemkomponenter er skrevet i Rust, som giver hukommelsessikre funktioner for at undgå sårbarheder forårsaget af efterfri hukommelsesadgang, nul pointer-dereferencer og bufferoverskridelser. Når der bygges som standard, bruges kompileringstilstandene "-enable-default-pie" og "-enable-default-ssp" til at muliggøre randomisering af det eksekverbare filadresserum (PIE) og beskyttelse mod stak-overløb gennem canary substitution. For pakker skrevet i C/C++ er flagene "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash" desuden aktiveret -beskyttelse".
I den nye udgivelse:
- Rettede sårbarheder i docker- og runtime containerd-værktøjer (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) relateret til forkert indstilling af adgangsrettigheder, hvilket tillod uprivilegerede brugere at gå ud over basen mappe og eksekver eksterne programmer.
- Tilføjet til kubelet og pluto IPv6-understøttelse.
- Det er muligt at genstarte beholderen efter at have ændret dens indstillinger.
- Understøttelse af Amazon EC2 M6i-instanser er blevet tilføjet til eni-max-pods-pakken.
- Open-vm-tools har tilføjet understøttelse af enhedsfiltre, baseret på Cilium-værktøjssættet.
- For x86_64-platformen er en hybrid boot-tilstand implementeret (med understøttelse af EFI og BIOS).
- Opdaterede pakkeversioner og afhængigheder for Rust-sproget.
- Support til distributionsvarianten aws-k8s-1.17 baseret på Kubernetes 1.17 er afbrudt. Det anbefales at bruge aws-k8s-1.21-versionen med understøttelse af Kubernetes 1.21. K8s-varianterne bruger indstillingerne cgroup runtime.slice og system.slice.
Kilde: opennet.ru
