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" |