Ce n'est donc pas une protection contre les logiciels malicieux — que ce soit par conception ou suite à une modification volontaire par un pirate — mais contre les failles de sécurité.
Oui et non. Le but de Capsicum c'est de rendre facile pour une application honnête d'appliquer le Principle of Least Authority. Capsicum ne dit rien en soit des programmes malicieux.
Cependant, imaginons un instant que l'idée (de bon sens) de respecter le POLA venait à se généraliser (que ce soit à travers l'usage de Capsicum ou d'autres politiques de sécurité permettant aussi cela; tout le monde n'est pas forcé de se mettre d'accord sur un seul outil). Chaque programme annoncerait donc les droits dont il a besoin pour fonctionner, et on pourrait le forcer à ne rien utiliser d'autre (par exemple en le faisant tourner comme processus fils d'un processus ayant exécuté cap_enter). Dans ce cas, le champ d'action des logiciels malicieux est très réduit, puisque s'ils sont trop gourmand en droits, ils sont suspects et on risque de ne pas les lancer tout simplement.
Aujourd'hui, tous les programmes ou presque tournent avec tous les droits de l'utilisateur. Impossible de différencier les gentils programmes qui font comme ça parce qu'ils ont été codé sous cette hypothèse (par exemple ils incluent un widget "ouvrir un fichier" qui explore gentiment le système de fichier) des vilains programmes qui en profitent abusivement (par exemple ils copient le système de fichier et l'envoient sur le réseau). Si les "gentils" étaient plus économes en droits, on pourrait repérer les vilains plus facilement : l'amélioration des gentils permettrait donc, indirectement, de se protéger mieux de méchants.
Au risque d'être lourd en répétant la même chose pour la troisième fois (mais je pense que c'est utile car ça reste des idées pas forcément évidentes; par exemple de toute évidence ma remarque pourtant très explicite sur la complémentarité des approches MAC et par capacités n'est pas bien passée), un exemple concret: Windows, dès qu'on lance un programme ou presque qui ne vient pas de Microsoft, nous embête avec une boîte de dialogue pour nous demander si on est vraiment sûr de vouloir l'exécuter. Mais comme il y a ces boîtes tout le temps, on clique sur "oui" sans réfléchir. Si la majorité des programmes windows se mettaient à utiliser un style permettant au système de restreindre finement leurs droits sans nuire à leurs fonctionnalités, il n'aurait pas besoin d'afficher la boîte à chaque fois. Il pourrait se contenter de demander confirmation pour les cas "sensibles" (demande de lecture de fichiers systèmes, d'accès au réseau...), et ne rien dire pour la grande majorité des applications qui n'ont pas besoin de beaucoup de droits (accès à des fichiers temporaires propres à l'application, et c'est tout). La sécurité s'en trouverait alors améliorée, que ce soit pour les programmes "honnêtes" (moins de risque d'erreur) que pour les programmes malhonnêtes (champ d'action plus limité, et avertissements plus visibles).
[^] # Re: pas compris
Posté par gasche . En réponse à la dépêche Capsicum, une séparation fine des privilèges pour UNIX. Évalué à 10.
Oui et non. Le but de Capsicum c'est de rendre facile pour une application honnête d'appliquer le Principle of Least Authority. Capsicum ne dit rien en soit des programmes malicieux.
Cependant, imaginons un instant que l'idée (de bon sens) de respecter le POLA venait à se généraliser (que ce soit à travers l'usage de Capsicum ou d'autres politiques de sécurité permettant aussi cela; tout le monde n'est pas forcé de se mettre d'accord sur un seul outil). Chaque programme annoncerait donc les droits dont il a besoin pour fonctionner, et on pourrait le forcer à ne rien utiliser d'autre (par exemple en le faisant tourner comme processus fils d'un processus ayant exécuté
cap_enter). Dans ce cas, le champ d'action des logiciels malicieux est très réduit, puisque s'ils sont trop gourmand en droits, ils sont suspects et on risque de ne pas les lancer tout simplement.Aujourd'hui, tous les programmes ou presque tournent avec tous les droits de l'utilisateur. Impossible de différencier les gentils programmes qui font comme ça parce qu'ils ont été codé sous cette hypothèse (par exemple ils incluent un widget "ouvrir un fichier" qui explore gentiment le système de fichier) des vilains programmes qui en profitent abusivement (par exemple ils copient le système de fichier et l'envoient sur le réseau). Si les "gentils" étaient plus économes en droits, on pourrait repérer les vilains plus facilement : l'amélioration des gentils permettrait donc, indirectement, de se protéger mieux de méchants.
Au risque d'être lourd en répétant la même chose pour la troisième fois (mais je pense que c'est utile car ça reste des idées pas forcément évidentes; par exemple de toute évidence ma remarque pourtant très explicite sur la complémentarité des approches MAC et par capacités n'est pas bien passée), un exemple concret: Windows, dès qu'on lance un programme ou presque qui ne vient pas de Microsoft, nous embête avec une boîte de dialogue pour nous demander si on est vraiment sûr de vouloir l'exécuter. Mais comme il y a ces boîtes tout le temps, on clique sur "oui" sans réfléchir. Si la majorité des programmes windows se mettaient à utiliser un style permettant au système de restreindre finement leurs droits sans nuire à leurs fonctionnalités, il n'aurait pas besoin d'afficher la boîte à chaque fois. Il pourrait se contenter de demander confirmation pour les cas "sensibles" (demande de lecture de fichiers systèmes, d'accès au réseau...), et ne rien dire pour la grande majorité des applications qui n'ont pas besoin de beaucoup de droits (accès à des fichiers temporaires propres à l'application, et c'est tout). La sécurité s'en trouverait alors améliorée, que ce soit pour les programmes "honnêtes" (moins de risque d'erreur) que pour les programmes malhonnêtes (champ d'action plus limité, et avertissements plus visibles).