AppArmor (Application Armor) est un système de contrôle d'accès obligatoire (MAC) pour Linux, intégré au noyau. Il confine les programmes à un ensemble limité de ressources, réduisant ainsi la surface d'attaque en cas de compromission.
Pourquoi Utiliser AppArmor ?
- Sécurité en profondeur : Ajoute une couche de sécurité au-delà des permissions traditionnelles (read, write, execute).
- Simplicité : Considéré comme plus simple à apprendre et à gérer que son alternative, SELinux. Les profils sont basés sur les chemins de fichiers.
- Pré-configuré : De nombreuses distributions (comme Ubuntu) sont livrées avec des profils AppArmor pré-activés pour des services courants.
Prérequis
- Système d'exploitation : Distribution Linux supportant AppArmor (Ubuntu, Debian, openSUSE...).
- Privilèges : Accès root ou privilèges sudo.
Installation et Activation
Étape 1 : Vérification du statut d'AppArmor
AppArmor est souvent installé et activé par défaut. Vérifiez son statut :
sudo apparmor_status
# Alias plus moderne : sudo aa-status
Cette commande liste les profils chargés et leur mode (enforce ou complain).
Étape 2 : Installation
Si AppArmor n'est pas installé, vous pouvez le faire via votre gestionnaire de paquets :
# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y apparmor apparmor-utils
Étape 3 : Activation du service
Assurez-vous que le service AppArmor est activé au démarrage :
sudo systemctl enable apparmor
sudo systemctl start apparmor
Le service est maintenant en cours d'exécution et les profils par défaut sont appliqués.
Gestion des profils AppArmor
Les profils sont des fichiers texte situés dans /etc/apparmor.d/ qui définissent les permissions pour une application spécifique.
Les deux modes de fonctionnement
- Mode
enforce: Le mode par défaut. AppArmor applique strictement les règles du profil et bloque toute action non autorisée. - Mode
complain: Mode permissif. AppArmor ne bloque aucune action, mais enregistre les violations dans les logs système. C'est idéal pour tester et développer de nouveaux profils.
Changer le mode d'un profil
# Passer le profil de Firefox en mode complain
sudo aa-complain /etc/apparmor.d/usr.bin.firefox
# Repasser le profil en mode enforce
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox
Recharger les profils
Après avoir modifié un profil, vous devez le recharger pour que les changements prennent effet :
# -r pour "replace" (remplacer)
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.firefox
Pour recharger tous les profils :
sudo systemctl reload apparmor
Analyser les logs
Les violations des règles AppArmor sont enregistrées dans les logs du noyau. C'est la source d'information principale pour déboguer un profil.
# Utiliser journalctl
sudo journalctl -k | grep "apparmor=\"DENIED\""
# Ou directement dans les fichiers de log
sudo grep "apparmor=\"DENIED\"" /var/log/audit/audit.log
sudo grep "apparmor=\"DENIED\"" /var/log/syslog
Chaque ligne de log "DENIED" vous donnera des informations précieuses sur l'opération refusée, le profil concerné et le processus.
Créer un profil de A à Z peut être complexe. Il est recommandé d'utiliser les outils du paquet
apparmor-utils, comme aa-genprof et aa-logprof, qui facilitent grandement ce processus.
Conclusion
AppArmor est une brique de sécurité fondamentale pour tout système Linux moderne. En confinant les applications, il limite drastiquement les dégâts potentiels d'une faille de sécurité. Bien que sa mise en place puisse sembler intimidante, l'utilisation des profils existants et des utilitaires comme aa-status et aa-complain la rend accessible et très efficace.