为什么保护容器和微服务是一个挑战

它们的粒度,部署速度和数据流量要求使用新方法来保护容器环境。

容器是一种小型,快速且易于设置的方式,可以在不同的计算环境中部署和运行软件。通过保存应用程序的完整运行时环境(包括库,二进制文件和配置文件),可以抽象出平台和基础结构,从而使该应用程序可以在任何地方或多或少地运行。所有主要的云提供商以及本地数据中心和混合云都可以使用容器。另外,它们可以为公司节省很多钱。

使用容器,开发人员可以创建“微服务”,它们本质上是应用程序的小型可重用组件。由于微服务可重复使用,因此可以节省开发人员时间,并且可以跨不同平台进行部署。

因此,容器普及率很高就不足为奇了。不幸的是,安全性仍在学习它们如何工作以及如何最好地将其锁定。根据最近的一项调查,在拥有500名员工的组织中,大约80%的组织现在使用容器 迈克菲对1,500名全球IT专业人员的调查 。只有66%的人有针对容器的安全策略。实际上,根据一位专家的说法,容器现在与移动设备捆绑在一起是组织面临的最大安全挑战。 3月Cyber​​Edge对1200位IT决策者的调查.

在容器世界中,安全性是一个挑战的原因有多种。一种是容器部署的速度。另一个是容器通常需要将应用程序分解为较小的服务,从而导致数据流量增加和复杂的访问控制规则。最后,容器通常在带有新型安全控制的基于云的环境(例如Amazon)中运行。

总部位于山景城的云安全供应商StackRox的联合创始人兼首席技术官Ali Golshan表示,容器安全工具的生态系统尚未成熟。他说:“这就像虚拟机和云计算的早期。” “组织需要构建专有的工具和基础结构才能使其正常运行,并且需要大量的资源来实施。那里没有现成的解决方案,也没有足够的解决方案来覆盖所有用例。”

容器的寿命管理不善且寿命短

传统的软件开发过程(构建,测试,部署)很快就与容器时代无关。实际上,开发人员通常会从公共存储库中获取即用型图像,并将其扔到云中。

Eastwind Networks首席安全和战略官Robert Huber说:“那里存在某种隐含的信任级别,这种信任级别可能会或可能不会得到保证。”他说,容器映像是方便使用的现成代码包装,但是提供者可能没有时间或兴趣来监视安全问题或发布发行说明。

“理想情况下,您有一个检查版本的过程,但是我还没有看到任何组织可以这样做。” Huber说。 “公司应该不断检查容器的最新版本是否正在使用,是否已修补所有代码并保持最新。但是现在,这取决于开发人员,并进行手动检查。我愿意我们相信组织会采用一些更加自动化的流程,但现在存在差距。这是大伤病而忘了它。您拉一个容器,运行它,然后完成。”

当开发人员构建自己的容器时,情况并没有改善。发展的速度意味着没有时间进行质量保证或安全测试。等到有人注意到容器在那里时,他们已经完成工作并走了。

Kudelski 安全解决方案架构负责人Bo Lane说:“生命周期可能在安全团队进入时就结束了。” “这是挑战,并且需要不同的安全意识。”

他说,安全意识需要在开发过程的早期就建立起来,并且要尽可能地自动化。例如,如果开发人员正在从外部来源下载图像,则在容器上线之前需要对其进行扫描以检查漏洞,未修补的代码以及其他潜在问题。 “一旦该容器上线,它们如何维护和监视其安全状态,以防可能发生的时间很短并与其他组件进行交互?”他问。

以Skyhigh Networks为例。 Skyhigh Networks的联合创始人兼McAfee Cloud工程副总裁Sekhar Sarukkai说,云安全供应商拥有自己的云服务产品,因此它正在应对所有这些挑战。

他说:“我们正在部署最新的架构堆栈,我们拥有微服务。” “事实上,我们一天可以多次部署到生产中。传统上,您将进行安全测试或渗透测试-在DevOps环境中不起作用。”

他说,企业必须找到使许多这些功能自动化的方法。这意味着能够识别所有正在部署的容器,确保所有元素都是安全的,并通过应用程序控件或应用程序白名单将它们部署到安全的环境中,然后进行连续监视。

