Accueil

AppArmor Utils : Gestion des Profils de Sécurité

Security
Difficulte: Intermediate
3 min de lecture

Guide complet pour utiliser AppArmor Utils afin de créer, gérer et renforcer les profils de sécurité de vos applications sur Linux.

Retour aux tutoriels

L'essentiel

  • aa-genprof /usr/sbin/tcpdump génère un profil en mode apprentissage : on sollicite l'application depuis un second terminal, puis on revient appuyer sur S (Scan) pour analyser les logs et enfin F (Finish) pour sauvegarder.
  • À la sortie d'aa-genprof, le profil est écrit dans /etc/apparmor.d/ et passe directement en mode enforce : l'application est confinée immédiatement.
  • aa-logprof est l'outil de maintenance : il rescanne les logs et propose d'autoriser ou refuser les actions bloquées par un profil existant, typiquement après une mise à jour applicative.
  • Le nom du fichier de profil remplace les / par des . : /usr/sbin/tcpdump devient /etc/apparmor.d/usr.sbin.tcpdump, et c'est ce chemin qu'attendent aa-complain, aa-enforce et aa-disable.
  • Trois états pour un profil : aa-complain journalise sans bloquer (test), aa-enforce applique strictement (production), aa-disable désactive le profil.
Qu'est-ce qu'AppArmor Utils ?
AppArmor Utils est une suite d'outils en ligne de commande qui facilite la gestion des profils AppArmor. Ces utilitaires permettent de générer, d'affiner et de maintenir les politiques de sécurité qui confinent les applications.

Pourquoi Utiliser AppArmor Utils ?

  • Création de profils simplifiée : L'outil aa-genprof permet de générer un profil en mode "apprentissage".
  • Maintenance facile : aa-logprof analyse les logs pour vous aider à mettre à jour les profils existants.
  • Gestion des états : Passez facilement un profil du mode complain (journalisation seule) au mode enforce (blocage actif).

Prérequis

  • Système d'exploitation : Distribution Linux avec AppArmor (Ubuntu, Debian, openSUSE...).
  • Privilèges : Accès root ou privilèges sudo.
  • AppArmor : Le service AppArmor doit être installé et activé.

Installation d'AppArmor Utils

Le paquet apparmor-utils est généralement installé avec AppArmor. Sinon, installez-le manuellement :

# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y apparmor-utils

Création d'un profil avec aa-genprof

C'est l'outil principal pour créer un nouveau profil pour une application qui n'en a pas.

Étape 1 : Lancer le générateur de profil

Supposons que vous souhaitiez confiner l'utilitaire tcpdump. Lancez aa-genprof en lui indiquant le binaire :

sudo aa-genprof /usr/sbin/tcpdump

Étape 2 : Déclencher les actions de l'application

Dans un autre terminal, lancez l'application et effectuez les actions que vous souhaitez autoriser. Par exemple :

sudo tcpdump -i eth0 -c 5

Étape 3 : Scanner les logs et construire le profil

Retournez au premier terminal (celui de aa-genprof) et appuyez sur la touche `S` (Scan). L'outil va analyser les logs système à la recherche d'événements générés par `tcpdump`.

Pour chaque événement, aa-genprof vous demandera si vous souhaitez l'autoriser (Allow), le refuser (Deny), ignorer l'événement (Ignore), etc. Répondez aux questions pour construire progressivement votre profil.

Étape 4 : Sauvegarder et activer le profil

Une fois que vous avez traité tous les événements, appuyez sur `F` (Finish) pour sauvegarder le profil dans /etc/apparmor.d/. Le profil sera automatiquement mis en mode enforce.

Profil créé !
Votre application est maintenant confinée par AppArmor. Vous pouvez vérifier son statut avec sudo aa-status.

Mise à jour d'un profil avec aa-logprof

Si une application confinée a besoin de nouvelles permissions (par exemple après une mise à jour), aa-logprof est l'outil qu'il vous faut.

Lancez-le simplement :

sudo aa-logprof

Comme pour aa-genprof, il va scanner les logs et vous proposer d'autoriser ou de refuser les actions qui ont été bloquées par le profil existant.

Gestion des modes de profil

Vous pouvez facilement changer le mode d'un profil.

Passer en mode complain (non-bloquant)

sudo aa-complain /etc/apparmor.d/usr.sbin.tcpdump

Dans ce mode, les violations sont journalisées mais pas bloquées. C'est utile pour tester un profil sans casser l'application.

Passer en mode enforce (bloquant)

sudo aa-enforce /etc/apparmor.d/usr.sbin.tcpdump

C'est le mode de production standard, où les règles sont strictement appliquées.

Désactiver un profil

sudo aa-disable /etc/apparmor.d/usr.sbin.tcpdump
Chemin du profil
Notez que le nom du fichier de profil dans /etc/apparmor.d/ remplace les `/` par des `.` (ex: /usr/sbin/tcpdump devient usr.sbin.tcpdump).

Conclusion

Les outils apparmor-utils sont indispensables pour travailler efficacement avec AppArmor. Ils transforment la tâche, potentiellement complexe, de création et maintenance de profils en un processus interactif et guidé. Maîtriser aa-genprof et aa-logprof est la clé pour sécuriser efficacement vos applications Linux.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

aa-genprof ne détecte aucun événement quand j'appuie sur S, pourquoi ?
C'est presque toujours parce que l'application n'a pas été exercée pendant que aa-genprof tournait. L'outil ne devine rien : il analyse les logs système à la recherche d'événements réellement produits par le binaire. Laissez aa-genprof ouvert dans un premier terminal, lancez l'application dans un second (par exemple sudo tcpdump -i eth0 -c 5) en effectuant toutes les actions à autoriser, puis revenez appuyer sur S.
Mon application confinée s'est cassée après une mise à jour, comment la débloquer proprement ?
Lancez simplement sudo aa-logprof : il scanne les logs, repère les actions que le profil existant a bloquées et vous propose de les autoriser ou de les refuser une par une. C'est la procédure prévue pour faire évoluer un profil sans le réécrire. Si le service doit rester disponible pendant la collecte, passez d'abord le profil en sudo aa-complain /etc/apparmor.d/<profil> puis repassez-le en aa-enforce une fois les nouvelles règles validées.
aa-complain me répond que le profil est introuvable, qu'est-ce qui cloche ?
Ces commandes attendent le chemin du fichier de profil dans /etc/apparmor.d/, pas le chemin du binaire. La convention de nommage remplace les / par des . : pour confiner /usr/sbin/tcpdump, le profil s'appelle /etc/apparmor.d/usr.sbin.tcpdump. Un simple ls /etc/apparmor.d/ vous donne le nom exact à passer à aa-complain, aa-enforce ou aa-disable.
Quelle différence entre aa-complain, aa-enforce et aa-disable ?
aa-complain met le profil en mode permissif : les violations sont journalisées mais rien n'est bloqué, ce qui permet de tester un profil sans casser l'application. aa-enforce applique strictement les règles et bloque le reste, c'est le mode de production standard. aa-disable désactive complètement le profil : l'application n'est plus confinée du tout, et plus aucune violation n'est journalisée.
Comment vérifier que mon nouveau profil est bien chargé et actif ?
Utilisez sudo aa-status : la commande liste les profils chargés en les regroupant par mode, ce qui permet de vérifier d'un coup d'œil que votre profil est présent et qu'il est bien en enforce plutôt qu'en complain. Si le profil n'apparaît pas du tout, c'est qu'il n'a pas été sauvegardé dans /etc/apparmor.d/ ou qu'il n'a pas été chargé.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.