Capsicum, une séparation fine des privilèges pour UNIX

Posté par . Modéré par tuiu pol. Licence CC by-sa.
94
21
mar.
2011
Sécurité

Le projet Capsicum, lancé l'année dernière, tente d’adapter le modèle de sécurité par capacités (« capabilities ») aux systèmes UNIX. En deux mots, il s’agit de permettre aux applications de faire tourner certaines parties de leur code dans des « sandboxes » (bacs à sable) aux droits très restreints, gérés finement, avec la possibilité de recevoir ou de déléguer dynamiquement une partie de ces droits.

C’est une approche de la sécurité qui mise sur la flexibilité et l’intégration directe dans les applications (au contraire de politiques externes décidées par l’administrateur système, comme avec SELinux) pour respecter le Principle of Least Authority, qui recommande qu’un bout de programme donné fonctionne avec seulement les droits dont il a besoin pour accomplir sa tâche. Ainsi, les conséquences d’une faille sont réduites et les vecteurs d’attaque diminuent énormément. Par exemple, je ne veux pas que le logiciel qui lit mes fichiers PDF ait le droit de lire le contenu de mon répertoire personnel et d’envoyer des e-mails.

Capsicum introduit de nouveaux appels et objets système, qui demandent une (relativement petite) modification du noyau, ainsi qu’une bibliothèque logicielle en espace utilisateur pour utiliser ces nouveaux appels système. FreeBSD a déjà fait les modifications nécessaires, et les chercheurs ont pu facilement convertir plusieurs applications au modèle Capsicum : tcpdump, dhclient, gzip et, avec l’aide d’un développeur Google, le navigateur Web chromium.

Capsicum peut ainsi renforcer considérablement la sécurité des applications UNIX classiques, sans demander de les recoder entièrement. Reste à voir si les développeurs du monde du Libre seront convaincus par ces approches compartimentées, et prêts à les prendre en compte lors de la conception de leurs logiciels.

Linux capabilities : se passer des commandes su et sudo

Posté par . Édité par Benoît Sibaud, ZeroHeure, Pierre Jarillon, tankey et Davy Defaud. Modéré par Benoît Sibaud. Licence CC by-sa.
59
6
sept.
2018
Administration système

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.

Il existe cependant une autre voie, non officielle, mais intégrée au noyau Linux depuis 1998…

Version 2 du RootAsRole : se passer des commandes sudo et su sous GNU/Linux

Posté par . Édité par ZeroHeure, Davy Defaud, Xavier Teyssier, Ysabeau et gUI. Modéré par Pierre Jarillon. Licence CC by-sa.
39
25
oct.
2019
Administration système

Le module RAR (Root As Role) 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 sr (changer de rôle).

Copie d’écran de Root As Role

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 capable qui permet à l’administrateur de disposer de cette information. Nous pensons que cet outil va largement contribuer à l’adoption de RootAsRole.

Forum Programmation.c++ gestion des capabilities

Posté par . Licence CC by-sa.
2
30
nov.
2014

Bonjour.
Dans le cadre de mon projet jiguiviou, j'expérimente un client GVSP (un client de flux vidéo très haut débit) avec une socket dont le ring buffer est mappé en espace utilisateur. La gestion des interruptions du NIC et les multiples appels systèmes générés par recvmmsg consomment beaucoup de temps CPU, j'espère trouver dans cette méthode une solution élégante.
Pour cela j'utilise une socket packet. Le processus doit avoir un UID effectif nul ou la capacité CAP_NET_RAW.
J'ai donc isolé (...)