Table des matières
Un profil Novell® AppArmor représente la stratégie de sécurité pour une instance de programme ou un processus individuel. Il s'applique à un programme exécutable. Toutefois, si une partie du programme nécessite des droits d'accès différents d'autres parties, le programme peut « changer les hats » pour utiliser un contexte de sécurité différent, distinct de l'accès du programme principal. Cela est nommé hat ou sous-profil.
ChangeHat permet aux programmes de changer de hat au sein d'un profil Novell AppArmor. Il permet de définir la sécurité à un niveau plus fin que le processus.
Cette fonction nécessite que chaque application « reconnaisse changehat », ce qui signifie qu'elle est modifiée pour qu'une requête au module Novell AppArmor change de domaine de sécurité selon une périodicité arbitraire lors de l'exécution de l'application.
Un profil peut posséder un nombre arbitraire de sous-profils, mais sur deux niveaux seulement : un sous-profil ne peut pas posséder lui-même de sous-profils. Un sous-profil est écrit comme un profil séparé et son nom est celui du profil qui le contient suivi du nom du sous-profil, les deux noms étant séparés par un ^. Les sous-profils doivent être stockés dans le même fichier que le profil parent.
![]() | Remarque |
|---|---|
Pour plus d'informations, reportez-vous à la page de manuel | |
Novell AppArmor fournit un module mod-apparmor pour le programme Apache. Le module mod-apparmor fonctionne sur votre système SUSE Linux pour le que le serveur Web Apache puisse « reconnaître ChangeHat ». Il est installé si Apache se trouve sur votre système.
Lorsque Apache reconnaît ChangeHat, il vérifie les profils de sécurité Novell AppArmor personnalisés suivants dans l'ordre donné pour chaque demande d'URI qu'il reçoit.
Hat spécifique d'un URI (par exemple, ^phpsysinfo-dev/templates/classic/images/bar_left.gif)
DEFAULT_URI
HANDLING_UNTRUSTED_INPUT
Si vous disposez de la version 2 d'Apache requise sur votre système, le module mod-apparmor est installé automatiquement avec Novell AppArmor et il est ajouté à la configuration d'Apache. La version 1.3 d'Apache n'est pas prise en charge.
![]() | Remarque |
|---|---|
Si vous installez LoadModule change_hat_module modules/mod_change_hat.so | |
Comme avec la plupart des outils Novell AppArmor, vous disposez de deux méthodes de gestion de ChangeHat, YaST ou l'interface de ligne de commande. Vous pouvez gérer les applications qui reconnaissent ChangeHat de façon beaucoup plus souple sur la ligne de commande, mais ce processus est également plus complexe. Les deux méthodes permettent de gérer les hats de votre application et de les remplir avec des entrées de profil.
Dans les étapes qui suivent, nous vous présentons une démonstration qui ajoute des hats à un profil Apache en utilisant YaST. Dans le menu , les utilitaires de profil de Novell AppArmor invitent à créer de nouveaux hats pour les requêtes d'URI distinctes. La création d'un nouveau hat permet de créer des profils individuels pour chaque URI. Vous pouvez ainsi créer des règles très précises pour chaque requête.
Si l'URI traité ne représente pas un traitement significatif ou un risque de sécurité significatif, vous pouvez sélectionner en toute sécurité pour traiter cet URI dans le hat par défaut, qui est le profil de sécurité par défaut.
Dans la démonstration, nous allons créer un nouveau hat pour l'URI phpsysinfo-dev et ses accès suivants. À l'aide des utilitaires de profil, nous déléguons ce qui est ajouté à ce nouveau hat. Le hat résultant devient un conteneur à sécurité renforcée qui englobe tout le traitement du serveur qui se produit lorsque l'URI phpsysinfo-dev est transmis au serveur Web Apache.
Dans cette démonstration, nous allons générer un profil pour le phpsysinfo de l'application (reportez-vous à http://phpsysinfo.sourceforge.net pour plus d'informations). Le paquetage phpsysinfo-dev doit être installé sous /srv/www/htdocs/phpsysinfo-dev/ dans une nouvelle installation de Novell AppArmor.
Lorsque phpsysinfo-dev est installé, vous êtes prêt à ajouter des hats au profil Apache. Dans l'interface graphique de Novell AppArmor, sélectionnez .
![]() |
Dans , entrez httpd2-prefork.
Cliquez sur . La fenêtre s'ouvre.
![]() |
Redémarrez Apache en entrant rcapache2 restart dans une fenêtre de terminal.
![]() | Remarque |
|---|---|
Redémarrez maintenant les programmes concernés. | |
Ouvrez http://localhost/phpsysinfo-dev/ dans un navigateur Web. La fenêtre du navigateur doit afficher des informations relatives à l'utilisation du réseau et au système.
![]() | Remarque |
|---|---|
Pour vérifier que cette requête est traitée par le serveur et que vous ne reportez pas aux données mises en cache dans votre navigateur, vous devez rafraîchir la page. Pour cela, cliquez sur le bouton du navigateur pour vous assurer qu'Apache traite la requête de l'URI | |
Cliquez sur . Novell AppArmor lance l'outil logprof, qui recherche toutes les informations apprises au cours de l'étape précédente. Il commence à vous poser des questions relatives au profil.
Dans notre démonstration, logprof nous demande d'abord ou . En effet, il a remarqué que phpsysinfo-dev a fait l'objet d'un accès dans une URI. Sélectionnez .
![]() |
Cliquez sur .
Lorsque vous choisissez à l'étape précédente, un nouveau hat est créé dans le profil. Il est spécifié que les questions ultérieures sur les actions du script sont ajoutées dans le hat qui vient d'être créé et non dans le hat par défaut de cette application.
Dans l'écran suivant, Novell AppArmor affiche un programme externe que le script a exécuté. Vous pouvez spécifier que le programme doit s'exécuter en confiné par le hat phpsysinfo-dev (choisissez ), confiné par un profil séparé (choisissez ), ou non confiné ou sans aucun profil de sécurité (choisissez ). Avec l'option , un nouveau profil est créé pour le programme s'il n'en existe pas encore.
![]() | Remarque |
|---|---|
Le fait de choisir peut générer une faille de sécurité importante et doit être utilisé avec précaution. | |
![]() |
Les questions restantes invitent à générer de nouveaux hats et à ajouter des entrées à votre profil et à ses hats. Le processus d'ajout d'entrées à des profils est abordé en détail à la Section 3.3.1, « Ajout d'un profil à l'aide de l'assistant » (↑Guide d'administration de Novell AppArmor 2.0).
Après avoir répondu à toutes les questions, cliquez sur pour enregistrer vos modifications et quitter l'assistant.
Voilà à quoi peut ressembler un hat phpsyinfo-dev.
Exemple 5.1. Exemple de hat phpsysinfo-dev
^phpsysinfo {
#include <program-chunks/base-files>
/bin/df ix,
/bin/bash ix,
/dev/tty rw,
/etc/SuSE-release r,
/etc/fstab r,
/etc/hosts r,
/etc/mtab r,
/proc/** r,
/sbin/lspci ix,
/srv/www/htdocs/sysinfo/** r,
/sys/bus/pci/devices r,
/sys/devices/** r,
/usr/bin/who ix,
/usr/share/pci.ids r,
/var/log/apache2/{access,error}_log w,
/var/run/utmp r,
}
![]() | Remarque |
|---|---|
Le profil, | |
Lorsque vous utilisez la boîte de dialogue (pour obtenir des instructions, reportez-vous à la Section 3.3.3, « Modification d'un profil » (↑Guide d'administration de Novell AppArmor 2.0)) ou lorsque vous ajoutez un nouveau profil en ajoutant (pour obtenir des instructions, reportez-vous à la Section 3.3.2, « Ajout manuel d'un profil » (↑Guide d'administration de Novell AppArmor 2.0)), vous pouvez ajouter des hats (sous-profils) à vos profils Novell AppArmor.
Vous pouvez ajouter un sous-profil ChangeHat à partir de la fenêtre .
![]() |
Dans la fenêtre , cliquez sur puis sélectionnez . La boîte de dialogue s'ouvre :
![]() |
Entrez le nom du hat à ajouter au profil Novell AppArmor. Le nom est l'URI qui, lors de l'accès, reçoit l'ensemble d'autorisations défini dans le hat.
Cliquez sur . Vous revenez à la .
Après avoir ajouté un nouveau hat, cliquez sur .
![]() | Remarque |
|---|---|
Pour consulter un exemple de profil Novell AppArmor, reportez-vous à l'Exemple 5.1, « Exemple de hat phpsysinfo-dev » (↑Guide d'administration de Novell AppArmor 2.0). | |