AppArmor
Overview
AppArmor est un système de contrôle d'accès obligatoire (MAC - Mandatory Access Control) développé par Canonical, intégré par défaut dans Ubuntu et Debian, permettant de confiner les applications en limitant leurs permissions systèmeAppArmor utilise des profils de sécurité définissant les ressources (fichiers, réseaux, capacités) auxquelles chaque application peut accéder, réduisant ainsi la surface d'attaque en cas de compromission.
AppArmor est particulièrement adapté aux environnements où le confinement d'applications est essentiel : serveurs web, serveurs de base de données, conteneurs, et applications critiques nécessitant une isolation stricteIl peut être utilisé en mode enforcement (blocage des accès non autorisés) ou en mode complain (enregistrement uniquement)
Dans un contexte DevOps/SRE, AppArmor peut être intégré dans les images Docker/VM pour durcir les applications, utilisé dans les playbooks Ansible pour déployer des profils, et ses événements peuvent être corrélés avec les SIEM pour la détection d'anomalies et la réponse aux incidents.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://apparmor.net/ |
| Licence | GPL v2 |
| Plateformes | Linux (Ubuntu, Debian, SUSE, etc.) |
| Difficulté | Intermédiaire |
TL;DR
AppArmor est un système MAC pour confiner les applications sur Linux, intégré par défaut dans Ubuntu/DebianIl est particulièrement utile pour limiter les permissions des applications web, bases de données, et conteneursPoints forts : intégration native Ubuntu/Debian, profils faciles à créer, mode complain pour apprentissageLimite principale : moins de fonctionnalités que SELinux, principalement disponible sur certaines distributions Linux.
Cas d'usage typiques
- Confinement des serveurs web (Apache, Nginx) pour limiter l'accès aux fichiers système
- Isolation des bases de données (MySQL, PostgreSQL) pour réduire la surface d'attaque
- Durcissement des conteneurs Docker avec profils AppArmor
- Confinement d'applications critiques pour limiter l'impact d'une compromission
- Protection des services système exposés sur Internet
- Isolation des applications multi-tenant sur les serveurs partagés
Avantages
- Intégration native dans Ubuntu et Debian
- Profils faciles à créer et maintenir (syntaxe simple)
- Mode complain pour apprentissage sans blocage
- Performance faible overhead
- Communauté active et documentation complète
- Compatible avec les conteneurs Docker
- Intégration avec les outils de gestion de configuration
Limites
- Principalement disponible sur certaines distributions Linux (Ubuntu, Debian, SUSE)
- Moins de fonctionnalités que SELinux (pas de multi-niveaux, labels)
- Nécessite création et maintenance des profils
- Profils par défaut peuvent être trop permissifs
- Courbe d'apprentissage pour créer des profils efficaces
- Certaines applications peuvent nécessiter des profils complexes
- Mode complain peut générer beaucoup de logs
Intégration dans un socle DevOps / SRE
AppArmor peut être intégré dans un socle DevOps/SRE de plusieurs manières. Des playbooks Ansible peuvent déployer et activer des profils AppArmor sur les serveurs, configurer les modes enforcement/complain, et gérer les profils personnalisés. Les profils peuvent être versionnés dans Git et déployés via les pipelines CI/CD.
Pour les environnements conteneurisés, AppArmor peut être utilisé pour durcir les conteneurs Docker en appliquant des profils restrictifs. Les événements AppArmor peuvent être envoyés vers les SIEM (Wazuh, ELK) pour corrélation avec d'autres événements de sécurité et détection d'anomalies. AppArmor peut également être intégré dans les images de base pour un durcissement automatique lors du déploiement.
Ressources
- Site officiel : https://apparmor.net/
- Documentation : https://gitlab.com/apparmor/apparmor/-/wikis/Documentation
- Wiki Ubuntu : https://wiki.ubuntu.com/AppArmor
- Guide de création de profils : https://apparmor.net/documentation/