不使用特权容器
描述
使用--privileged
标志将所有Linux
内核功能提供给容器,从而覆盖-cap-add
和-cap-drop
标志。若无必须请不要使用
隐患分析
--privileged
标志给容器提供所有功能,并且还提升了cgroup
控制器执行的所有限制。
换句话说,容器可以做几乎主机可以做的一切。这个标志存在允许特殊用例,就像在Docker
中运行Docker
一样
审计方式
```shell script [root@localhost ~]# docker ps --quiet |xargs docker inspect --format '{{.Id}}:Privileged={{.HostConfig.Privileged}}' 7121e891641679fda571e67a0e9953d263feca2508b013c70ae2546f6336b1a0:Privileged=false bb3875c107daa062f2eccb10bd48ad54954cecd7d51a5eba385335f377b7aae9:Privileged=false 7a3a2c9e524a9d44ae857abd52447f86940dd49e1947291e7985b98e3c6a309a:Privileged=false 0780c27f8eb858e172e6a7458d2b2221130e6dde0f64887d396ad5bc350a4a64:Privileged=false
确保`Privileged`为`false`
### 修复措施
不要运行带有`--privileged`标志的容器。例如,不要启动如下容器:
```shell script
docker run -idt --privileged centos /bin/bash
参考文档
- Docker容器最佳安全实践白皮书(V1.0)
- Docker官方文档