Docker
TMA-DOCKER-5.30
Ensure that Docker's default bridge "docker0" is not used
LowLevel 2Automateddocker
Description
Containers on the default bridge (docker0) can reach each other without restriction and are exposed to ARP spoofing; user-defined networks should be used. Flags containers attached to the network named bridge. 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 $n, $_ := .NetworkSettings.Networks}} {{$n}}{{end}}' $ids) || exit 1; bad=$(printf '%s\n' "$out" | awk '{for(i=2;i<=NF;i++) if($i=="bridge") {print $1; break}}'); [ -z "$bad" ] && echo compliant || printf '%s\n' "$bad"- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Create user-defined networks (docker network create ...) and attach containers to them instead of the default bridge.
Properties
- Operating systems
- Any
- Tags
- dockerruntimenetwork
- Reference
- CIS Docker Benchmark v1.9.0 - 5.30 Ensure that Docker's default bridge "docker0" is not used
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target docker --level 2