每个容器化应用程序都需要的五项安全防护

互联网2020-03-23 16:18:40
导读随着敏捷开发和DevOps方法论的普及,容器已成为创建易于管理和可复制的软件组件的一种方式。但是,攻击者已经注意到,并且试图破坏容器的企

随着敏捷开发和DevOps方法论的普及,容器已成为创建易于管理和可复制的软件组件的一种方式。但是,攻击者已经注意到,并且试图破坏容器的企图正在上升。例如,当容器管理公司Sysdig将一组容器在线放置并暴露应用程序编程接口(API)时,攻击者在四天内发现并利用了开放端口,并在新的容器实例中安装了比特币挖掘软件。

Sysdig的软件工程师Mark Stemm 在一份分析中写道: “攻击者试图运行比特币挖矿就不足为奇了。” “挖掘比特币的主要成本是CPU的处理能力。如果CPU成本被盗,因此为零,这将帮助您提高利润!”

根据应用程序监控公司Datadog的数据,容器在公司中迅速流行,四分之一的公司使用Docker容器。但是,该软件的快速采用导致许多配置错误的容器,这些容器可公开访问且不安全。

例如,容器软件公司Docker和云安全公司Twistlock的研究扫描了Internet的有限子集,结果发现有1000个暴露的注册表,其中只有10%的配置正确,而60%的则完全受到攻击。

Twistlock的首席技术官John Morello对eWEEK表示: “甚至还有大量公司IP空间,这些IP空间是公开暴露的,并允许写访问。” “这次袭击不是试图在公司网络中站稳脚跟的植入物,而只是通过迫使受害者在不知情的情况下代表攻击者经营硬币开采者的方式,通过折衷来货币化。”

随着攻击者越来越多地在企业云部署中寻找不安全的容器,企业需要采取措施使基础架构更加安全。企业可以通过以下五种方式更好地保护其容器和微服务。

1.对开发人员进行安全性教育

容器代表了DevOps思想的许多理想。开发人员不仅为应用程序编写代码,而且还设置了在部署到生产环境中与软件一起使用的配置。

因此,容器安全公司Aqua Security的首席技术官兼联合创始人Amir Jerbi说,开发人员需要对安全性,编排和管理已部署的软件有更多的了解。

他说:“由于从安全角度来看,开发人员正在向左移动并承担更多责任,因此有时开发人员并不了解不良的安全配置-因此他们可以在不使用SSL的情况下打包Web服务器或使用硬编码的密码运送容器,”他说。“当您将开发人员相对缺乏的经验与安全性结合在一起时,就会为攻击者创造机会。”

2.使用经过认证的容器图像

今年早些时候,包括Fortinet,Kromtech和Twistlock在内的几家安全公司详细发现了一系列将下载并运行挖掘软件的Docker镜像。通过集中式集线器分布在容器中的应用程序可能是恶意代码或后门漏洞的媒介,就像从公共应用程序商店下载的恶意应用程序一样。

但是,使用维护良好且经过认证的容器映像的开发人员应免受此类攻击。

此外,Docker认为必须将采矿的担忧纳入考虑范围。产品安全副总裁Banjot Chanana说,虽然安全公司发现的图像被下载了10万次以上,并为运营商带来了超过17.2万美元的利润,但攻击者不太可能欺骗不请自来的开发人员下载容器化应用程序。在Docker。

他说:“将那些容器图像公开发布的人们通常不会试图欺骗人们下载这些图像。” “他们正在使用Docker集线器作为分发自己的映像的方式,这与将代码放入S3存储桶中的人的方式非常相似。”

3.检查容器和软件是否存在漏洞

容器的一大安全优势是,它们使您可以打包环境并将其转换为不可变的映像。任何更改都会产生新的图像,使公司可以了解其容器的状态。

结合静态分析和软件组件管理,此功能使公司可以知道其容器中是否存在漏洞。无需重新检查每个软件组件,而是使用容器的组件列表来检查软件集合中的已知漏洞。

Twistlock的Morello说:“从历史上看,环境的配置只是一个时间点-您在扫描应用程序时就知道了应用程序的状态,但是您以后并不了解它的使用。” “有了容器,您真的不需要重新扫描程序包,从而为漏洞扫描提供了更加主动的方法。”

4.自动化合规检查

为了创建专注于安全性的DevOps管道,公司需要创建自动检查功能,不仅可以扫描代码,还可以检查配置是否正确。诸如Docker和Twistlock发现的部署问题可能会使容器化的应用程序易于开发。

因此,难怪添加自动合规性检查是安全公司建议的最佳实践之一。创建一系列自动化的“安全门”,在其中检查代码和容器是否存在安全和可靠性问题,可以确保不将易受攻击的应用程序部署到生产环境中。

Aqua Security的Jerbi说:“公司现在正在转向在开发和部署管道中添加更多的安全控制。” “当您将集装箱运输到生产中时,应该在安全门周围进行自动检查,以评估所有组件是否完好,没有人进行任何修改。”

5.检查运行时行为

最后,可以轻松监视容器化应用程序的异常行为。因为容器声明了应该运行的软件,并且将正在运行的进程限制为最低特权,所以环境受到足够的限制以使异常检测变得更加容易。

Twistlock的Morello说,将新的技术(例如数据分析和机器学习)添加到流程中,检测运行时异常可以帮助进一步保护容器化应用程序。

他说:“我们可以应用更多的自动化和机器学习方法来为应用程序内部的正常情况创建参考模型,并能够与该参考模型相比检测异常,而无需人工为异常创建规则。”

总体而言,如果部署得当,容器可以为部署应用程序带来重大的安全优势。步骤并不复杂:检查漏洞,自动执行安全性并使用经过验证的软件组件进行开发。

Docker的Chanana说,此外,仅将现有应用程序移植到容器中将带来许多安全优势。

他说:“持续安全实际上就是您几十年来一直在使用的基本最佳实践。” “容器并没有真正改变。没有人会以零时差破坏您的应用程序,而您运行的是带有两年漏洞的旧版本的Python的可能性则更大。”

免责声明:本文由用户上传,如有侵权请联系删除!