首页/安全/渗透测试与安全评估速查/Docker 远程 API 暴露检查
内网评估60 条

Docker 远程 API 暴露检查

开放的 Docker 守护进程端口等于宿主机控制权:核查 2375/2376 可达性与 TLS 校验配置。

Docker 远程 API 暴露

Docker 守护进程提供远程 API 用于管理容器与镜像,明文端口为 2375,TLS 端口为 2376。一旦 2375 可达且没有客户端证书校验,等于把宿主机控制权交出去:可以列出容器、读取环境变量(常含数据库口令与内部令牌)、挂载宿主目录、甚至以特权模式启动容器后取得宿主机 root。2376 若只做服务端证书而不校验客户端证书,防护效果同样有限。这类目标属于宿主机级控制面,任何写操作验证都禁止。

基本信息

端口2375 为明文 API,2376 为 TLS API
核查项端口可达性、是否启用双向 TLS 客户端校验
暴露信号未认证即可读取版本与容器列表
处置方向关闭远程 API,或仅受控网段可达并启用双向 TLS

典型使用场景

  • CI 构建机:为支持远程构建而开放 API,未做来源限制
  • 运维脚本:批量管理容器时直接连远程 API 而不用 SSH
  • 编排工具对接:外部平台需要连接节点守护进程
  • 云主机默认镜像:容器平台安装脚本自动开启远程监听
  • 容器内横向:容器本身可达内网 API,形成跳板路径

只读检查示例

只读检查示例
curl -s --max-time 3 http://10.0.20.11:2375/version
# 能返回版本信息即说明 API 未受保护;记录后立即停止
curl -s --max-time 3 http://10.0.20.11:2375/containers/json | head -c 300
# 只确认列表可读,不执行创建、启停、挂载或执行类接口
# 写操作会直接改变宿主机状态,属于禁止动作

端口与保护级别

形态保护情况风险等级
2375 明文可达无传输加密、无身份校验极高,等同交出宿主机控制权
2376 仅服务端证书加密但不校验客户端仍然极高,连接方可直接管理
2376 双向 TLS校验客户端证书可控,仍需限制来源网段
仅本机套接字未开放网络监听安全,维持现状即可
禁止任何写操作验证:创建容器、挂载目录、执行命令都可能落地恶意负载或影响生产业务。
容器网络内部同样需要核查:容器往往能直连宿主机 API 端口,构成从业务漏洞到宿主机接管的完整链路。

易错点

  • 用创建容器来证明危害:直接在生产主机落地负载,属严重越界
  • 只检查明文端口,漏掉未校验客户端证书的 TLS 端口:防护形同虚设
  • 忽略容器网络内的暴露:容器可直连宿主机 API,这是常见的横向路径
  • 不看来源限制:只要办公网可达,风险与公网暴露差别不大
  • 忽略 Docker 组权限:本机属于该组的普通用户同样可获得等效控制权

数据来源与参考

  • Docker 官方文档(守护进程安全)
  • CIS Docker Benchmark
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