【编者按】对比虚拟机,Docker 在体量等方面拥有显著的优势。然而,当 DevOps 享受 Docker 带来扩展性、资源利用率和弹性提升的同时,其所面临的安全隐患同样值得重视,近日 Chris Taschner 在 SEI 上撰文进行了总结。本文系 OneAPM 工程师编译整理。

基于容器的虚拟化平台提供了一种方式在隔离的实例中运行多个应用程序。容器技术可以为 DevOps 提供显著的优势,包括提高系统的扩展性、资源利用率和弹性。然而除下容器与主系统完全解耦,这种使用就会存在潜在的安全隐患。因此,这篇博文主要描述了为什么系统管理员应该密切关在容器中运行应用所采纳的权限等级,以及用户访问主机系统的权限。


容器已经成为 DevOps 中的新热点技术。特别是 Docker 公司,已经成为了提供容器技术服务的领头公司。使用 Docker 平台,应用程序极其依赖可以被打包进一个单元,也就是所谓的镜像。随后,Docker 就可以运行这个镜像的实例,每个镜像的实例都是在驻留在容器中。

Docker 正成为 DevOps 的代名词。如果你还不熟悉容器的优势的话,概括地说,它们包括了可使用的镜像和易于使用的公共库、镜像版本,以及 Docker 的思想。(欲了解更多信息,请参见 devops.com 上的 Three Reasons We Use Docker)。

在谈到大小时,容器具有很多优势。不像虚拟机,一个容器不需要运行整个操作系统,或者对系统的硬件进行拷贝。容器仅仅只需要足够的操作系统和硬件信息资源来运行它负责托管的应用。所以,容器所消耗的资源比虚拟机小很多,因此同一主机上可以跑的容器肯定比虚拟机多。

而在最小化需要运行的容器上,开发者需要做好足够的权衡。其中一个就是减少容器与系统之间的分离度。与此相反,虚拟机与主机的分离性比容器的更高。Docker 用户需要 root 用户权限去运行容器,如果 Docker 用户不知道容器中运行的是什么,这可能会引发问题。通常,那些 repository 都是未经过审核的,这意味着任何人都可以创建和上传镜像。显然,对从互联网上下载下来的容器给以太多的信任会引发安全问题。

共享命名空间的问题通常是 Docker 的最大问题。命名空间是系统内核所创建的组,它通常会为不同源和区域指定不同的访问级别。而究于扩展性,在 Docker 中并没有为容器提供不同的命名空间——倘若有数百个容器在运行,那么每个容器都需要有独立的命名空间。而且,如果一个容器想要共享存储,那么所有共享这个存储的命名空间必须使用显式访问。

在回应有关 Docker 的安全问题时,这里详细讨论了如何缓解 Docker 的安全问题。缓解方法的建议包括了限制直接访问主机和在容器中运行应用的权限。

除了 Doker 容器的安全指导,还有其它在确保容器安全方面的建议。共享命名空间的一个潜在解决方案是使用 Seccomp,它是一个进程处理工具。Daniel Walsh 在 opensource.com 上详细地介绍了这项工作。

管理员必须清楚容器中运行的究竟是什么。从互联网上下载来的镜像应该仔细审核,然后才在敏感的环境中运行。一般规则,不像字面意义,容器不应是包含在容器内运行的应用程序。

本文系 OneAPM 工程师编译整理。想阅读更多技术文章,请访问 OneAPM 官方博客

Docker 面临的安全隐患,我们该如何应对的更多相关文章

  1. docker基础及安装

    Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  2. Docker学习之1—基础及安装

    Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  3. 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)

    转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的 ...

  4. 漫扯:从polling到Websocket

    Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...

  5. Critical: Update Your Windows Secure Channel (cve-2014-6321,MS14-066)

    前言:风雨欲来山满楼,下半年开始各种凶猛的漏洞层出不穷,天下已经不太平,互联网已经进入一个新的台阶 0x01 cve-2014-6321 11月的补丁月,微软请windows的用户吃了顿大餐,发布了1 ...

  6. 漫谈 polling 和 Websocket

    Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...

  7. 基于VC++的网络扫描器设计与实现

    本文正文其实是自己的毕业论文,现在搬上来有两个原因. 一是之前大学的文档都放在百度网盘上,大概去年的时候百度网盘改版搞得不太稳定,文件夹移动次数一多里边就会有一些文件丢失了,也没有很在意.但前几天看申 ...

  8. Hadoop生态圈-构建企业级平台安全方案

    Hadoop生态圈-构建企业级平台安全方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,估计你对大数据集群的部署对于你来说应该是手到擒来了吧.我之前分享过 ...

  9. 如何使SpringBoot作为Maven构建的项目的一个子模块

    1.问题 一般使用springboot都会引用springboot作为parent,在实际项目中web只是系统模块的一个子集.当然你可以做两个项目来管理,一个项目用来做各种支持包,一个项目专门做web ...

随机推荐

  1. Node.js学习笔记 02 Implementing flow control

    What is flow control? 和其它语言一样,Node.js 在代码编写时,如何组织代码,如何写出clean code都是不可避免的难点. 同时,由于Node.js的天然特性(异步,事件 ...

  2. StyleCop学习笔记——自定义规则

    本文将简单的一步一步的指导这可能有助于学习如何创建自己的规则 1.创建一个项目. Visual Studio创建一个新的类库项目.NET3.5 2.引用两个DLL,StyleCop.dll和Style ...

  3. XMLCDataSection

    XmlCDataSection类描述XML数据中的CDATA节.CDATA节在XML数据中的作用是为文本内容定义引号和转义符,即XML解析器不解析CDATA中的任何字符. XmlCDataSectio ...

  4. Android线程---UI线程和非UI线程之间通信

        近期自学到了线程这一块,用了一上午的时间终于搞出来了主.子线程间的相互通信.当主线程sendMessage后,子线程便会调用handleMessage来获取你所发送的Message.我的主线程 ...

  5. hdu 1381 Crazy Search

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1381 Crazy Search Description Many people like to sol ...

  6. hdu 2275 Kiki & Little Kiki 1

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2275 题意:n个操作 Push 入容器 Pop弹出一个 满足<=该数的最大的数(若没有输出No ...

  7. (转)Docker常用命令

    1. 查看docker信息(version.info) # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2. 对image的操作(s ...

  8. 68.vivado与modelsim的关联以及器件库编译

    vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的.而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证.为了将vivado和mod ...

  9. vc++编程之在程序中加入网址链接

    在vc++对话框编程中,我们处于某种需要(介绍自己的软件或者自己的博客)可以在对话框上增加一个网址链接,用户只要一点击,就进入了相应的网页,我在此演示下如何完成. 1 打开编译器,我们新建一个基于对话 ...

  10. 理解bashrc和profile[转载]

    这儿有一篇文章不错 https://wido.me/sunteya/understand-bashrc-and-profile/ http://blog.csdn.net/luotuo44/artic ...