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

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Les utilisateurs verrouillent les applications qu'ils exécutent

Les utilisateurs peuvent supprimer des privilèges de base à partir de demandes à l'aide de la stratégie de privilège étendue. La stratégie empêche l'accès aux répertoires auxquels les applications ne devraient pas accéder.


Remarque -  L'ordre est important. Pour les répertoires tels que des privilèges plus étendus $HOME / Télécharger plus restrictif * doit être de privilèges pour la plupart de transport affectés à $HOME /. les répertoires *.
Exemple 4-4  Exécution d'un navigateur dans un environnement protégé

Cet exemple illustre la façon dont les utilisateurs peuvent exécuter le navigateur Firefox dans un environnement protégé. Dans cette configuration, le répertoire Documents de l'utilisateur est masqué pour Firefox.

A l'aide de la commande suivante, l'utilisateur supprime des privilèges de base de la commande. /usr/bin/firefox Les arguments de privilèges étendus de la commande ppriv -r limitent le navigateur Web à la lecture et l'écriture uniquement dans les répertoires spécifiés par l'utilisateur. L'option –e et ses arguments ouvrent le navigateur avec la stratégie de privilèges étendus.

% ppriv -r "\
{file_read}:/dev/*,\
{file_read}:/etc/*,\
{file_read}:/lib/*,\
{file_read}:/usr/*,\
{file_read}:/var/*,\
{file_read}:/proc,\
{file_read}:/proc/*,\
{file_read}:/system/volatile/*,\
{file_write}:$HOME,\
{file_read}:$HOME/.*,\
{file_read,file_write}:$HOME/.mozill*,\
{file_read,file_write}:$HOME/.gnome*,\
{file_read,file_write}:$HOME/Downloa*,\
{file_read,file_write}:/tmp,\
{file_read,file_write}:/tmp/*,\
{file_read,file_write}:/var/tmp,\
{file_read,file_write}:/var/tmp/*,\
{proc_exec}:/usr/*\
" -e /usr/bin/firefox file:///$HOME/Desktop

Lorsque les privilèges file_read et file_write sont utilisés dans une stratégie étendue, il est nécessaire d'accorder un accès explicite à chaque fichier dans lequel il doit être possible de lire ou d'écrire. L'utilisation du caractère générique * est essentielle dans des stratégies de ce type.

Pour gérer des répertoires d'accueil montés automatiquement, l'utilisateur ajoute une entrée explicite au chemin de montage automatique, par exemple :

{file_read,file_write}:/export/home/$USER

Si le site n'utilise pas automount, la liste initiale des répertoires protégés est suffisante.

Les utilisateurs peuvent automatiser ce navigateur Web par ligne de commande en créant un interpréteur de commandes protégé par un script. Pour lancer un navigateur, l'utilisateur appelle alors le script et non pas la commande. /usr/bin/firefox.

Exemple 4-5  Protection du système à partir de répertoires sur les processus d'application

Dans cet exemple, un utilisateur standard crée un modèle d'environnement restreint pour les applications wrapper à l'aide d'un script shell. La première partie du script quelques répertoires les limites des infos de paramétrage d'applications. Les exceptions, tels que Firefox, sont traitées plus loin dans le script. Script des commentaires sur suivez les parties du script.

1 #!/bin/bash
2 
3 # Using bash because ksh misinterprets extended policy syntax
4 
5 PATH=/usr/bin:/usr/sbin:/usr/gnu/bin
6 
7 DENY=file_read,file_write,proc_exec,proc_info
8 
9 SANDBOX="\
10 {file_read}:/dev/*,\
11 {file_read}:/etc/*,\
12 {file_read}:/lib/*,\
13 {file_read,file_write}:/usr/*,\
14 {file_read}:/proc,\
15 {file_read,file_write}:/proc/*,\
16 {file_read}:/system/volatile/*,\
17 {file_read,file_write}:/tmp,\
18 {file_read,file_write}:/tmp/*,\
19 {file_read,file_write}:/var/*,\
20 {file_write}:$HOME,\
21 {file_read}:$HOME/.*,\
22 {file_read,file_write}:$PWD,\
23 {file_read,file_write}:$PWD/*,\
24 {proc_exec}:/usr/*\
25 "
26 
27 # Default program is restricted bash shell
28 
29 if [[ ! -n $1 ]]; then
30     program="/usr/bin/bash --login --noprofile
        --restricted"
31 else
32     program="$@"
33 fi
34 
35 
36 # Firefox needs more file and network access
37 if [[ "$program" =~ firefox ]]; then
38     SANDBOX+=",\
39 {file_read,file_write}:$HOME/.gnome*,\
40 {file_read,file_write}:$HOME/.mozill*,\
41 {file_read,file_write}:$HOME/.dbu*,\
42 {file_read,file_write}:$HOME/.puls*\
43 "
44 
45 else
46     DENY+=",net_access"
47 fi
48 
49 echo Starting $program in sandbox
50 ppriv -s I-$DENY -r $SANDBOX -De $program

La stratégie peuvent être modifiés de façon à autoriser l'accès des applications spécifiques plus ou moins. Un ajustement aux lignes 38 à 42, où Firefox a des droits d'accès en écriture à plusieurs fichiers points qui conservent les informations de session dans le répertoire de l'utilisateur. En outre, Firefox n'est pas soumis à la ligne 46, ce qui supprimer l'accès au réseau. Toutefois, Firefox est toujours limitée de lire des fichiers arbitraires sur le répertoire personnel de l'utilisateur et peut enregistrer des fichiers uniquement dans son répertoire en cours.

En tant que niveau supplémentaire de protection, le programme par défaut, à la ligne 30, est un shell Bash limité. Un shell restreint n'est plus possible de changer son répertoire en cours ou cliquez sur le point de l'utilisateur des fichiers. Par conséquent, toutes les commandes qui s'y trouvent sont aussi démarrées à partir du verrouillé dans le shell le modèle d'environnement restreint.

Dans la dernière ligne du script, la commande ppriv reçoit en argument deux jeux de privilèges sous forme de variables de shell, $DENY et $SANDBOX.

Le premier ensemble, $DENY, empêche le processus de lire ou d'écrire dans un fichier, d'exécuter un sous-processus, d'observer les processus d'autres utilisateurs et, de manière conditionnelle, d'accéder au réseau. Ces restrictions sont trop importantes, c'est pourquoi dans le second jeu, $SANDBOX, la stratégie est affinée en énumérant des répertoires qui sont disponibles pour la lecture, l'écriture et l'exécution.

En outre, l'option de débogage –D est spécifiée à la ligne 50. Les défaillances d'accès s'affichent dans la fenêtre de terminal en temps réel et inclure le privilège objet nommé et correspondant, ce dernier étant requis pour indiquer la réussite. Cette des informations de débogage pour aider l'utilisateur à personnaliser la stratégie destinée à d'autres applications.