Veröffentlichung von Bottlerocket 1.7, einer Distribution, die auf isolierten Containern basiert

Das Release der Linux-Distribution Bottlerocket 1.7.0 wurde veröffentlicht, die unter Beteiligung von Amazon für den effizienten und sicheren Start isolierter Container entwickelt wurde. Die Tools und Steuerungskomponenten der Distribution sind in Rust geschrieben und werden unter den MIT- und Apache 2.0-Lizenzen vertrieben. Es unterstützt die Ausführung von Bottlerocket auf Amazon ECS-, VMware- und AWS EKS Kubernetes-Clustern sowie die Erstellung benutzerdefinierter Builds und Editionen, die die Verwendung verschiedener Orchestrierungs- und Laufzeittools für Container ermöglichen.

Die Distribution stellt ein atomar und automatisch aktualisiertes, unteilbares Systemabbild bereit, das den Linux-Kernel und eine minimale Systemumgebung enthält, einschließlich nur der Komponenten, die zum Ausführen von Containern erforderlich sind. Die Umgebung umfasst den systemd-Systemmanager, die Glibc-Bibliothek, das Buildroot-Build-Tool, den GRUB-Bootloader, den Wicked Network Configurator, die Containerd-Laufzeit für isolierte Container, die Kubernetes-Container-Orchestrierungsplattform, den aws-iam-authenticator und Amazon ECS-Agent.

Container-Orchestrierungstools werden in einem separaten Verwaltungscontainer geliefert, der standardmäßig aktiviert ist und über die API und den AWS SSM-Agenten verwaltet wird. Dem Basis-Image fehlen eine Befehlsshell, ein SSH-Server und interpretierte Sprachen (z. B. kein Python oder Perl) – Verwaltungstools und Debugging-Tools werden in einem separaten Service-Container platziert, der standardmäßig deaktiviert ist.

Der Hauptunterschied zu ähnlichen Distributionen wie Fedora CoreOS, CentOS/Red Hat Atomic Host ist der primäre Fokus auf die Bereitstellung maximaler Sicherheit im Zusammenhang mit der Stärkung des Systemschutzes vor möglichen Bedrohungen, der Erschwerung der Ausnutzung von Schwachstellen in Betriebssystemkomponenten und der Erhöhung der Containerisolation . Container werden mit Standard-Linux-Kernel-Mechanismen erstellt – cgroups, Namespaces und seccomp. Für zusätzliche Isolation verwendet die Distribution SELinux im „Enforcing“-Modus.

Die Root-Partition wird schreibgeschützt gemountet, und die /etc-Einstellungspartition wird in tmpfs gemountet und nach einem Neustart in ihren ursprünglichen Zustand zurückversetzt. Die direkte Änderung von Dateien im Verzeichnis /etc, wie z. B. /etc/resolv.conf und /etc/containerd/config.toml, wird nicht unterstützt. Um Einstellungen dauerhaft zu speichern, müssen Sie die API verwenden oder die Funktionalität in separate Container verschieben. Das dm-verity-Modul wird verwendet, um die Integrität der Root-Partition kryptografisch zu überprüfen. Wenn ein Versuch erkannt wird, Daten auf Blockgeräteebene zu ändern, wird das System neu gestartet.

Die meisten Systemkomponenten sind in Rust geschrieben, das speichersichere Funktionen bietet, um Schwachstellen zu vermeiden, die durch After-Free-Speicherzugriffe, Nullzeiger-Dereferenzierungen und Pufferüberläufe verursacht werden. Beim Erstellen werden standardmäßig die Kompilierungsmodi „-enable-default-pie“ und „-enable-default-ssp“ verwendet, um die Randomisierung des ausführbaren Dateiadressraums (PIE) und den Schutz vor Stapelüberläufen durch Canary-Substitution zu ermöglichen. Für in C/C++ geschriebene Pakete gelten zusätzlich die Flags „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ und „-fstack-clash“. aktiviert -Schutz".

In der neuen Version:

  • Bei der Installation von RPM-Paketen ist es möglich, eine Liste von Programmen im JSON-Format zu generieren und diese als Datei /var/lib/bottlerocket/inventory/application.json in den Host-Container einzubinden, um Informationen über verfügbare Pakete zu erhalten.
  • Die Container „admin“ und „control“ wurden aktualisiert.
  • Aktualisierte Paketversionen und Abhängigkeiten für die Sprachen Go und Rust.
  • Aktualisierte Versionen von Paketen mit Programmen von Drittanbietern.
  • tmpfilesd-Konfigurationsprobleme für kmod-5.10-nvidia behoben.
  • Bei der Installation von tuftool werden Abhängigkeitsversionen verknüpft.

Source: opennet.ru

Kommentar hinzufügen