用户可以更改 docker 容器中的内核配置表单吗?



根据我从阅读 docker 的文档中所理解的,容器共享运行它们的主机的内核。这是否意味着用户可以 - 通过使用容器 - 按照他的意愿设置内核配置?如果是这种情况,为什么我们要费心允许/拒绝内核功能,如果用户可以设置内核本身?我的第三个问题是:如果用户确实可以设置内核,那么像 Apparmor 这样的系统不能帮助防止这种情况发生吗?

总结一下我的问题:

  1. 用户可以从正在运行的容器中更改 docker 主机的内核配置吗(因为他们共享内核)?
  2. 如果 1 的答案是肯定的,那么为什么要费心限制容器的内核功能呢?
  3. 仍然如果 1 的答案是肯定的,像 Apparmor 这样的系统(Docker安全文档的本条目中给出的解决方案之一,据说可以加强 docker 主机内核的安全性)可以防止这种攻击吗?

用户可以从 正在运行的容器(因为它们共享内核)

容器在其自己的沙盒中运行。它有自己的文件系统,与主机隔离。因此,默认情况下,它无权影响主机及其内核。

现在,您可以通过挂载只能由 root 管理员用户访问的主机目录来授予容器对关键内容的访问权限。而且由于默认情况下容器内的rootroot容器外部,则可以从挂载的目录中利用计算机上的关键内容。但是,这是使用用户命名空间解决的。

因此,只要您不让容器访问 crtical 内容,它仍然是安静安全的,甚至比直接在主机上运行应用程序更安全。

您可以在官方文档中阅读有关 docker 安全性的更多信息。

最新更新