Die Veröffentlichung der Linux-Distribution Bottlerocket 1.7.0 wurde bekannt gegeben, die mit UnterstĂŒtzung von Amazon fĂŒr den effizienten und sicheren Betrieb isolierter Container entwickelt wird. Die Werkzeuge und Verwaltungsbestandteile der Distribution sind in der Programmiersprache Rust geschrieben und unter den Lizenzen MIT und Apache 2.0 erhĂ€ltlich. Bottlerocket wird in Amazon ECS-Clustern, VMware und AWS EKS Kubernetes unterstĂŒtzt sowie fĂŒr die Erstellung beliebiger Builds und Editionen, die den Einsatz verschiedener Orchestrierungs- und Runtime-Tools fĂŒr Container erlauben.
Die Distribution bietet ein atomar und automatisch aktualisiertes, unteilbares Systemabbild, das einen Linux-Kernel und eine minimale Systemumgebung umfasst, die nur die fĂŒr den Betrieb von Containern erforderlichen Komponenten enthĂ€lt. In der Umgebung sind der Systemmanager systemd, die Bibliothek Glibc, das Build-Werkzeug Buildroot, der Bootloader GRUB, der Netzwerk-Konfigurator wicked, das Runtime fĂŒr isolierte Container containerd, die Container-Orchestrierungsplattform Kubernetes, der Authenticator aws-iam-authenticator und der Amazon ECS-Agent integriert.
Die Werkzeuge zur Orchestrierung von Containern werden in einem separaten Verwaltungs-Container bereitgestellt, der standardmĂ€Ăig aktiviert ist und ĂŒber die API und den AWS SSM Agent verwaltet wird. In dem Basisabbild fehlt eine Kommandozeile. Server SSH und interpretierte Sprachen (zum Beispiel, kein Python oder Perl) â Werkzeuge fĂŒr Administratoren und Debugging-Tools sind in einen separaten Dienstcontainer ausgegliedert, der standardmĂ€Ăig deaktiviert ist.
Das Hauptmerkmal im Vergleich zu Ă€hnlichen Distributionen wie Fedora CoreOS, CentOS/Red Hat Atomic Host ist die primĂ€re Ausrichtung auf maximale Sicherheit im Kontext der VerstĂ€rkung des Schutzes des Systems gegen mögliche Bedrohungen, der Erschwernis der Ausnutzung von Schwachstellen in Betriebssystemkomponenten und der Erhöhung der Isolation von Containern. Container werden mithilfe der Standardmechanismen des Linux-Kernels â cgroups, NamensrĂ€ume und seccomp â erstellt. FĂŒr zusĂ€tzliche Isolation wird im Distribution SELinux im Modus âenforcingâ eingesetzt.
Die Wurzelpartition wird im Nur-Lese-Modus eingehĂ€ngt, wĂ€hrend die Konfigurationspartition /etc in tmpfs eingebunden wird und ihren Ursprungszustand nach einem Neustart wiederherstellt. Direkte Ănderungen an Dateien im Verzeichnis /etc, wie /etc/resolv.conf und /etc/containerd/config.toml, werden nicht unterstĂŒtzt â fĂŒr das dauerhafte Speichern von Einstellungen sollten die API oder separate Container verwendet werden. FĂŒr die kryptografische Verifizierung der IntegritĂ€t der Wurzelpartition wird das Modul dm-verity verwendet, und im Falle eines Versuchs, Daten auf BlockgerĂ€tebene zu verĂ€ndern, wird das System neu gestartet.
Die meisten Systemkomponenten sind in der Programmiersprache Rust geschrieben, die sichere Speicheroperationen ermöglicht und Schwachstellen vermeidet, die durch Zugriffe auf den Speicher nach dessen Freigabe, Dereferenzierung von Nullzeigern und Buffer-Overflow verursacht werden können. Bei der Standardkompilierung werden die Kompilierungsmodi ââenable-default-pieâ und ââenable-default-sspâ verwendet, um die ZufĂ€lligkeit des Adressraums von ausfĂŒhrbaren Dateien (PIE) sowie den Schutz vor Stack-Overflow durch das EinfĂŒhren von Canary-Werten zu aktivieren. FĂŒr Pakete, die in C/C++ geschrieben sind, werden zusĂ€tzlich die Flags â-Wallâ, â-Werror=format-securityâ, â-Wp,-D_FORTIFY_SOURCE=2â, â-Wp,-D_GLIBCXX_ASSERTIONSâ und â-fstack-clash-protectionâ hinzugefĂŒgt.
In der neuen Version:
- Bei der Installation von RPM-Paketen wird eine Liste der Programme im JSON-Format generiert und im Host-Container als Datei /var/lib/bottlerocket/inventory/application.json montiert, um Informationen ĂŒber verfĂŒgbare Pakete zu erhalten.
- Die Container âadminâ und âcontrolâ wurden aktualisiert.
- Die Versionen der Pakete und AbhĂ€ngigkeiten fĂŒr die Programmiersprachen Go und Rust wurden aktualisiert.
- Die Versionen der Pakete mit Drittanbieter-Software wurden aktualisiert.
- Probleme mit der Konfiguration von tmpfilesd fĂŒr kmod-5.10-nvidia wurden behoben.
- Bei der Installation von tuftool wurde die Bindung der VersionsabhÀngigkeiten sichergestellt.
Quelle: opennet.ru
