Namespaces et seccomp BPF : un zoom sur la conteneurisation Linux

Spécialité(s)


Résumé

À l’heure où de nombreuses applications sont délivrées sous la forme de conteneurs (notamment Docker), peu savent réellement comment ces derniers sont cloisonnés du reste du système. Peut-être encore plus rares sont ceux qui mettent en œuvre ces technologies de leur propre chef, pour réduire l’impact d’une compromission.Cet article s’attache à présenter les namespaces Linux, ainsi que seccomp BPF, puis à les employer à l’aide de systemd pour démontrer, par l’exemple, comment durcir un serveur web applicatif.


1. Introduction aux namespaces

Les namespaces sont une fonctionnalité de sécurité introduite dans le noyau Linux au début des années 2000. À l’origine une simple méthode permettant de présenter différentes vues du système de fichiers à des processus distincts, elle s’est enrichie au cours des années suivantes. À ce jour, il existe ainsi sept namespaces dans le noyau Linux, s’efforçant de présenter des ressources système sous des aspects différents en fonction du processus qui les emploie.

Certains namespaces ont des usages parfaitement anecdotiques, comme le namespace UTS qui permet de renvoyer un nom d’hôte (hostname) distinct à des processus. Cela peut être employé notamment par les conteneurs pour simuler l’exécution sur un hôte distinct.

D’autres namespaces sont plus utiles pour l’isolation :

  • NS, qui permet d’avoir des points de montage de systèmes de fichiers différents ; cela peut être astucieusement mis en œuvre pour...
Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous