AppArmor Container
cloudDéfinition
AppArmor (Application Armor) est un module de sécurité du noyau Linux (LSM - Linux Security Module) qui implémente un contrôle d'accès obligatoire (MAC - Mandatory Access Control) basé sur des profils. Dans le contexte des conteneurs Docker et Kubernetes, AppArmor restreint les opérations qu'un processus conteneurisé peut effectuer : accès aux fichiers du système hôte, opérations réseau, capabilities Linux utilisables, et types de signaux envoyables. Docker intègre nativement AppArmor : le profil docker-default est automatiquement appliqué aux conteneurs sur les systèmes avec AppArmor activé (Ubuntu, Debian), sauf si le conteneur est démarré avec --security-opt apparmor=unconfined. Ce profil par défaut bloque les opérations dangereuses comme monter des filesystems, accéder aux raw sockets, et modifier certains fichiers kernel, tout en permettant les opérations nécessaires aux applications web standard. Les profils AppArmor se définissent en deux modes. Le mode enforce bloque les opérations interdites et les journalise. Le mode complain permet toutes les opérations mais journalise les violations, permettant d'identifier les permissions nécessaires avant de passer en mode enforce. L'outil aa-genprof génère automatiquement un profil à partir d'une session d'utilisation enregistrée de l'application. Dans Kubernetes, AppArmor se configure via des annotations sur les pods : container.apparmor.security.beta.kubernetes.io/<container_name>: localhost/<profile_name>. Le profil doit être préchargé sur tous les nœuds Kubernetes où le pod peut être schedulé, via un DaemonSet ou une configuration d'image nœud (node image). Kubernetes 1.30+ supporte la configuration AppArmor dans le securityContext de manière native (sans annotations). AppArmor est complémentaire à seccomp : seccomp filtre les syscalls autorisés (quelles opérations le processus peut demander au kernel), tandis qu'AppArmor filtre les accès aux ressources (quels fichiers, sockets, capabilities le processus peut utiliser). Utilisés conjointement avec la gestion des capabilities Linux, ils constituent une défense en profondeur complète pour les conteneurs.
Profil AppArmor personnalisé pour nginx
Créez un profil AppArmor minimal pour un conteneur nginx : incluez les permissions en lecture pour les fichiers statiques et la configuration (/etc/nginx/**, /var/www/html/**), les permissions en écriture pour les logs (/var/log/nginx/**), la permission d'utiliser les sockets TCP (network inet stream), et bloquez l'accès aux binaires shell (/bin/sh, /bin/bash deny). Chargez le profil : sudo apparmor_parser -r /etc/apparmor.d/docker-nginx. Appliquez au pod Kubernetes via l'annotation AppArmor ou le securityContext.apparmor.
AppArmor vs seccomp : quand utiliser quoi
Les deux contrôles sont complémentaires mais ciblent des aspects différents. seccomp est plus portable (fonctionne sur n'importe quelle architecture Linux et dans les conteneurs sans LSM AppArmor), AppArmor offre un contrôle plus granulaire sur les ressources. Priorisez seccomp RuntimeDefault pour tous les pods (activation facile, bonne couverture de base), puis ajoutez AppArmor pour les services exposés (nginx, databases) avec des profils interdisant l'accès aux ressources sensibles du système hôte. Activez les deux sur les workloads critiques.
Diagnostic des violations AppArmor
Les violations AppArmor apparaissent dans /var/log/kern.log ou via journalctl -k | grep apparmor. Un message DENIED indique une opération bloquée. Si vous voyez des DENIED légitimes (l'application ne fonctionne pas correctement), passez le profil en mode complain temporairement, reproduisez le problème, collectez les violations et ajoutez les permissions manquantes. Outils utiles : aa-logprof (analyse les logs et propose des permissions à ajouter), aa-status (liste les profils chargés et les processus confinés).
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h