Description
Each loaded AppArmor profile runs in a mode. In enforce mode, accesses outside the profile
are blocked and logged. In complain mode, they are only logged. Profiles flagged unconfined
are a third case: they do not restrict the program but attach specific rights to it (Debian 13
ships many of them for user namespace mediation), and are out of scope here.
Rationale
Complain mode is meant for writing and testing profiles. A profile left in complain mode in production gives a false sense of confinement: the program is not restricted at all.
Impact
Switching a profile to enforce mode can break the program it covers if the profile is
incomplete. Debian 13 ships several profiles in complain mode on purpose; enforce them one by
one, checking the logs (journalctl -k | grep apparmor) for denials.
Audit
Run aa-status --complaining. It must print 0.
aa-status lists the profiles in complain mode by name.
Automated: every check must pass. Scanners report each check by its id.
complain-count
Number of loaded profiles in complain mode.
script: |
n=$(aa-status --complaining 2>/dev/null) || exit 3
echo "$n"
[ "$n" -eq 0 ]
Remediation
- List the profiles in complain mode:
aa-status. - For each one, install
apparmor-utilsand runaa-enforce /etc/apparmor.d/<profile>. - Watch for denials with
journalctl -k | grep apparmorand fix or revert the profile.
Rollback
Put a profile back in complain mode with aa-complain /etc/apparmor.d/<profile>.
References
- aa-status(8), Debian manual pages Debian, vendor-doc, accessed 2026-10-18
- Debian Wiki - AppArmor/HowToUse Debian, vendor-doc, accessed 2026-10-18
- ANSSI-BP-028 v2.0 - Recommandations de configuration d'un système GNU/Linux (R45) ANSSI, guide, accessed 2026-10-18
Mappings
| Framework | ID | Relation | Note |
|---|---|---|---|
| ANSSI-BP-028 - Recommandations de configuration d'un système GNU/Linux2.0 | R45 | partial | R45 also asks for AppArmor to be enabled, which is CB-DEB-BOOT-008. |
| NIST SP 800-53 Rev. 55.1.1 | AC-3 | related |
How this control relates to the other framework's: equivalent, stricter, looser, partial or related.
Threats mitigated
| Taxonomy | ID |
|---|---|
| MITRE ATT&CK | T1068 |
Related controls
- requires
CB-DEB-BOOT-008Install and enable AppArmor
People and lifecycle
| Authors |
|
| Verified | 2026-10-18 by Sn0wAlice on 12, Proxmox VM, Debian 12 genericcloud image, kernel 6.1.0-54-cloud-amd64, BIOS boot. Passes on a fresh install (11 profiles, all enforce). |
| Verified | 2026-10-18 by Sn0wAlice on 13, Proxmox VM, Debian 13 genericcloud image, kernel 6.12.113+deb13-cloud-amd64, BIOS boot. Fails on a fresh install (23 complain profiles); manual procedure with aa-enforce makes it pass. |
| Introduced in | v0.1.0 |
| Created, updated | 2026-10-18, 2026-10-18 |
| Translations | fr |