TMAegis
More rules for docker

TMA-DOCKER-5.6

Ensure sensitive host system directories are not mounted on containers

HighLevel 1Automateddocker

Description

Mounting host system directories (/, /boot, /dev, /etc, /lib, /proc, /sys, /usr) lets a container read or change the host. Flags those directories mounted in any mode, and anything below them mounted read-write. 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}} {{range .Mounts}} {{.Source}}|{{.RW}}{{end}}' $ids) || exit 1; bad=$(printf '%s\n' "$out" | awk '{for(i=2;i<=NF;i++){split($i,a,"|"); if(a[1] ~ /^\/(boot|dev|etc|lib|proc|sys|usr)?$/ || (a[2]=="true" && a[1] ~ /^\/(boot|dev|etc|lib|proc|sys|usr)\//)) print $1" "a[1]}}'); [ -z "$bad" ] && echo compliant || printf '%s\n' "$bad"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Redeploy the container without bind mounts of sensitive host directories; if a file is truly needed, mount only that file read-only (-v /etc/foo:/etc/foo:ro).

Properties

Operating systems
Any
Tags
dockerruntime
Reference
CIS Docker Benchmark v1.9.0 - 5.6 Ensure sensitive host system directories are not mounted on containers

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target docker