Docker
TMA-DOCKER-5.2
Ensure that, if applicable, an AppArmor Profile is enabled
MediumLevel 1Automateddocker
Description
AppArmor confines container processes; with AppArmor active on the host every container should run under a profile (docker-default or a custom one). Applies only where AppArmor is enabled (requires /sys/kernel/security/apparmor). Flags containers with an empty or unconfined AppArmorProfile. The audit inspects every running container (docker ps -q) and prints the offending names; a host with no running containers is compliant.
How it is checked
Audit method: Shell command
shell
ids=$(docker ps -q) || exit 1; [ -z "$ids" ] && { echo compliant; exit 0; }; out=$(docker inspect --format '{{.Name}} {{.AppArmorProfile}}' $ids) || exit 1; bad=$(printf '%s\n' "$out" | awk 'NF<2 || $2=="unconfined" {print $1}'); [ -z "$bad" ] && echo compliant || printf '%s\n' "$bad"- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Run containers with --security-opt apparmor=docker-default (or a custom profile loaded with apparmor_parser) and never apparmor=unconfined.
Properties
- Operating systems
- Any
- Tags
- dockerruntimeapparmor
- Reference
- CIS Docker Benchmark v1.9.0 - 5.2 Ensure that, if applicable, an AppArmor Profile is enabled
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target docker