DevOps需要做的5件事来保护容器

对于安全部门来说,采用集装箱化带来了多方面的挑战。

安全容器

我们不能都相处

难道深化应用和容器技术的更广泛的部署(从泊坞窗,CoreOS和其他喜欢的)威胁升级成为运营,开发人员和信息安全的最新前哨战?当然,可能存在扩大的裂痕,但实际上远远共同点比最初将建议。集装箱引入了动态工作,并在本质上是开放的,与跨容器活动的更多潜在的新的基础设施。集装箱礼物几乎是前所未有的机会,嵌入安全到软件交付管道 - 而不是安全检查,对于在事后访问控制容器监测和政策移植。

水族的CTO阿米尔Jerbi提出了一些关键的东西的DevOps应该知道如何保护集装箱化应用。

安全容器

管理集装箱图像漏洞

容器映像的广泛使用增加了漏洞管理的风险,并迫使组织重新审视其当前的方法。映像是容器的基本构建块,开发人员可以很容易地从集中式注册表中取出映像,以高度自动化、灵活的流程运行容器。

从安全性和治理的角度来看,相信集装箱图像在整个软件开发生命周期中的一个关键问题。确保图像是从一个值得信赖的注册表签名和起源都是可靠的安全性的最佳实践。不过,要保持这些做法并没有解决核心挑战:我怎么能兽医和验证码的图片封装?

安全容器

持续性评估

在集装箱化的环境中图像被不断地添加到中心注册表或毂和运行图像起转和取下的容器。放大所述问题的规模是与基于开源图像构建可以从Dockerfiles来产生,例如,特别是作为在图像中引入更多的“层”相对容易。即在图像生成合并的层次越多,以加快部署,更大的风险是一个软件组件,包括开源组件,将找到自己的方式进入生产而不被扫描,验证,如果需要修补。

除非扫描图像之前,他们甚至上传到登记的过程中严格管理,而不是周期性的扫描的传统方法,门被打开,以漏洞的传播。

安全容器

减少容器攻击面

集装箱有一些特殊的结构和操作怪癖提高赌注用于减少攻击面。虽然有关于集装箱的基础共享内核架构的关注,注意力已转向超越固定主机确保标准配置和容器的配置文件。

与虚拟化环境中,管理程序作为控制点,任何用户或服务访问内核root帐户可以看到和所有容器共享访问Linux内核。安全团队可以依靠成熟的方法来强化内核和主机 - 但远不如成熟的,可重复的方法,以确保特定于容器环境的过程。

05搬运工人

更多来自泊坞窗

另一个例子是将Docker守护进程绑定到Unix Docker访问组或TCP端口的能力,这些访问组或端口允许容器相互通信,但也可以为所有用户提供根访问。对root的开放访问减少了操作上的摩擦,但是很可能会让安全部门对违反最小特权访问原则感到恼火。

解决隔离以及需要容器连通,操作和发展应采取步骤两者,以控制在何种程度上与容器内部彼此相互作用,并限制容器的数量之间的这种固有的张力。

安全容器

拧紧用户访问控制

直到最近,在多克尔主机的root访问权限是在默认情况下是一个全有或全无的命题。虽然限制进入容器主机root帐号已经消耗了最多的关注 - 和码头工人在新功能,系统地去除特权访问驱动型投资 - 对安全的更广泛关注的是强制访问控制特权帐户和运营部署流水线。还有对于务实有效的访问控制更广泛的组织明显的好处:问责制和操作的一致性。问责制需要一定的能力,以查明谁更改了容器设置或配置,下载的图像或启动生产的容器。

虽然根访问是对开发者的最简单的方法,这也意味着他们有太大出入。而且,谁获得了对root帐户访问权限的攻击者可以完全访问容器,包括它的数据和程序。

安全容器

中央管理

是什么改变或命令的用户可以执行基于角色,而不是他们来访问root帐户能力应用集中管理的限制,使企业能够定义和执行标准流程。实现基于用户角色的职责和权限访问和命令约束分离是通过软件开发生命周期的保障基础。

如果没有一个集中的方式,很难确定不同用户对于每个容器定义不同的权限是否实际上适当的,与他们的职能作用相一致,并在最小特权准入方面作用域。

安全容器

硬化主持人:安全隔离

一个集装箱的主要优点是,它隔离应用程序和它的依赖成可以在任何地方运行一个独立的单元。一个重要含义是,有现成的工具来约束一下独立单元能和不能访问和使用。对照组和命名空间是关键容器隔离组件:对照组定义一个容器多少可以共享的内核和系统资源的消耗,同时命名空间定义什么容器可以“看”,或者有效的资源被授权访问。这些组件的设计目标是明确的:要在其中一台服务器上运行多个服务,这是安全和稳定的服务作为彼此隔离尽可能至关重要。

在细节魔鬼,但是,是确保控制组和命名空间是适当和一致的配置,并且配置是一致的安全策略。

安全容器

通过裂缝滑倒?

虽然隔离可以限制对容器获得访问内核资源潜力的有效途径,它不是在隔离容器的执行路径为有效。资源隔离,也不能有效地检测或预防滥用特权或破坏容器“沙箱”的出提升攻击。

在缺乏有效的(务实)控制和可见性运行时的防守和集装箱特征分层的方法,有很多,其中集装箱通过轨道漏网之鱼错误配置的方式 - 由攻击者通过命名空间的操作或明确的行动。例如,在一个集装箱环境阻断服务攻击是不是从“流氓”集装箱异种消耗更多的内核资源,排挤其他进程。

10安全

自动化集装箱安全过程

没有什么比将安全性作为构建、交付和运行方式的一部分嵌入到容器中更让所有相关人员感到高兴的了——这也是将DevOps的动机与IT安全性的动机之间的摩擦最小化的最佳方法。自安全团队往往没有意识到高潮在容器中运行的生产的过程,是非常重要的涉及工作流的定义和促进知识转移,以确保他们能够适当控制和实践提供指导他们需要满足安全标准和通过合规审计。

11总成

什么DEVOPS应该做的

DevOps的,而另一方面,应该做自己最擅长的 - 自动化。使用现有的CI / CD的工具和流程控制工具,以嵌入图像扫描,配置控制,监控等安全措施到从开发容器的生命周期到生产将使安全过程透明和相对无痛。虽然总是会有需要额外的安全层和监督,但自动化可以带来基线长达其中附加的努力将被最小化的水平 - 这样就减少了安全作用的风险作为屏障部署。

有关:CISOs需要问的关于集装箱的6个问题

版权所有©2017年Raybet2