首页/安全/漏洞与攻击面速查/特权容器与危险能力配置
主机与服务风险面53 条

特权容器与危险能力配置

运行容器时使用 --privileged、--pid=host、--network=host 或添加 CAP_SYS_ADMIN 等高危能力,会显著缩小容器与宿主之间的隔离边界。

漏洞与攻击面速查安全更新于 2026-10-13

特权容器指什么

特权容器指运行时把容器几乎当宿主机 root 对待的配置。--privileged 会放开全部能力、设备访问与部分内核接口;--pid=host、--ipc=host、--network=host 与单独添加 CAP_SYS_ADMIN、CAP_SYS_PTRACE 等高危能力,也会明显缩小容器与宿主之间的隔离边界。这类配置不必然等于漏洞,但属于高影响配置:要么有明确业务理由并登记,要么收敛掉。

基本信息

适用平台Docker、containerd,Kubernetes 对应 privileged、hostPID、hostNetwork
高危参数--privileged、--pid=host、--ipc=host、--network=host、--cap-add SYS_ADMIN 或 SYS_PTRACE
等效风险挂载 /var/run/docker.sock、挂载宿主根目录或设备文件
影响容器被突破后可直接操作宿主机与同宿主其他容器
加固配套--read-only 只读根文件系统、no-new-privileges、非 root 运行
检查手段docker inspect、kubectl get pod -o yaml 批量盘点
管理要求纳入变更评审与配置清单,定期复核业务理由

参数与风险

参数风险替代做法
--privileged放开全部能力与设备访问改用最小能力集,逐项申请
--cap-add SYS_ADMIN可挂载文件系统、调整内核参数评估真实需求后按需添加
--cap-add SYS_PTRACE可调试与读取其他进程内存只给必要的调试场景
--pid=host容器内可见宿主机全部进程用默认命名空间,配合进程审计
--network=host共享宿主网络栈,绕过网络隔离用端口映射或 CNI 网络
挂载 docker.sock等于获得宿主机容器控制权改用受限的 API 代理

风险参数检查

风险参数检查
# Docker:单容器检查
docker inspect <容器名> --format '{{.HostConfig.Privileged}}'
docker inspect <容器名> --format '{{.HostConfig.CapAdd}}'
# 输出 true 或包含 SYS_ADMIN、SYS_PTRACE,需要业务方给出理由
# 批量盘点宿主机上的特权容器
docker ps -q | xargs -I{} docker inspect {} --format '{{.Name}} {{.HostConfig.Privileged}}'
# Kubernetes:查看各命名空间的特权与 hostNetwork 配置
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.hostNetwork}{"\n"}{end}'

收敛建议

收敛建议
默认不加特权,按需最小化能力:
--cap-drop ALL 之后再 --cap-add 具体能力,逐项写清用途
禁止 --pid=host、--ipc=host,除非有明确场景并通过评审
用只读根文件系统 --read-only 与 no-new-privileges 加固
容器内进程以非 root 用户运行,避免 UID 0 直接映射
用准入控制(如 Pod Security)阻止未评审的特权工作负载

典型使用场景

  • 季度容器资产盘点,确认哪些容器持 privileged 或高危能力
  • 新服务上线评审时核对运行时参数
  • 应急排查:定位可疑容器与其挂载的宿主路径
  • 迁移上云或更换运行时后的基线复核
  • 演练中验证容器逃逸路径是否已被收敛
  • 审计举证:说明每项高危能力的业务理由与复核时间
特权容器不是必然漏洞,但属于高影响配置。管理动作是:评审、登记、定期复核;临时为排障加的参数要在问题解决后回收。
挂载 /var/run/docker.sock 的效果接近特权:容器内进程可以创建新容器并挂载宿主目录,等于间接获得宿主机控制权,排查时不要只看 privileged 字段。

易错点

  • 用特权模式解决权限报错后不再回收:历史遗留特权容器长期存在,评审时容易漏掉
  • 只检查 --privileged,忽略 CAP_SYS_ADMIN 与 docker.sock 挂载这类等效风险
  • 特权容器与其他业务容器同宿主运行,一旦被突破可直接影响同宿主全部业务
  • 容器内仍以 root 运行,与特权配置叠加后逃逸门槛更低
  • 没有配置清单,靠人工记忆判断哪些容器有特权,盘点结果不可信

数据来源与参考

  • Docker 官方文档(runtime privilege 与 capability)
  • OWASP Docker Security Cheat Sheet
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