Linux capabilities : se passer des commandes su et sudo — Ahmad Samer Wazan, Rémi Venant
Channel: Capitole du Libre
Date: 19/11/2018

Nous proposons un module qui permet de se passer des commandes su et sudo. L’avantage de notre module est qu’il permet de contrôler la liste des privilèges donnés aux programmes.

Traditionnellement, l’administration des systèmes GNU/Linux repose sur l’existence d’un seul utilisateur puissant (appelé super‐utilisateur) qui détient à lui seul la liste complète des privilèges du système. Cette vision a été critiquée car tous les programmes exécutés dans le contexte du super‐utilisateur obtiennent beaucoup plus de privilèges qu’ils n’en ont besoin. Par exemple, tcpdump demande uniquement le privilège cap_net_raw pour s’exécuter. Cependant, en l’exécutant dans le contexte de super‐utilisateur, tcpdump obtient la liste complète des privilèges du système. Ainsi, l’approche traditionnelle de l’administration GNU/Linux rompt le principe du moindre privilège, qui garantit qu’un processus doit juste avoir les privilèges nécessaires pour effectuer son travail. Un attaquant pourrait exploiter les vulnérabilités de tcpdump afin de compromettre la sécurité du système.

Nous proposons un module que on l'appelle RAR (Root As Role) qui implémente une approche basée sur les rôles afin de distribuer les privilèges aux utilisateurs. Notre module est livré avec un outil appelé sr (switch role) qui permet aux utilisateurs de contrôler la liste des privilèges qu’ils accordent aux programmes.

Ainsi, avec notre module, les utilisateurs de GNU/Linux peuvent cesser d’utiliser les commandes sudo et su, qui ne permettent pas de contrôler la liste des privilèges à donner aux programmes.

Le code (GPL v3) et des exemples plus complets sont disponibles sur la page GitHub du projet (https://github.com/SamerW/RootAsRole)