chroot

chroot (change root) est un appel système qui a également donné son nom à une commande des systèmes d'exploitation Unix permettant de changer le répertoire racine d'un processus de la machine hôte.

Chroot

Informations
Type Appel système
Logiciel utilitaire
OS-level virtualisation (en)

Histoire

L'appel système chroot est introduit lors du développement de la version 7 d'Unix en 1979. Il est ajouté à BSD par Bill Joy le , 17 mois avant la sortie de BSD 4.2 pour tester et construire son système. Un premier usage de l'appellation jail pour enfermement de shell vient de Bill Cheswick en 1991 qui avait créé un honeypot pour surveiller un cracker. Carole Fennelly décrit dans un article de les premières méthodes d'évasion de jail[1].

En 2000, FreeBSD étend le concept en fournissant la commande jail.

En 2002, Nicolas Boiteux rédige le premier article[2] décrivant la méthode pour créer un jail linux à partir de la commande chroot.

En 2003, l'utilisation plus répandue du chroot shell Linux donne naissance aux plateformes Internet de microservices applicatifs SaaS et PaaS avec une consommation facturée à l'usage des ressources du jail, prémices du cloud, de la virtualisation système des serveurs, ainsi que des technologies renommées plus tard containers (tel que Docker).

En 2005, Sun introduit les conteneurs Solaris décrits comme des « chroots sous stéroïdes ».

En 2008, LXC (qui sera utilisé par Docker plus tard) utilise la terminologie de conteneur et gagne en popularité en 2013 à la suite de son inclusion dans le noyau Linux 3.8.

Objectif

Cette commande permet d'isoler l'exécution d'un programme et d'éviter ainsi la compromission complète d'un système lors de l'exploitation d'une faille. Si un pirate utilise une faille présente sur l'application chrootée, il n'aura accès qu'à l'environnement isolé et non pas à l'ensemble du système d'exploitation. Cela permet donc de limiter les dégâts qu'il pourrait causer. Cet environnement est appelé un chroot jail en anglais, littéralement une prison.

Il permet également de faire tourner plusieurs instances d'un même ensemble de services ou démons sur la même machine hôte.

Par exemple, il est possible avec chroot d'exécuter des applications 32 bits sur un système 64 bits : il suffit pour cela d'avoir un sous-système qui intègre toutes les bibliothèques logicielles nécessaires ; chroot permet de se connecter à l'intérieur de ce sous-système et d'y exécuter les applications installées.

Outil GNU

chroot est un outil GNU faisant partie de coreutils et plus précisément des shellutils.

Notes et références

  1. « Summertime potluck » (version du 9 janvier 2000 sur l'Internet Archive),
  2. « Howto chrooter un shell », (consulté le )
  • Portail de la sécurité informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.