为容器提供安全保护的七种方法

日期: 2017-10-25 作者:Albert McKeon 来源:TechTarget中国 英文

容器化是一种相对较新的操作系统虚拟化形式,它可以让开发人员在被隔离的资源单元中运行应用程序。 关于企业对容器的接受程度增长有多快众说纷纭。今年早些时候,451研究项目预测,容器的市场到2020年将从2016年的7.62亿美元增长到27亿美元。然而,今年9月,非营利组织云铸造基金会Cloud Foundry发布的一份调查报告指出,容器的市场是不温不火的:从2016年到2017年,容器使用量仅增长了3%,从22%增至25%。

但即便是像云铸造基金会这样的市场观察人士也认为,虽然在过去的一年里,容器的使用增长比较缓慢,但容器技术最终还是会快速发展的。他们的部署速度和使用更少资源的能力应该使容器对许多……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

容器化是一种相对较新的操作系统虚拟化形式,它可以让开发人员在被隔离的资源单元中运行应用程序。 关于企业对容器的接受程度增长有多快众说纷纭。今年早些时候,451研究项目预测,容器的市场到2020年将从2016年的7.62亿美元增长到27亿美元。然而,今年9月,非营利组织云铸造基金会Cloud Foundry发布的一份调查报告指出,容器的市场是不温不火的:从2016年到2017年,容器使用量仅增长了3%,从22%增至25%。 但即便是像云铸造基金会这样的市场观察人士也认为,虽然在过去的一年里,容器的使用增长比较缓慢,但容器技术最终还是会快速发展的。他们的部署速度和使用更少资源的能力应该使容器对许多组织具有吸引力, 这意味着对首席信息官(CIO)们来说,现在使容器有有效的安全性是必须的。 由于它们所包含的环境,包含最小化的漏洞,本质上来说,限制开发。但这并不意味着这些软件包就是完全安全的。容器创建的时候并没有安全意识,不安全的虚机,开发人员简单无意识的错误,以及松散的管理控制都是真实的安全隐患。 WP托管服务引擎的创始人及CTO Jason Cohen说:“因为它被称为容器,很容易让人忘记一个容器和宿主环境之间并没有物理隔离。虽然有一些安全措施在运行来防止意外,但容器不是一个无懈可击的安全对象,尤其是作为特权运行时。” Cohen运行容器应用程序时就好像环境是充满敌意的,并采取了一些预防措施,比如使用客户端和端到端加密,而不是假设网络是安全的。其它的用户也不认为容器的安全性是理所当然的。下面是它们遵循的7个安全步骤,它们应该尽可能地保护您的容器的内部环境和外部环境。

为容器提供安全保护的七种方法

1. 确定容器是否与主机操作系统足够隔离

关于您的容器提出一个更大的问题并不是过于简单:它们是否与共享主机OS完全隔离? Gartner的分析师Neil MacDonald指出,虚拟化长期以来一直存在类似的问题。一个虚拟机(VM)管理程序直到它“变硬”才得到完全保护,就像一个容器操作系统必须被隔离一样。但是一个容器比一个VM管理程序有更广泛的攻击面,MacDonal说,用户需要确定他们如何能够在不影响开发的情况下隔离每个容器的占用空间。这种对隔离的高级评估为接下来的安全步骤奠定了基础。

2. 把容器像硬件服务器一样对待

Mike Feldman---在线医生评估服务CareDash的CTO主张应该用与保护传统硬件时同样的小心与谨慎来对待容器的安全性。他说,也许是容器技术发展的太迅速,但是他发现很容易对安全问题感到自满。通过假设,每一步都可能被破坏,你的开发团队将认识到安全是最重要的,并且学会双重检查过程。

3. 限制个人访问权限

