Release van Bottlerocket 1.7, een distributie gebaseerd op geïsoleerde containers

De release van de Bottlerocket 1.7.0 Linux-distributie is gepubliceerd, ontwikkeld met de medewerking van Amazon om geïsoleerde containers effectief en veilig te laten werken. De toolkit en besturingscomponenten van de distributie zijn geschreven in Rust en gedistribueerd onder de MIT- en Apache 2.0-licenties. Het ondersteunt het uitvoeren van Bottlerocket op Amazon ECS-, VMware- en AWS EKS Kubernetes-clusters, evenals het maken van aangepaste builds en edities die verschillende orkestratie- en runtime-tools voor containers mogelijk maken.

De distributie biedt een atomisch en automatisch bijgewerkt ondeelbaar systeemimage dat de Linux-kernel bevat en een minimale systeemomgeving die alleen de componenten bevat die nodig zijn om containers te laten draaien. De omgeving omvat de systemd-systeembeheerder, de Glibc-bibliotheek, de Buildroot-buildtool, de GRUB-bootloader, de slechte netwerkconfigurator, de geïsoleerde containerruntime van de container, het Kubernetes-containerorkestratieplatform, de aws-iam-authenticator en de Amazon ECS-agent .

De containerorkestratietools worden geleverd in een afzonderlijke beheercontainer die standaard is ingeschakeld en wordt beheerd via de API en AWS SSM Agent. De basisafbeelding mist een opdrachtshell, een SSH-server en geïnterpreteerde talen (bijvoorbeeld geen Python of Perl) - administratieve en foutopsporingstools worden verplaatst naar een aparte servicecontainer, die standaard is uitgeschakeld.

Het belangrijkste verschil met vergelijkbare distributies zoals Fedora CoreOS, CentOS/Red Hat Atomic Host is de primaire focus op het bieden van maximale beveiliging in de context van het versterken van de systeembescherming tegen mogelijke bedreigingen, het compliceren van de exploitatie van kwetsbaarheden in OS-componenten en het vergroten van containerisolatie. Containers worden gemaakt met behulp van de reguliere mechanismen van de Linux-kernel - cgroups, namespaces en seccomp. Voor extra isolatie gebruikt de distributie SELinux in "afdwingende" modus.

De rootpartitie wordt in alleen-lezen-modus aangekoppeld en de partitie met /etc-instellingen wordt in tmpfs aangekoppeld 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 verplaatsen naar afzonderlijke containers. Voor cryptografische verificatie van de integriteit van de rootpartitie wordt de dm-verity-module gebruikt en als een poging wordt gedetecteerd om gegevens op blokapparaatniveau te wijzigen, wordt het systeem opnieuw opgestart.

De meeste systeemcomponenten zijn geschreven in Rust, dat geheugenveilige tools biedt om kwetsbaarheden te voorkomen die worden veroorzaakt door het adresseren van een geheugengebied nadat het is vrijgegeven, het verwijderen van verwijzingen naar null-pointers en bufferoverschrijdingen. Bij het bouwen worden standaard de compilatiemodi "--enable-default-pie" en "--enable-default-ssp" gebruikt om uitvoerbare adresruimte-randomisatie (PIE) en bescherming tegen stack-overflows door middel van canary-labelvervanging mogelijk te maken. Voor pakketten geschreven in C/C++ zijn de vlaggen "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" en "-fstack-clash" extra inbegrepen -bescherming.

In de nieuwe uitgave:

  • Bij het installeren van RPM-pakketten is het mogelijk om een ​​lijst met programma's in JSON-indeling te genereren en deze in de hostcontainer te koppelen als het bestand /var/lib/bottlerocket/inventory/application.json om informatie over beschikbare pakketten te verkrijgen.
  • De containers “admin” en “control” zijn bijgewerkt.
  • Bijgewerkte pakketversies en afhankelijkheden voor de Go- en Rust-talen.
  • Bijgewerkte versies van pakketten met programma's van derden.
  • Configuratieproblemen met tmpfilesd voor kmod-5.10-nvidia opgelost.
  • Bij het installeren van tuftool worden afhankelijkheidsversies gekoppeld.

Bron: opennet.ru

Voeg een reactie