AppArmor
Qu'est-ce que AppArmor ?
AppArmorSystème de contrôle d'accès obligatoire basé sur les chemins pour Linux, utilisé par Ubuntu et SUSE comme alternative plus simple à SELinux pour confiner les programmes individuels.
AppArmor est un Linux Security Module (LSM) qui applique un contrôle d'accès obligatoire au moyen de profils par programme exprimés en termes de chemins de fichiers, de capacités et de primitives réseau, plutôt qu'avec les étiquettes d'inode utilisées par SELinux. Issu d'Immunix et maintenu par SUSE et Canonical, AppArmor est le cadre MAC par défaut d'Ubuntu et d'openSUSE depuis la fin des années 2000 et figure dans le noyau principal depuis la version 2.6.36. Les profils se trouvent sous /etc/apparmor.d et peuvent être chargés en mode enforce ou complain (journalisation seule), avec des assistants tels que aa-genprof, aa-logprof et aa-easyprof. Sa conception basée sur les chemins est généralement plus facile à écrire et à auditer que la politique de SELinux, au prix d'une sémantique plus faible face aux renommages, aux bind mounts et aux chroots.
Dans les conteneurs, Docker génère et charge un profil docker-default dans tmpfs pour chaque conteneur en mode enforce, sauf s'il est remplacé avec --security-opt apparmor= ; il bloque les écritures vers des chemins sensibles comme /proc/sysrq-trigger et /sys, en agissant aux côtés de seccomp et de la réduction des capacités comme défense en profondeur. AppArmor est également utilisé par snapd, libvirt, LXD et Firefox. Ses limites sont réelles : comme les règles correspondent à des chemins plutôt qu'à l'objet sous-jacent, les liens physiques et les astuces de montage peuvent parfois contourner un profil, et un profil ne vaut que ce que valent ses règles — des globs trop larges (par exemple autoriser /** rwk) en annulent tout l'intérêt. La CVE-2019-5736 (l'écrasement du binaire hôte de runc) a montré que les évasions de conteneur peuvent survenir dans des zones qu'un profil par défaut ne couvre pas, raison pour laquelle AppArmor est combiné avec seccomp, les espaces de noms utilisateur et les montages en lecture seule plutôt que d'y faire confiance seul.
flowchart TB
P[Exécution de processus] --> K[Hook LSM du noyau]
K --> Q{Profil chargé ?}
Q -- No --> U[Non confiné : DAC normal]
Q -- Yes --> M{Action dans le profil ?}
M -- Mode enforce --> R{Autorisée ?}
R -- Yes --> A[Autoriser]
R -- No --> D[Refuser + journal d'audit]
M -- Mode complain --> L[Autoriser + journaliser la violation]Un flux de travail typique exécute un nouveau profil en mode complain, sollicite l'application, puis utilise aa-logprof pour transformer les accès journalisés en règles avant de passer en mode enforce.
● Exemples
- 01
Ubuntu fournit par défaut des profils AppArmor pour Firefox, MySQL et Evince.
- 02
snapd utilise AppArmor (en plus de seccomp) pour confiner chaque paquet snap installé.
● Questions fréquentes
Qu'est-ce que AppArmor ?
Système de contrôle d'accès obligatoire basé sur les chemins pour Linux, utilisé par Ubuntu et SUSE comme alternative plus simple à SELinux pour confiner les programmes individuels. Cette notion relève de la catégorie Cryptographie en cybersécurité.
Que signifie AppArmor ?
Système de contrôle d'accès obligatoire basé sur les chemins pour Linux, utilisé par Ubuntu et SUSE comme alternative plus simple à SELinux pour confiner les programmes individuels.
Comment se défendre contre AppArmor ?
Les défenses contre AppArmor combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de AppArmor ?
Noms alternatifs courants : AA.