当在一个容器中运行应用程序时,CareDash的开发人员不能——除了在非常特殊的情况下——运行提供默认访问命令和文件的root权限,这是保护容器内部的好办法。 每个CareDash开发人员,包括CTO自己,都有一个名称指定的用户ID来限制权限。Feldman采用了这种预防措施,因为如果一个容器被破坏,黑客无法成为一个root用户,并造成更大的破坏。处于同样的原因他还建议不使用群体特权:他们不提供个人用户ID所做的问责和控制类型。

4. 最小化在单个容器上运行的服务

房地产交易平台公司Open Listings的首席技术官Alex Farrill建议“我们的想法是移除任何你不使用的东西以确保没有任何额外的点可以被攻击者利用。时间紧迫的开发人员经常将应用程序引入到容器环境中,找到一个更好的工具,然后忘记卸载最初的软件,结果就打开了一个安全漏洞“这种错误一直都在发生,”他说。Farrill创建Docker文件,在文件中列出所有容器的依赖项,以最小化被遗忘或过时的服务的风险。

5. 团队合作维护高安全标准

显然,要让Farrill的依赖列表取得成功,每个开放清单团队成员都必须对其进行双重检查,他指出。有效的容器安全需要集体的警惕。“这一切都是团队合作”他说。 在Farrill的观点中,容器的工作应该被保持在高度的同行评审标准中,这些标准要求所有的行为都要经过验证。他说:“我正在改变一个web服务器,我提交了申请进行审查,所以,如果我将web服务器的版本更改为一个有漏洞的版本,它会被扫描,然后我收到一封电子邮件告诉我应该采取其它的步骤。同行评议是至关重要的。”

6. 使用安全的库中的镜像

最受关注的安全问题之一是容器中有漏洞的虚拟机镜像。镜像是一个文件,它包含了每个容器应该如何运行的所有需求。灵活的创建镜像或者从Docker Hub和其它开源注册站点下载公开的镜像使容器变得有吸引力。缺点是,随着对镜像和容器的更改越来越多——开发人员将每个更改称为“层”——如果不首先扫描和验证组件,组件就会有很大的可能性悄悄进入到开发。 Gartner的MacDonald说,开发人员不可避免地要使用一个有漏洞的同时也是有效的镜像。在这种情况下,开发人员应该尽早提醒同事,一个有已知漏洞的镜像被使用了。但许多组织甚至不想冒这个风险,而是建立内部组件库,限制开发人员使用internet。Feldman和他的CareDash团队使用一个安全的、私人的Docker镜像存储库。开发人员使用基本图像开始项目,但他们“不可避免地在上面添加了一层,”他说,“很高兴知道所有的镜像(和层)都在我们的封闭控制之下。”

7 . 将安全提早内嵌到自动流程中

Aqua安全软件有限公司负责提供容器安全营销的副总裁Rani Osnat说“容器化促进了一种前移“shift-left(提前的意思)”,这就是开发人员所说的把安全性的方面考虑在软件开发的早期就加入进去。许多专家相信通过连续集成和连续开发工具实现自动化能够最好的确保IT安全专家可以发现安全协议是否被跟踪,而不会中断开发人员的工作。随着每个人都遵循同样简单而透明的流程,安全性变的成熟。当通过自动化在开发过程的早期将安全内嵌进去,公司减少风险也避免反复步骤去验证安全性” Aqua安全软件有限公司为例,所有镜像都提前进行扫描防止漏洞通过自动化流程进入到开发,之后不再需要进行双重检查了。

请不要假设

底线?不要假设容器的安全性是完全保证的,直到它确实得到了保证。MacDonald说:“用了10年的时间,才使虚拟化安全不再成为问题。容器在这方面可能要花费一半的时间。”在容器里投资的钱和利息非常高。安全性将在很快取得进展。 在那一天到来之前,WP引擎的Cohen和CareDash的Feldman的建议并不是盲目相信任何容器环境似乎是一个逻辑的安全的起点。 Feldman补充道:“容器的安全性是在遇到问题之前不知道存在问题。你可以让你的操作系统保持在最新状态,但是还有人会有意愿和有方法来找到漏洞。你只需要付出绝对的努力来保持领先。”