18 janv. 2013

AppArmor - Créer des profiles de sécurité pour vos applications

AppArmor qu'est-ce que c'est?


AppArmor est  une  application qui permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint ses accès au système d'exploitation. Il s'agit plus précisément d'un outil qui permet de verrouiller les applications en limitant  leurs accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement. Il  vient ainsi compléter  le modèle d'Unix de contrôle d'accès discrétionnaire (Discretionary access control) en permettant d'utiliser le contrôle d'accès obligatoire ( Mandatory access control).





Environnement

Dans ce tutoriel nous allons utiliser la distribution linux ubuntu 11.10.

Installation d'Apparmor

Dans Ubuntu comme dans plusieurs autres distributions AppArmor est chargé par défaut.

Aprés tout un apt-get s'impose:

Installation de apparmor-profiles :
 



Installation d’apparmor-utils :
 


Les différentes commandes

Dans AppArmor, pour restreindre l'accès à une application ou processus, il faut lui créer un profile. On retrouve deux types de profiles:

Le mode complain:

Le mode complain peut être considéré comme un mode passif, un mode de surveillance dans lequel AppArmor ne fera que consigner les violations en fonction des autorisations définies dans un profil, sans restreindre l’application.

Mettre un profile en mode complain

# aa-complain /chemin/vers/programme



Le mode enforce:

Ici, les violations sont aussi consignées mais l’application est activement restreinte et n’est autorisée à agir que dans le champ d’action défini par son profil. Ce mode est évidement plus intéressant.

Mettre un profile en mode enforce :

# aa-enforce /chemin/vers/programme



Créer un nouveau profile



Pour ce faire on va utiliser l'outil genprof (le man nous en dira plus).

Exemple: pour les illustrations on va utiliser l'application Thunderbird de Mozilla qui est intégrée dans ubuntu.

Dans la console lancée, on active le mode enforce pour le profile de Thunderbird
 


Là on voit que le profile est mis en mode enforce.
 
Les profiles...les profiles...c'est quoi?...ils sont ou?

En fait, le profile c'est juste un fichier qu'on peut édité pour y consigné les restrictions de l'application. Tous les profiles se trouve dans le répertoire /etc/apparmor.d/ selon un nommage bien défini.

Pour Thunderbird on trouve le nom usr.lib.thunderbirdXXX, la suite dépend de votre version.

 
Pour avoir plus de détails sur les profiles on peut utiliser la commande  
apparmor_status, elle nous permet de voir les applications/processus en mode complain ou enforce et leur statut.



désactiver/relancer un profile


Désactiver:




Dans ce cas on retrouve le profile dans le dossier disable qui se trouve dans /etc/apparmor.d/disable/ 

On a deux profiles désactivés Firefox et Thunderbird.


Relancer:





Gestion des profiles

Pour la gestion des profile on a l'outil logprof

Exemple:


Appuyez sur Entrée : Permet l'accès au chemin du répertoire sélectionné.

Autoriser : Permet l'accès aux entrées du chemin du répertoire spécifiées.              
AppArmor suggère l'autorisation d'accès du fichier.                                                            Refuser : Empêche le programme d'accéder aux entrées du chemin de répertoire spécifié. Novell AppArmor passe ensuite à l'événement suivant.

Nouveau : Vous invite à entrer votre propre règle pour cet événement et permet de spécifier la forme d'expression régulière que vous souhaitez. Si l'expression que vous entrez ne satisfait pas pleinement l'événement ayant occasionné la question, Novell AppArmor vous demande confirmation et vous laisse entrer de nouveau l'expression.

Glob : Lorsque vous cliquez sur cette option, le chemin du répertoire est modifié (à l'aide de caractères joker) pour inclure tous les fichiers du répertoire de l'entrée suggéré. Lorsque vous double-cliquez sur cette option, l'accès est accordé à tous les fichiers et sous-répertoires se trouvant au-dessous de celui qui est affiché.

Glob avec (E) xt : Cette option modifie le chemin de répertoire d'origine tout en conservant l'extension du nom de fichier. Par exemple, /etc/apache2/file.ext devient /etc/apache2/*.ext, en ajoutant le caractère joker (l'astérisque) à la place du nom de fichier. Cela permet au programme d'accéder à tous les fichiers du répertoire suggéré qui se terminent par l'extension .ext. Lorsque vous double-cliquez sur cette option, l'accès est accordé à tous les fichiers (ayant cette extension particulière) et sous-répertoires se trouvant au-dessous de celui qui est affiché.

Édition : Permet de modifier la ligne sélectionnée. La nouvelle ligne modifiée apparaît au bas de la liste.

Interrompre : Interrompt logprof en éliminant toutes les modifications de règle entrées jusque-là et sans modifier aucun des profils.

Terminer : Ferme logprof en enregistrant toutes les modifications de règle entrées jusque-là et en modifiant tous les profils.

Remarque :

Il existe une application pour la gestion des profile qui est YaST, cependant YaST est l'outil d'installation et de configuration pour les distributions openSUSE et SUSE Linux Enterprise. Il est populaire par sa simplicité, son interface graphique attractive et par la possibilité de paramétrer votre système rapidement pendant et après l'installation. YaST signifie Yet another Setup Tool. YaST peut être utilisé pour configurer votre système entier. Configuration materielle, configuration du réseau, services système et ajustement des paramètres de sécurité, toutes ces tâches peuvent être effectuées depuis le Centre de contrôle de YaST.

Introduction au DNS

Dans ce billet je vous propose de découvrir les bases du DNS. Le DNS, qu’est-ce que c’est ? DNS (Domaine Name System) est un ...