Sécurisation des utilisateurs et des processus dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Protection des processus noyau par les privilèges

Un privilège est une droite dont a besoin un processus pour réaliser une opération. Le droit est appliqué dans le noyau. Un programme qui s'exécute dans les limites du jeu de base de privilèges fonctionne dans les limites de la stratégie de sécurité système. Les programmes setuid root sont des exemples de programmes qui fonctionnent en dehors des limites de la stratégie de sécurité système. Les privilèges permettent aux programmes d'éliminer la nécessité d'appeler setuid root.

Les privilèges énumèrent les types d'opérations possibles sur un système. Les programmes peuvent être exécutés avec les privilèges exacts nécessaires à leur réussite. Par exemple, un programme qui manipule des fichiers peut nécessiter les privilèges file_dac_write et file_flag_set. Ces privilèges sur le processus éliminent la nécessité d'exécuter le programme en tant que root.

Historiquement, les systèmes n'ont pas suivi le modèleModèle de privilègeou le modèle de droits, tel que présenté dans la section Droits d'utilisateur et traitement notions de base relatives à Oracle. Informations de base sur les droits des utilisateurs et les droits des processus Ils ont plutôt utilisé le modèle de superutilisateur. Dans le modèle de superutilisateur, les processus s'exécutaient en tant que root ou en tant qu'utilisateur. L'action des processus utilisateur était limitée au niveau des répertoires et fichiers de l'utilisateur. Les processus root pouvaient créer des répertoires et fichiers en tout point du système. Un processus qui devait créer un répertoire en dehors du répertoire de l'utilisateur devait s'exécuter avec UID=0, c'est-à-dire, en tant que root. La stratégie de sécurité s'appuyait sur le contrôle d'accès discrétionnaire (DAC, Discretionary Access Control) pour protéger les fichiers système. Les noeuds de périphérique étaient protégés par DAC. Par exemple, les périphériques appartenant au groupe sys ne pouvaient être ouverts que par des membres de ce groupe.

Cependant, les programmes setuid, les autorisations de fichier et les comptes d'administration sont vulnérables à une utilisation abusive. Les actions qu'un processus setuid est autorisé à réaliser sont plus nombreuses qu'il n'est nécessaire au processus pour terminer son opération. Un programme setuid root peut être compromis par un intrus qui s'exécute ensuite en tant qu'utilisateur root disposant de tous les pouvoirs. De même, tout utilisateur ayant accès au mot de passe root peut compromettre l'ensemble du système.

En revanche, un système appliquant la stratégie avec des privilèges fournit les droits des utilisateurs et une racine graduation entre les droits. Un utilisateur peut se voir accorder des privilèges nécessaires à la réalisation d'activités dépassant les droits des utilisateurs standard et root peut voir le nombre de ses privilèges actuels réduit. Avec les droits, une commande qui s'exécute avec les privilèges peut être isolée dans un profil de droits et assignée à un utilisateur ou à un rôle. Table 1–1 résume la gradation entre les droits utilisateur et les privilèges root que le modèle de droits fournit.

Le modèle de privilèges offre une plus grande sécurité que le modèle superutilisateur. Les privilèges supprimés d'un processus ne peuvent pas être exploités. Les privilèges de processus peuvent fournir une protection supplémentaire pour les fichiers sensibles, où les protections DAC seules peuvent être exploitées pour obtenir l'accès.

Les privilèges peuvent donc restreindre les programmes et processus aux capacités qu'ils nécessitent Sur un système appliquant ce privilège, un intrus qui capture un processus ne peut accéder qu'aux privilèges dont dispose ce processus. Le reste du système ne peut pas être compromis.