Jail

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Isolation de services
Type Cloisonnement (au-delà du chroot)
Contexte Unix/Linux, BSD
Voir aussi Chroot · Apparmor

Une jail (« prison ») est un mécanisme de cloisonnement qui enferme un processus ou un service dans un environnement restreint, dont il ne peut pas s'échapper. Le principe est une extension de chroot : là où chroot se contente de changer la racine du système de fichiers vue par le processus, une véritable jail isole aussi les autres ressources (processus, réseau, utilisateurs).

Du chroot à la jail

Le chroot limite la vue du système de fichiers mais ne cloisonne ni les processus, ni le réseau, ni les identifiants : un processus privilégié peut souvent s'en évader. Les jails apportent un cloisonnement plus complet :

  • FreeBSD jails — isolation native intégrant système de fichiers, pile réseau, table de processus et comptes utilisateurs propres ;
  • sous Linux, la même logique est portée par les espaces de noms (PID, réseau, montages, utilisateurs) et les cgroups, socle des containers (Docker, LXC).

Intérêt défensif

Placer un service exposé dans une jail limite la portée d'une compromission : même en prenant le contrôle du service, l'attaquant reste confiné à l'environnement isolé et n'atteint pas le système hôte.

Voir aussi

  • Chroot — cloisonnement basique du système de fichiers dont la jail est une extension
  • Apparmor — confinement d'applications par profils