TMAegisBeta
More rules for docker

Docker

TMA-DOCKER-5.14

Ensure that incoming container traffic is bound to a specific host interface

MediumLevel 1Automateddocker

Description

Ports published without a host IP listen on all interfaces (0.0.0.0 / ::), exposing the service on every network the host is attached to. 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 $p, $c := .NetworkSettings.Ports}}{{range $c}} [{{.HostIp}}]{{end}}{{end}}' $ids) || exit 1; bad=$(printf '%s\n' "$out" | awk '{for(i=2;i<=NF;i++) if($i=="[]" || $i=="[0.0.0.0]" || $i=="[::]") {print $1; break}}'); [ -z "$bad" ] && echo compliant || printf '%s\n' "$bad"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Republish the container bound to a specific interface, e.g. docker run -p 10.2.3.4:49153:80 ... (compose: "10.2.3.4:49153:80").

Properties

Operating systems
Any
Tags
dockerruntimenetwork
Reference
CIS Docker Benchmark v1.9.0 - 5.14 Ensure that incoming container traffic is bound to a specific host interface

Check this host

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

shell
tmaegis scan --target docker