首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/var/run/docker.sock的Docker安全风险是什么?

/var/run/docker.sock的Docker安全风险是什么?
EN

Stack Overflow用户
提问于 2016-11-28 12:20:51
回答 4查看 11.8K关注 0票数 17

这篇博客文章中,我在评论中找到了以下引文:

本·费什曼 是的-你说得对,我应该指出码头插座的安全问题。这是目前的主要阻断剂,这是实际的生产,我们肯定是寻求帮助,使其更好的工作,正如您注意到的待办事项清单。

虽然我确信这对许多人来说是有意义的,但对于我们其他人来说,有人能用明确的术语解释一下这个“安全问题”是什么吗?我想它指的是:

代码语言:javascript
复制
    volumes:
  - "/var/run/docker.sock:/var/run/docker.sock"

在停靠-合成文件中。对吗?如何利用这一点呢?这是否有效地禁止了这种方法的生产使用?如果是的话,有解决办法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-01-24 07:14:25

对于我们其他人来说,有人能用明确的术语确切地解释这个“安全问题”是什么吗?

/var/run/docker.sock的所有者是运行容器的主机的root,默认组成员为docker组。这就是为什么在另一个容器中挂载var/run/docker.sock给您根权限的原因,因为现在您可以做任何具有docker组成员资格的root用户可以做的事情。

这是否有效地禁止了这种方法的生产使用?如果是的话,有解决办法吗?

对于解决办法,这些帖子可能会有所帮助:https://integratedcode.us/2016/04/08/user-namespaces-sharing-the-docker-unix-socket/https://integratedcode.us/2016/04/20/sharing-the-docker-unix-socket-with-unprivileged-containers-redux/

退一步,了解需要挂载var/run/docker.sock的usecase,看看是否有其他方法可以满足usecase。不幸的是,如果问题中没有usecase描述,就很难提供避免安装unix套接字的替代方案。

祝你好运和荣誉,因为你努力做正确的事情!

票数 22
EN

Stack Overflow用户

发布于 2018-09-14 13:35:10

这是一个老问题,但我希望我能给你一个确切的例子。

有人能用明确的术语解释一下这个“安全问题”是什么吗?

以下是开发的核心:

代码语言:javascript
复制
sh0% docker run -v /var/run/docker.sock:/ourdocker.sock:ro -it ubuntu bash
sh1# docker -H unix:///ourdocker.sock run --privileged -v /:/host ubuntu bash
sh2# nsenter --mount=/host/proc/1/ns/mnt --pid=/host/proc/1/ns/pid
sh3# # now we are in the host namespaces with root access

如果使用用户名称空间,则此问题很难利用,但在某些情况下仍有一定的可能性(您仍然可以影响在同一主机上运行的其他容器)。

请注意,虽然上面的示例使用了--privileged,但是没有--privileged是可以做到这一点的(因此,即使您有一个阻止--privilegedDocker AuthZ插件,您仍然无法安全地避免这种情况)。

票数 18
EN

Stack Overflow用户

发布于 2016-11-28 12:30:03

任何可以写入dockerd套接字的进程都可以有效地访问主机上的根.好吧,你能不能在生产中使用这个取决于你自己。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40844197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档