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

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

La façon dont les privilèges sont utilisés

{ENT privilèges :, sont regroupés en OSOL}. Cette section décrit la manière dont Oracle Solaris utilise les privilèges avec les périphériques, dans la gestion des ressources, ainsi qu'avec les applications héritées.

Comment les processus obtiennent des privilèges

Hérite des privilèges ou les processus peuvent se voir affecter des privilèges. Un processus hérite des privilèges de son processus parent. Au moment de la connexion, le jeu de privilèges héritable initial détermine les privilèges disponibles pour les processus de l'utilisateur. Tous les processus fils de la connexion initiale de l'utilisateur héritent de ce jeu.

Vous pouvez également affecter directement des privilèges à des programmes, des utilisateurs, des rôles et des ressources spécifiques. Lorsqu'un programme requiert des privilèges, vous affectez les privilèges à l'exécutable du programme dans un profil de droits. Les utilisateurs et les rôles autorisés à exécuter le programme se voient affecter le profil qui comprend le programme. Au moment de la connexion, ou lorsqu'un shell de profil est ouvert, le programme s'exécute avec le privilège lorsque l'exécutable du programme est saisi dans le shell de profil. Par exemple, un rôle qui inclut le profil Access Management est en mesure de l'objet pour exécuter chmodla commande avec le privilège file_chown, et peut donc changer la propriété d'un fichier que le rôle n'est pas propriétaire.

Lorsqu'un rôle ou un utilisateur exécute un programme auquel un privilège supplémentaire a été affecté directement, celui-ci est ajouté au jeu héritable du rôle ou de l'utilisateur. Les processus fils du programme auquel des privilèges ont été affectés héritent des privilèges de leur parent. Si le processus fils nécessite plus de privilèges que le processus parent, ces privilèges doivent lui être affectés directement.

Les programmes qui sont codés pour faire usage de privilèges sont appelés Conscient des privilèges. Un programme conscient des privilèges active et désactive l'utilisation de privilèges lors de l'exécution du programme. Pour réussir dans un environnement de production, le programme doit se voir affecter les privilèges qu'il active et désactive. Avant d'apporter une programme disponible prenant en charge les privilèges que vous affectez à l'exécutable, seuls les privilèges dont le programme a besoin. Vous devez ensuite tester le programme pour vérifier qu'il accomplit ses tâches correctement. Vous devez également vérifier que le programme ne fait pas une utilisation abusive des privilèges.

Pour des exemples de code prenant en charge les privilèges, reportez-vous au Chapitre 2, Developing Privileged Applications du manuel Developer’s Guide to Oracle Solaris 11 Security . Pour affecter des privilèges à un programme qui en nécessite, voir l'Example 4–1 et l' Example 5–7.

Privilèges et périphériques

Le modèle de droits utilise des privilèges pour protéger les interfaces système qui, dans le modèle de superutilisateur, sont uniquement protégées par des autorisations de fichier. Dans un système doté de privilèges, les autorisations de fichier sont trop faibles pour protéger les interfaces. Un privilège comme proc_owner peut remplacer les autorisations de fichier et donner ensuite l'accès complet au système.

Par conséquent, dans Oracle Solaris la propriété du répertoire de périphérique n'est pas suffisante pour ouvrir un périphérique. Par exemple, les membres du groupe sys ne sont plus automatiquement autorisés à accéder au périphérique /dev/ip. Les autorisations de fichier sur /dev/ip sont 0666, mais le privilège net_rawaccess est requis pour ouvrir le périphérique.

Car la stratégie de périphériques est contrôlée par les privilèges, vous bénéficiez d'une plus grande souplesse dans l'octroi d'autorisations pour ouvrir des périphériques. Les exigences en matière de privilèges peuvent être modifiées pour la stratégie de périphérique et les propriétés du pilote. Vous pouvez configurer les exigences en matière de privilèges, ou lorsque la mise à jour de l'installation, de l'ajout d'un pilote de périphérique.

Pour plus d'informations, reportez-vous aux pages de manuel add_drv(1M), devfsadm(1M), getdevpolicy(1M) et update_drv(1M).

Les privilèges et de gestion des ressources

Dans Oracle Solaris, les contrôles de ressources project.max-locked-memory et zone.max-locked-memory peuvent être utilisés pour limiter la consommation mémoire des processus auxquels le privilège PRIV_PROC_LOCK_MEMORY est affecté. Ce privilège permet à un processus de verrouiller des pages dans la mémoire physique.

Si vous affectez le privilège PRIV_PROC_LOCK_MEMORY à un profil de droits, vous pouvez attribuer aux processus qui disposent de ce privilège la capacité de verrouiller la totalité de la mémoire. A titre de protection, définissez un contrôle de ressources pour empêcher l'utilisateur de ce privilège de verrouiller toute la mémoire. Pour les processus privilégiés qui s'exécutent dans une zone non globale, définissez le contrôle de ressources zone.max-locked-memory. Pour les processus privilégiés qui s'exécutent sur un système, créez un projet et définissez le contrôle de ressources project.max-locked-memory . Pour plus d'informations sur ces contrôles de ressources A propos de, reportez -Chapitre 6, A propos des contrôles de ressources du manuel Administration de la gestion des ressources dans Oracle Solaris 11.2 Chapitre 2, Présentation de la configuration des zones non globales du manuel Présentation d’Oracle Solaris Zones

L'utilisation d'anciennes applications et des privilèges

Pour s'adapter aux anciennes applications, l'implémentation de privilèges fonctionne à la fois avec le superutilisateur et les modèles de droits. Le noyau suit automatiquement l'indicateur PRIV_AWARE, qui indique qu'un programme a été conçu pour fonctionner avec des privilèges. Prenons un processus fils qui n'est pas conscient des privilèges. Les privilèges hérités du processus parent sont disponibles dans les jeux effectif et autorisé de l'enfant. Si le processus enfant définit un UID sur 0, le processus enfant n'a peut-être pas toutes les capacités de superutilisateur. Les jeux effectif et autorisé du processus sont limités aux privilèges dans le jeu limite de l'enfant. Par conséquent, le jeu limite d'un processus conscient des privilèges restreint les privilèges root des processus fils qui ne sont pas conscients des privilèges.

Le débogage de l'utilisation des du privilège, procédez comme suit :

Oracle Solaris fournit des outils pour déboguer les défaillances des privilèges. Les commandes ppriv et truss fournissent le résultat du débogage. Pour consulter des exemples, reportez-vous à la page de manuel ppriv(1). Pour consulter des exemples, reportez-vous à la section Troubleshooting Rights. Dépannage de gestion des droits Vous pouvez également utiliser la commande dtrace. Pour plus d'informations, reportez-vous à la page de manuel dtrace(1M) et au manuel Oracle Solaris 11.2 Dynamic Tracing Guide .