Amazon publiceert Bottlerocket 1.0.0, een Linux-distributie gebaseerd op geïsoleerde containers

Amazon-bedrijf gepresenteerd eerste belangrijke release van een speciale Linux-distributie Flessenraket 1.0.0, ontworpen om geïsoleerde containers efficiënt en veilig te laten werken. De tools en besturingscomponenten van de distributie zijn geschreven in Rust en worden verspreid onder MIT- en Apache 2.0-licenties. Het project wordt ontwikkeld op GitHub en is beschikbaar voor deelname door communityleden. De systeemimplementatieimage wordt gegenereerd voor x86_64- en Aarch64-architecturen. Het besturingssysteem is aangepast om te draaien op Amazon ECS- en AWS EKS Kubernetes-clusters. Voorzien tools voor het maken van uw eigen assemblages en edities, die andere orkestratietools, kernels en runtime voor containers kunnen gebruiken.

De distributie biedt de Linux-kernel en een minimale systeemomgeving, inclusief alleen de componenten die nodig zijn om containers te draaien. Tot de pakketten die bij het project betrokken zijn, behoren de systeembeheerder systemd, de Glibc-bibliotheek en de assemblagetools
Buildroot, GRUB-bootloader, netwerkconfigurator slecht, runtime voor geïsoleerde containers bevat, Kubernetes containerorkestratieplatform, aws-iam-authenticator en Amazon ECS-agent.

De distributie wordt atomair bijgewerkt en wordt geleverd in de vorm van een ondeelbaar systeembeeld. Er worden twee schijfpartities toegewezen aan het systeem, waarvan er één het actieve systeem bevat, en de update wordt naar de tweede gekopieerd. Nadat de update is geïmplementeerd, wordt de tweede partitie actief en in de eerste wordt, totdat de volgende update arriveert, de vorige versie van het systeem opgeslagen, waarnaar u kunt teruggaan als er zich problemen voordoen. Updates worden automatisch geïnstalleerd zonder tussenkomst van de beheerder.

Het belangrijkste verschil met vergelijkbare distributies zoals Fedora CoreOS, CentOS/Red Hat Atomic Host is de primaire focus op het bieden van maximale veiligheid in de context van het versterken van de systeembescherming tegen mogelijke bedreigingen, waardoor het moeilijker wordt om kwetsbaarheden in OS-componenten te exploiteren en de isolatie van containers te vergroten. Containers worden gemaakt met behulp van standaard Linux-kernelmechanismen: cgroups, naamruimten en seccomp. Voor extra isolatie gebruikt de distributie SELinux in de “afdwingende” modus, en de module wordt gebruikt voor cryptografische verificatie van de integriteit van de rootpartitie dm-Verity. Als er een poging wordt gedetecteerd om gegevens op blokapparaatniveau te wijzigen, wordt het systeem opnieuw opgestart.

De rootpartitie is alleen-lezen aangekoppeld, en de instellingenpartitie /etc is aangekoppeld in tmpfs en na een herstart in de oorspronkelijke staat hersteld. Directe wijziging van bestanden in de map /etc, zoals /etc/resolv.conf en /etc/containerd/config.toml, wordt niet ondersteund. Om instellingen permanent op te slaan, moet u de API gebruiken of de functionaliteit naar aparte containers verplaatsen.

De meeste systeemcomponenten zijn geschreven in Rust, dat geheugenveilige functies biedt om kwetsbaarheden te voorkomen die worden veroorzaakt door geheugentoegang na vrije toegang, null pointer-dereferenties en bufferoverruns. Bij het standaard bouwen worden de compilatiemodi “--enable-default-pie” en “--enable-default-ssp” gebruikt om randomisatie van de adresruimte van uitvoerbare bestanden mogelijk te maken (TAART) en stack-overflow-beveiliging via kanarie-vervanging.
Voor pakketten geschreven in C/C++ zijn extra vlaggen inbegrepen
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" en "-fstack-clash-protection".

Containerorkestratietools worden afzonderlijk geleverd controle container, dat standaard is ingeschakeld en wordt beheerd via API en AWS SSM-agent. De basisimage mist een opdrachtshell, SSH-server en geïnterpreteerde talen (bijvoorbeeld geen Python of Perl) - administratieve tools en foutopsporingstools bevinden zich in aparte servicecontainer, wat standaard is uitgeschakeld.

Bron: opennet.ru

Voeg een reactie