McAfee现在拥有在4月的RSA大会上宣布的做到这一点的产品-McAfee Cloud Workload 安全平台。 Sarukkai说:“它可以保护Docker容器以及公共和私有云环境中这些容器中的工作负载。”其中包括AWS,Azure和VMWare。他说:“我认为这是第一个可以隔离受感染工作负载和容器的云工作负载解决方案。”

该产品还可以通过检查不必要的管理员特权或未满足的加密要求,甚至是设置为公开可读的AWS存储桶,来降低配置风险。他说:“这也提高了补救的速度。” “通过与客户进行的研究,它可以将其提高多达90%。”

他说,到目前为止,他所见到的几乎所有容器安全问题都是因为它们的配置不正确。他说:“我认为那是最大的风险所在。”

庞大的服务网络

配置管理和补丁程序管理很困难,并且容易被攻击者利用,但是它们是可解决的问题。一个更大的挑战是将应用程序分解为大量较小的,相互连接的服务所带来的复杂性。

对于传统的单片应用程序,只有一项服务,只有几个端口。茄子首席技术官安东尼·爱德华兹说:“您确切地知道了坏蛋将在哪里尝试。”

他说,这使保护变得更加容易。 “但是,使用微服务,您将拥有很多服务,并且端口通常很多,因此这意味着要保护的门更多。此外,每扇门都不会提供任何有关正在发生的事情的信息,因此很难确定某人是否是坏人。 ”

他说,这使确保单个服务的安全性达到尽可能严格的标准成为了负担,他说的原则包括最小特权,严格的访问控制,隔离和审核。爱德华兹说:“所有这些东西从1970年代就存在了;我们现在只需要这样做。”

说起来容易做起来难。 ShiftLeft的联合创始人兼首席执行官Manish Gupta说:“组织正在将它们的整体分成越来越小的块,并且应用程序中的数据流变得非常复杂,以至于很难分辨每个微服务的功能。”

如果混合中有硬编码的访问凭据,或者泄漏了身份验证令牌,则整个系统将很容易受到攻击。古普塔说:“这是一个非常大的问题,人们没有意识到这是一个很大的问题。”

他补充说,随着越来越多的关键系统转移到软件即服务交付模型中,问题变得越来越大。他说:“这意味着您正在将大量数据集中在应用程序中-Equifax是一个很好的例子; Uber是一个很好的例子。” “现在,这种非常敏感,重要的数据正在微服务之间流动,很少有人对此有良好的可见性。”

漏容器造成漏洞

容器还有另一个潜在的安全挑战。它们在共享环境中运行,这在公共云中尤其令人担忧,在该环境中,客户不知道邻居是谁。实际上,在过去的几年中已经发现了Docker和Kubernetes容器管理系统中的漏洞。

在公共云中运行容器的公司已开始认识到此问题。红帽OpenShift容器平台高级首席产品经理Kirsten Newcomer表示:“在与我交谈的大多数客户中,他们直接询问有哪些工具可用于将主机与容器逸出隔离,并将容器彼此隔离。”

根据调查,超过70%的受访者在Linux上运行其容器 Portworx的2017年容器采用情况调查。 Newcomer说,管理员可以用来确保容器保持隔离状态的功能包括使用Linux名称空间,以及使用Security Enhanced Linux作为附加的强制访问控制层。 “然后有一种叫做Linux功能的东西,它允许您限制进程可以访问的Linux系统中的各种特权。”

对于Linux安全专家而言,这些概念可能是熟悉的,但对于部署容器的团队或最近从Windows迁移过来的组织来说,它们可能是新概念。至少在公共云或私有云上运行自己的容器环境的公司都可以完全控制这些安全设置。当他们使用现成的容器时,他们必须信任云提供商才能正确使用基础安全基础架构。

到目前为止,所有允许进程逃脱容器的漏洞都没有导致重大的公共漏洞。该空间仅由少数几个平台控制,而Docker和Kubernetes就是这里的大名鼎鼎的事实,这意味着,如果攻击者迅速利用它,那么一个漏洞可能会产生非常广泛的影响,因此需要有所准备。

版权© 2018 IDG通讯,Inc.