Aller au contenu
Sécurité medium

Systèmes d'exploitation immuables

10 min de lecture

Un attaquant compromet votre serveur et modifie un binaire système. Comment le détectez-vous ? Sur un OS immuable, cette modification ne survit pas au redémarrage : le système de fichiers racine est monté en lecture seule, et tout changement passe par un déploiement contrôlé, réversible en quelques secondes. Cette page présente le mécanisme, les familles d'OS concernées et les pièges d'une première mise en oeuvre.

Une précision qui évite les fausses attentes : l'immuabilité n'est pas une barrière absolue. Un attaquant disposant des droits root sur l'hôte peut remonter la racine en écriture sur certaines distributions, et il reste libre d'écrire dans les répertoires de données. Ce que l'immuabilité garantit, c'est que la modification est hors du chemin de mise à jour : elle disparaît à la prochaine bascule d'image, et elle est détectable par comparaison avec l'image de référence.

  • Expliquer le mécanisme d'un système racine en lecture seule et d'une mise à jour atomique.
  • Identifier la famille d'OS immuable adaptée à votre besoin, serveur ou poste de travail.
  • Anticiper la gestion des données persistantes, le point qui fait échouer la plupart des premières mises en oeuvre.
  • Situer NixOS, dont l'approche déclarative diffère de celle des OS à images.

Les systèmes traditionnels accumulent les modifications au fil du temps : paquets installés, fichiers de configuration modifiés, dépendances mises à jour. Cette "dérive de configuration" crée des systèmes uniques, difficiles à reproduire et à sécuriser.

Les problèmes des OS mutables :

  • Configuration drift : chaque serveur devient un flocon de neige unique
  • Surface d'attaque : un attaquant peut modifier les binaires système
  • Rollback difficile : revenir en arrière après une mise à jour cassée est complexe
  • Reproductibilité : "ça marche sur ma machine" mais pas en production

Les OS immuables résolvent ces problèmes en rendant le système en lecture seule et en appliquant les changements de manière atomique (tout ou rien).

Un OS immuable ne se choisit pas pour ses qualités intrinsèques mais parce qu'il résout un problème que vous avez déjà. Cherchez dans ce tableau la ligne qui décrit votre quotidien : si aucune ne vous parle, le coût d'apprentissage ne sera pas rentabilisé. Le cas le plus courant reste celui de la ligne Ops / SRE, où la reproductibilité d'un parc de machines pèse plus lourd que la souplesse de modification.

ProfilBesoin principal
Ops / SREDéployer des systèmes reproductibles et sécurisés
DevOpsInfrastructure immuable, rollback instantané
Équipe sécuritéRéduire la surface d'attaque, garantir l'intégrité
Architecte cloudStandardiser les images de base

Le système racine (/) est monté en lecture seule. Les binaires, bibliothèques et fichiers de configuration système ne peuvent pas être modifiés à chaud. Seuls les répertoires de données (/var, /home) restent inscriptibles.

Les mises à jour ne modifient pas le système en place. Une nouvelle image complète est téléchargée, puis le système bascule dessus au redémarrage. Si la mise à jour échoue, le système reste sur l'ancienne version.

Chaque version du système est conservée. En cas de problème après une mise à jour, vous redémarrez sur la version précédente. Pas de restauration de backup, pas de réinstallation : quelques secondes suffisent.

Les données persistantes (bases de données, logs, fichiers utilisateur) sont stockées séparément du système. Cela permet de recréer le système à l'identique sans perdre les données.

Une équipe déploie un cluster Kubernetes de production. Exigences : sécurité maximale, mises à jour sans interruption, reproductibilité totale.

Choix : Talos Linux

  1. Déploiement : image Talos identique sur tous les nœuds
  2. Configuration : API déclarative, pas de SSH, pas de shell
  3. Mise à jour : rolling update nœud par nœud, rollback automatique si échec
  4. Sécurité : pas de packages installables, surface d'attaque minimale

