SELinux的Docker安全性
原文译自:http://opensource.com/business/14/7/docker-security-selinux
这篇文章基于我今年在DockerCon一个讲座,它将讨论我们当前听到的Docker容器的安全问题.
容器并不"包容"
我听到也读到许多假定Docker容器是应用沙盒的观点--这意味着他们可以在他们的系统上使用有根权限的Docker来运行任意的程序. 他们相信Docker容器将会保护他们的主机系统.
- 我听到人们说Docker容器就像在VMs/KVM执行程序一样安全
- 我知道人们在随意的下载Docker镜像然后在他们的主机上执行
- 我甚至看到PaaS服务器(不是OpenShift)允许用户上传他们自己的镜像运行在多租户系统上
- 我有一个同事说道: Docker就是从网上下载任意的代码并以root模式运行
你在乎吗?
- 尽快的降低特权
- 尽可能以非root模式运行你的服务
- 将容器里的root模式视为容器外的root模式
不要在你的系统里运行任意的Docker镜像,我从许多方面看到Docker容器革命类似于1999年的Linux革命,那时当一个管理员听到一个新的很酷的Linux服务时,他们会:
- 去rpmfind.net和其他一些网站上去搜索包
- 下载这些包
- 通过RPM或make install来安装
- 以管理者模式执行
会出什么问题?
两周后管理员听到一个zlib的脆弱性问题并不得不指出( 他们希望并祈祷不是), 软件是不安全的!
这就是Red Hat发行版和其他一些值得信赖的第三方介入并拯救他们的时刻, Red Hat的企业版Linux给管理员提供了:
- 一个提供下载的安全的repository
- 安全的升级来修复问题
- 发现问题并修复的团队
- 管理/维护/安全增强的工程师团队
- 通用的认证标准来检查OS的安全性问题
所以问题是什么? 为什么容器并不"包容"?
当你运行在一个容器里时,你就已经直接可以和主机的内核打交道了.
没有被当成命名空间的主要的内核子系统如:
- SELinux
- Cgroups
- /sys下的文件系统
- /proc/sys, /proc/sysrq-trigger, /proc/irq, /proc/bus
- /dev/mem
- /dev/sd* 文件系统设备
- 内核模块
如果通过一个特权进程对以上的某个模块通信或攻击的话,你就拥有了整个系统.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。