1 、容器权限过高

# 检查容器运行用户

docker inspect --format '{{.Config.User}}' <容器ID>

docker exec <容器ID> id

# 检查容器是否以特权模式运行

docker inspect --format '{{.HostConfig.Privileged}}' <容器ID>

# 检查挂载的敏感目录

docker inspect --format '{{range .Mounts}} {{.Source}} -> {{.Destination}} {{end}}' <容器ID> | grep -E "/proc|/sys|/dev|/etc"

# 重建安全的容器(非root用户)

docker run --user 1000:1000 --read-only --cap-drop=ALL <镜像名>

2、镜像安全扫描与漏洞修复

# 扫描镜像漏洞(需安装trivy)

trivy image <镜像名>

# 查看镜像历史(检测恶意层)

docker history --no-trunc <镜像名>

# 清理危险镜像

docker rmi -f <有漏洞的镜像>

# 重建镜像使用安全基础镜像

sed -i 's/FROM .*/FROM <安全的基础镜像>/' Dockerfile

docker build -t <新镜像名> .

3、Docker daemon 安全配置

# 检查Docker daemon监听配置(避免远程未授权访问)

netstat -tulpn | grep dockerd

# 查看TLS配置

grep -E "tlsverify|tlscacert|tlscert|tlskey" /etc/docker/daemon.json

# 启用TLS认证

cat > /etc/docker/daemon.json << 'EOF'

{

  "tlsverify": true,

  "tlscacert": "/etc/docker/certs/ca.pem",

  "tlscert": "/etc/docker/certs/server.pem",

  "tlskey": "/etc/docker/certs/server-key.pem",

  "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]

}

EOF

systemctl restart docker

# 检查安全组配置

docker system info | grep -i "security options"

更多推荐