• [^] # Re: Et Policykit là-dedans

    Posté par . En réponse à la dépêche Capsicum, une séparation fine des privilèges pour UNIX. Évalué à 2.

    Ici, on peut transférer des capacités d'un processus a un autre, mais pas "augmenter" les droits existants.

    Oui, quand je parle d'"obtenir plus de droits" dans ce contexte, c'est au sens indirect. Avec Policykit, on discute avec un processus plus privilégié pour qu'il nous "prête" temporairement ses droits en effectuant des actions pour nous. Dans un système à capacités, on peut discuter avec un processus plus privilégié (ayant plus de capacités) pour qu'il nous transfère certaines capacités.

    Plus généralement ce schéma (discuter avec un privilégié pour qu'il effectue des actions pour nous ou nous en donne le droit) est utilisé dans de nombreux systèmes de droits, puisque c'est un des plus flexibles, l'application privilégiée étant libre de gérer l'accès (les "prêts") comme elle le souhaite, indépendamment de toute politique de contrôle d'accès. C'est aussi celui utilisé par Chromium dans la version seccomp par exemple.

    Une remarque : le côté obscur de cette méthode est que les politiques de contrôle d'accès ne peuvent pas empêcher deux applications qui communiquent de se "prêter" leurs droits (volontairement ou non, on peut exploiter un bug de l'application privilégiée). Une fois qu'on en est là, la seule façon de "contrôler" la sécurité du système est de s'assurer que ces processus ne peuvent pas entrer en communication. Dans ce contexte, les systèmes par capacités pures sont très intéressants, puisque chaque référence à un autre objet du système est par définition une capacité : on peut savoir avec quels objets/processus un agent donné peut entrer en contact en regardant uniquement ses capacités. Pour savoir si un agent donné pourra un jour communiquer avec un autre agent (pour lui extorquer des droits par exemple), on considère les capacités comme les arrêtes d'un graphe entre agents, et on regarde s'il y a un chemin entre ces deux agents. Les systèmes "à autorité ambiante" sont généralement aussi des systèmes "à communication ambiante" où n'importe qui peut parler à n'importe qui, et dans ce cas là on ne peut rien dire.