tag:linuxfr.org,2005:/users/samerwLinuxFr.org : les contenus de samerw2019-11-08T11:35:32+01:00/favicon.pngtag:linuxfr.org,2005:News/394952019-10-25T13:18:43+02:002022-03-06T21:36:44+01:00Version 2 du RootAsRole : se passer des commandes sudo et su sous GNU/LinuxLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Le module RAR (<em>Root As Role</em>) implémente une approche basée sur les rôles pour distribuer les privilèges aux utilisateurs. Il fournit une solution qui permet aux utilisateurs de contrôler la liste des privilèges qu’ils accordent aux programmes. Grâce à ce module, les administrateurs peuvent regrouper les privilèges Linux dans des rôles et les donner à leurs utilisateurs. Pour des raisons de sécurité, les utilisateurs n’obtiennent pas les rôles attribués par défaut, ils doivent les activer à l’aide de la commande <em>sr</em> (changer de rôle).</p>
<p><a href="https://github.com/SamerW/RootAsRole/blob/master/doc/assumerootrole.png"><img src="https://linuxfr.org/images/historique/images_perdues/version-2-du-rootasrole-se-passer-des-commandes-sudo-et-su-sous-gnu-linux-iyvoCdlgYZVW.png" alt="Copie d’écran de Root As Role"></a></p>
<p>Cependant, la première version du RAR ne fournissait pas à l’administrateur la possibilité de connaître l’ensemble des privilèges qui sont demandés par un programme. Cette deuxième version ajoute l’outil <em>capable</em> qui permet à l’administrateur de disposer de cette information. Nous pensons que cet outil va largement contribuer à l’adoption de RootAsRole.</p>
</div><ul><li>lien nᵒ 1 : <a title="https://github.com/SamerW/RootAsRole" hreflang="fr" href="https://linuxfr.org/redirect/105070">Page GitHub de Root As Role</a></li><li>lien nᵒ 2 : <a title="https://docs.google.com/forms/d/e/1FAIpQLSfwXISzDaIzlUe42pas2rGZi7SV5QvUXXcDM9_GknPa8AdpFg/viewform" hreflang="fr" href="https://linuxfr.org/redirect/105071">Formulaire de retour d’information (sur Google Forms)</a></li></ul><div><p>Nous vous avons proposé l’année dernière le module RootAsRole qui permet de se passer des commandes <em>su</em> et <em>sudo</em> sous GNU/Linux (voir le journal « <a href="//linuxfr.org/news/linux-capabilities-se-passer-des-commandes-su-et-sudo">Linux capabilities : se passer des commandes su et sudo</a> »). En effet, le problème majeur des commandes <em>sudo</em> et <em>su</em>, c’est que cette approche traditionnelle ne respecte pas le principe plus récent de moindre privilège : ces commandes ne permettent pas de contrôler les listes de privilèges (<em>Linux capabilities</em>) à donner aux programmes et/ou utilisateurs.</p>
<p>Le code (GPL v3) et des exemples plus complets sont disponibles sur la <a href="https://github.com/SamerW/RootAsRole">page GitHub</a> du projet.</p>
<p>N’hésitez pas à nous envoyer vos retours via le <a href="https://docs.google.com/forms/d/e/1FAIpQLSfwXISzDaIzlUe42pas2rGZi7SV5QvUXXcDM9_GknPa8AdpFg/viewform">formulaire</a> à disposition (formulaire hébergé sur Google Forms).</p>
</div><div><a href="https://linuxfr.org/news/version-2-du-rootasrole-se-passer-des-commandes-sudo-et-su-sous-gnu-linux.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/118376/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/version-2-du-rootasrole-se-passer-des-commandes-sudo-et-su-sous-gnu-linux#comments">ouvrir dans le navigateur</a>
</p>
samerwZeroHeureDavy DefaudXavier TeyssierBenoît SibaudgUIYsabeau 🧶 🧦https://linuxfr.org/nodes/118376/comments.atomtag:linuxfr.org,2005:News/387752018-09-06T09:44:52+02:002018-09-06T23:47:28+02:00Linux capabilities : se passer des commandes su et sudoLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Nous proposons un module qui permet de se passer des commandes <code>su</code> et <code>sudo</code>. L’avantage de notre module est qu’il permet de contrôler la liste des privilèges donnés aux programmes.</p>
<p>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, <code>tcpdump</code> demande uniquement le privilège <code>cap_net_raw</code> pour s’exécuter. Cependant, en l’exécutant dans le contexte de super‐utilisateur, <code>tcpdump</code> 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 <code>tcpdump</code> afin de compromettre la sécurité du système.</p>
<p>Il existe cependant une autre voie, non officielle, mais intégrée au noyau Linux depuis 1998…</p>
</div><ul><li>lien nᵒ 1 : <a title="https://github.com/SamerW/RootAsRole/" hreflang="fr" href="https://linuxfr.org/redirect/102632">RAR module</a></li></ul><div><p>Un brouillon POSIX (POSIX draft 1003.1e) avait été proposé afin de définir un modèle qui permet de donner aux processus uniquement les privilèges de super‐utilisateur dont ils ont besoin. La proposition définit pour chaque processus trois ensembles de <em>bitmaps</em> appelés <em>Inheritable</em> (i), <em>Permitted</em> (p) et <em>Effective</em> (e). Ce modèle n’a pas été adopté officiellement, mais il a été intégré au noyau Linux depuis 1998.</p>
<p>Cependant, pour différentes raisons, ce modèle n’a pas été largement utilisé : </p>
<ol>
<li>Premièrement, le modèle de capacité de Linux présente différents problèmes techniques en raison de l’utilisation d’attributs étendus pour stocker les privilèges dans les exécutables (problème 1). </li>
<li>Deuxièmement, les administrateurs de systèmes GNU/Linux ne disposent pas d’un outil leur permettant de distribuer les privilèges aux utilisateurs de manière fine (problème 2). La distribution fine de privilèges devrait donner aux administrateurs la possibilité de décider quels privilèges accorder aux utilisateurs, quels programmes (par exemple, <code>tcpdump</code>) peuvent utiliser ces privilèges et sur quelles ressources ces privilèges peuvent être appliqués (par exemple, interface réseau <em>eth0</em>). </li>
<li>Troisièmement, GNU/Linux ne fournit pas d’outil permettant aux utilisateurs de connaître le privilège demandé par une application (problème 3). </li>
<li>Quatrièmement, GNU/Linux est livré avec des commandes de base qui ne sont pas compatibles avec des privilèges, tels que la commande <code>passwd</code> (problème 4). </li>
</ol>
<p>En conséquence, la majorité des utilisateurs de GNU/Linux utilisent toujours les commandes <code>su</code> et <code>sudo</code> pour exécuter des applications privilégiées, car le modèle super‐utilisateur présente l’avantage d’être facile à utiliser.</p>
<p>Récemment, un nouvel ensemble de privilèges appelé <em>Ambient</em> a été intégré au noyau Linux afin de résoudre les problèmes techniques liés au stockage des privilèges dans les attributs étendus des exécutables. Cependant, le système GNU/Linux ne fournit pas de solutions pour gérer les problèmes deux et trois.</p>
<p>Le module RAR (<em>Root As Role</em>) implémente une approche basée sur les rôles pour distribuer les privilèges aux utilisateurs. Il fournit une solution au problème deux : notre module est livré avec un outil appelé <code>sr</code> (<em>switch role</em>) qui permet aux utilisateurs de contrôler la liste des privilèges qu’ils accordent aux programmes.</p>
<p>Ainsi, avec notre module, les utilisateurs de GNU/Linux peuvent cesser d’utiliser les commandes <code>sudo</code> et <code>su</code>, qui ne permettent pas de contrôler la liste des privilèges à donner aux programmes. </p>
<p>Il existe déjà des outils permettant de contrôler la liste des privilèges à attribuer aux programmes tels que <code>setcap</code> et le module <code>pam_cap</code>. Cependant, ces outils nécessitent l’utilisation d’attributs étendus pour stocker les privilèges. Or stocker des privilèges dans des attributs étendus pose de nombreux problèmes. Notre module permet d’attribuer les privilèges Linux sans avoir besoin de les stocker dans les attributs étendus des fichiers exécutables. </p>
<p>Grâce à ce module, les administrateurs peuvent regrouper les privilèges Linux dans des rôles et les donner à leurs utilisateurs. Pour des raisons de sécurité, les utilisateurs n’obtiennent pas les rôles attribués par défaut, ils doivent les activer à l’aide de la commande <code>sr</code> (changer de rôle). </p>
<p>Notre module est compatible avec <code>pam_cap.so</code>, les administrateurs peuvent donc continuer à utiliser <code>pam_cap.so</code> avec lui. </p>
<p>Concrètement, notre module permet de respecter le principe du moindre privilège en donnant aux utilisateurs la possibilité de contrôler la liste des privilèges qu’ils accordent à leurs programmes.</p>
<p>Le code (GPL v3) et des exemples plus complets sont disponibles sur la <a href="https://github.com/SamerW/RootAsRole/">page GitHub du projet</a>.</p>
</div><div><a href="https://linuxfr.org/news/linux-capabilities-se-passer-des-commandes-su-et-sudo.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115209/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/linux-capabilities-se-passer-des-commandes-su-et-sudo#comments">ouvrir dans le navigateur</a>
</p>
wazanBenoît SibaudZeroHeurePierre Jarillonbubar🦥Davy Defaudhttps://linuxfr.org/nodes/115209/comments.atom