Résultat attendu de cette approche : des nœuds strictement identiques, une mise à jour qui se déroule sans intervention manuelle sur chaque machine, et aucune dérive de configuration possible puisqu'aucun accès interactif n'existe. Le prix à payer est réel : sans shell ni SSH, tout diagnostic passe par l'API Talos et par talosctl, ce qui suppose de réapprendre ses réflexes de dépannage avant la mise en production, pas pendant l'incident.

Ces quatre systèmes partagent le même modèle d'image immuable mais s'adressent à des contextes différents. La colonne Usage est celle qui décide : trois d'entre eux sont liés à une plateforme précise, et le seul réellement généraliste est Flatcar. Talos pousse la logique le plus loin en supprimant purement et simplement le shell, ce qui élimine toute une classe d'attaques mais rend l'outillage d'observation obligatoire dès le premier jour.

OSUsageParticularité
TalosKubernetesAPI-only, pas de shell
FlatcarConteneursSuccesseur de CoreOS
BottlerocketAWS/EKSOptimisé Amazon
RHCOSOpenShiftRed Hat, intégré OCP

Sur un poste de travail, l'immuabilité change surtout la façon d'installer des logiciels : les applications passent par Flatpak ou par des conteneurs de développement, et les paquets système par une superposition (rpm-ostree install) qui exige un redémarrage. Le bénéfice est le même que sur serveur, un système qui revient à un état connu, mais la contrainte se ressent au quotidien. Notez que les variantes bureau d'openSUSE MicroOS ont été renommées en 2023 : Aeon pour GNOME, Kalpa pour Plasma.

OSBureauBase
Fedora SilverblueGNOMEFedora, rpm-ostree
Fedora KinoiteKDE PlasmaFedora, rpm-ostree
NixOSVariableNix, déclaratif
openSUSE Aeon / KalpaGNOME / KDE PlasmaMicroOS, transactional-update

NixOS est un cas particulier : tout le système se définit dans des fichiers de configuration. Le Nix Store (/nix/store/) est en lecture seule et chaque modification crée une nouvelle génération avec rollback instantané.

Ces cinq erreurs ont un point commun : elles consistent à conserver ses habitudes d'administration sur un système qui ne les tolère plus. Les deux premières sont les plus coûteuses, parce qu'elles ne se manifestent pas immédiatement. Un système modifié à chaud fonctionne parfaitement jusqu'à la mise à jour suivante, qui efface silencieusement le correctif ; des données persistantes mal isolées ne posent aucun problème jusqu'au premier rollback, qui les emporte.

  • Vouloir modifier le système "juste pour tester", contourne le principe même d'immutabilité
  • Ignorer la gestion des données persistantes, le stateful reste un défi
  • Sous-estimer la courbe d'apprentissage, NixOS ou Talos demandent un investissement initial
  • Oublier les mises à jour, immutable ne veut pas dire "jamais mis à jour"
  • Mélanger les approches, un système semi-immutable perd les bénéfices des deux mondes
  • Croire que "si ça compile, ça marche" sur NixOS, une configuration qui construit sans erreur peut produire un système qui ne démarre pas

Les guides ci-dessous partent tous d'une machine réelle ou virtuelle et se terminent par une manipulation vérifiable. Commencez par le premier si vous découvrez le sujet : il pose le vocabulaire (Nix Store, générations, flakes) que les autres réutilisent sans le redéfinir.

Cette liste sert à choisir sur quoi investir votre temps de test, pas à comparer des fonctionnalités. Les quatre premiers sont des OS complets et maintenus par un éditeur ou une fondation ; Kairos est d'une autre nature, puisqu'il transforme une distribution existante en système immuable et s'adresse donc à ceux qui ne veulent pas changer de base.

  1. Immutable = reproductible, chaque déploiement est identique
  2. Rollback instantané, en cas de problème, retour à l'état précédent en secondes
  3. Sécurité renforcée, pas de modification possible par un attaquant
  4. Adapté aux conteneurs, Talos, Flatcar, Bottlerocket pour Kubernetes
  5. Courbe d'apprentissage, investissement initial, gains sur le long terme

Ces trois pages prolongent le sujet sous un autre angle : le durcissement pour un système classique qu'on ne peut pas remplacer, et la sécurité des conteneurs pour la couche qui tourne au-dessus d'un OS immuable.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn