Publication de Bottlerocket 1.7, une distribution basée sur des conteneurs isolés

La publication de la version 1.7.0 de la distribution Linux Bottlerocket a eu lieu, développée avec la participation d'Amazon pour un lancement efficace et sécurisé de conteneurs isolés. Les outils et les composants de gestion de la distribution sont écrits en Rust et sont distribués sous les licences MIT et Apache 2.0. Le lancement de Bottlerocket est pris en charge dans les clusters Amazon ECS, VMware et AWS EKS Kubernetes, ainsi que dans la création de builds et de versions personnalisées permettant l'utilisation de divers outils d'orchestration et d'exécution pour conteneurs.

La distribution fournit une image système atomique et automatiquement mise à jour, incluant le noyau Linux et un environnement système minimal, ne comprenant que les composants nécessaires au lancement de conteneurs. L'environnement utilise le gestionnaire système systemd, la bibliothèque Glibc, les outils de construction Buildroot, le chargeur d'amorçage GRUB, le configurateur réseau wicked, le runtime pour conteneurs isolés containerd, la plateforme d'orchestration de conteneurs Kubernetes, l'authentificateur aws-iam-authenticator et l'agent Amazon ECS.

Les outils d'orchestration de conteneurs sont fournis dans un conteneur de gestion distinct, qui est activé par défaut et géré via l'API et l'AWS SSM Agent. L'image de base ne comprend pas de shell. serveur SSH et les langages interprétés (comme Python ou Perl) - les outils pour les administrateurs et les outils de débogage sont placés dans un conteneur distinct, qui est désactivé par défaut.

La principale différence par rapport à des distributions similaires, telles que Fedora CoreOS, CentOS/Red Hat Atomic Host, réside dans l'accent mis sur la sécurité maximale afin de renforcer la protection du système contre d'éventuelles menaces, de compliquer l'exploitation des vulnérabilités dans les composants du système d'exploitation, et d'accroître l'isolation des conteneurs. Les conteneurs sont créés à l'aide de mécanismes natifs du noyau Linux - cgroups, espaces de noms et seccomp. Pour une isolation supplémentaire, SELinux est utilisé en mode « enforcing ».

La partition racine est montée en mode lecture seule, tandis que la partition de configuration /etc est montée en tmpfs et restaure son état d'origine après un redémarrage. La modification directe des fichiers dans le répertoire /etc, tels que /etc/resolv.conf et /etc/containerd/config.toml, n'est pas supportée - pour une conservation permanente des paramètres, il convient d'utiliser l'API ou d'externaliser les fonctionnalités dans des conteneurs séparés. Un module dm-verity est utilisé pour la vérification cryptographique de l'intégrité de la partition racine, et en cas de détection d'une tentative de modification des données au niveau du périphérique de bloc, le système redémarre.

La plupart des composants système sont écrits en Rust, qui offre des outils pour une gestion sécurisée de la mémoire, évitant ainsi les vulnérabilités causées par l'accès à la mémoire après sa libération, la déréférenciation de pointeurs nuls et les débordements de tampon. Les modes de compilation par défaut «--enable-default-pie» et «--enable-default-ssp» sont appliqués pour activer la randomisation de l'espace d'adresse des fichiers exécutables (PIE) et protéger contre les débordements de pile via des substituts de canari. Pour les paquets écrits en C/C++, des drapeaux supplémentaires «-Wall», «-Werror=format-security», «-Wp,-D_FORTIFY_SOURCE=2», «-Wp,-D_GLIBCXX_ASSERTIONS» et «-fstack-clash-protection» sont également activés.

Dans cette nouvelle version :

  • Lors de l'installation des paquets RPM, une génération de la liste des programmes au format JSON est assurée et montée dans le conteneur hôte en tant que fichier /var/lib/bottlerocket/inventory/application.json pour obtenir des informations sur les paquets disponibles.
  • Les conteneurs « admin » et « control » ont été mis à jour.
  • Les versions des paquets et les dépendances pour les langages Go et Rust ont été mises à jour.
  • Les versions des paquets tiers ont été mises à jour.
  • Des problèmes de configuration de tmpfilesd pour kmod-5.10-nvidia ont été résolus.
  • Lors de l'installation de tuftool, l'association des versions des dépendances a été assurée.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster