一尘不染

以root用户身份运行的Docker的安全性

docker

Docker 博客文章指出:

默认情况下,Docker容器是相当安全的。特别是如果您要以非特权用户(即非root用户)的身份在容器内运行进程。”

那么,如果我以root用户身份在docker下运行,安全问题是什么?我的意思是,如果我以非特权用户身份处理我的进程,这是非常安全的,那么,以root用户身份托管在容器中怎么会对我有害?我只是想让它理解它,如果以root身份运行时它不安全,那么如何隔离它呢?哪些系统调用可以公开主机系统呢?


阅读 838

收藏
2020-06-17

共1个答案

一尘不染

当您以root身份运行时,可以访问范围更广的内核服务。例如,您可以:

  • 操纵网络接口,路由表,netfilter规则;
  • 创建原始套接字(通常来说,是“外来”套接字,使用比良好的旧TCP和UDP受到更少审查的代码);
  • 挂载/卸载/重新挂载文件系统;
  • 更改文件所有权,权限,扩展属性,覆盖常规权限(即,使用略有不同的代码路径);
  • 等等

(有趣的是,所有这些示例均受功能保护。)

关键是,以root身份,您可以练习更多的内核代码。如果该代码中存在漏洞,则可以以root用户身份(而非普通用户)触发它。

此外,如果有人找到了突破容器的方法,那么如果您以root身份突破,显然比普通用户造成的损失要大得多。

2020-06-17