长期以来,使用容器进行软件开发和部署已成为一种标准做法。 许多开发人员赞赏能够轻松地为程序提供独立于其运行主机的标准环境,快速更改设置,添加或更改容器中某些组件的功能。 但这只是容器化技术提供的所有芯片的一小部分。

与往常一样,技术的发展及其普及度的提高伴随着各种非标准使用方法的识别,包括恶意软件。 在本文中,我们还将研究与使用容器相关的开发流程的安全风险,并讨论为什么应将DevOps流程转换为DevSecOps。
首先,为什么容器赢得了开发人员的同情,以及容器化的使用如何改变了整个开发。
薯片
轻便与虚拟机和“铁”服务器相比,容器完全不需要资源。 与虚拟机相比,这使您可以在一台计算机上运行更多的容器。 开发人员甚至可以以容器化微服务的形式在计算机上运行应用程序组件,而不必等待系统响应而打do。 由于容器共享系统的核心,因此它们的启动和停止比重新启动虚拟机要快得多。
隔离度尽管共享内核,但容器中的应用程序仍与系统和应用程序的其他部分隔离运行。 这意味着应用程序中的错误将仅影响特定的容器。
在开发过程中使用容器使您摆脱了开发人员和系统管理员在特权方面的永恒冲突。 该容器将应用程序与系统安全地分开,因此程序员可以进行任何实验,而不必担心会破坏OS。
可携性每个应用程序都在具有自己的配置文件的自己的容器实例中运行。 这消除了在主机之间移动应用程序带来的麻烦:工作所需的所有内容都存储在容器内,并与其余应用程序组件一起传输。
容器储存库开放容器倡议标准的出现使创建容器映像的公共库和创建强大的生态系统成为可能,该系统结合了容器引擎,云平台和用于管理容器,安全检查和其他任务的工具。
自动化技术使用容器可以使您构建持续集成应用程序(CI / CD)的全自动链,其中“手动”部分主要是代码编写。 无需人工干预,即可执行测试,检查代码质量,将应用程序打包到Docker映像中,将映像放置在Docker Hub上并将其部署到主机以执行。
集装箱威胁
当然,尽管具有所有优点,但是容器具有各种缺点。 例如,这些是资源密集型应用程序的性能以及为各种体系结构构建的映像的可移植性有限的问题。 但是除了技术问题之外,容器还存在安全问题。
内核共享与往常一样,缺点是优点的另一面。 与虚拟机相比,内核共享减少了容器冗余,但是允许的更多系统调用使安全屏障变薄,利用内核漏洞可以立即攻击所有容器。 您不记得有关
Spectre和
Meltdown的耸人听闻的攻击,它们使您可以从用户空间读取另一个进程或内核的内存。
公共仓库具有图像的公共注册中心的存在为容器提供了广泛的“包装器”选择,但会带来其他威胁,因为默认情况下,注册服务器是受信任的。 如果攻击者成功使用恶意库修改了基本映像,则更改将自动分发到缓存该基本映像的所有服务器,并且所有使用该库的容器都将自动获取恶意功能。
例子
因此,一个恶意库足以破坏应用程序。 当然,流行的库中的漏洞和恶意功能本身并不是容器的问题,而是确保图像变化迅速传播的技术。
推荐建议
显然,现代开发过程需要一种新方法,该方法将安全性集成到CI / CD链中,从而将DevOps转变为DevSecOps。

根据Gartner的说法,2019年
- 超过70%的公司开发流程将包括对开源组件和商业软件包的自动化漏洞和配置监视。
- 超过50%的CI / CD流程将包含强制性的内置代码安全性检查;
- 超过60%的公司将在开发中使用版本控制和基础架构自动化控制。
考虑该过程中必须存在的某些组件,以便其名称中的“ Sec”一词不是空短语。
将检查整合到所有流程中从代码创建到容器化和部署,开发过程的所有阶段都应进行安全检查。
安全审核自动化出于两个原因,这是必要的:
- 这将减少管理错误和配置错误。
- 安全专业人员将不必手动验证代码并更改设置。
安全功能的API此类功能的实现要求安全系统提供用于访问所有功能的API。 因此,开发人员不仅可以使用系统进行验证,还可以对代码进行适当的调用。
基于角色的访问控制不同的安全专业人员根据其角色需要对验证机制的不同级别的访问权限,因为开发人员有必要不能更改安全设置,但随后对已渗透的威胁不负责。
Docker Registry API兼容性理想情况下,保护应支持在任何支持Docker Registry V2 API的注册表中扫描Docker映像,以确保与所有流行注册表的兼容性。
移民保护对于企业用户而言,危险的时刻是从单片架构过渡到微服务架构。 将安全功能集成到集成过程中以自动模式提供保护非常重要。
保护解决方案的一个示例是趋势科技的趋势科技服务器深度安全防护系统智能检查,它可以连续不断地自动扫描图像,识别漏洞和恶意软件。 Smart Check支持Docker Trusted Registry,Amazon Elastic Container Registry,Azure Container Registry和Google Container Registry容器平台。 此外,趋势科技还与领先的SIEM系统和编排工具集成,例如Jenkins,Kubernetes,SumoLogic和Splunk。
Smart Check的一个重要功能是在关键漏洞检查和事件日志记录方面符合所有法规要求。
在启动应用程序之前,在开发的早期阶段在DevOps流程中实施容器安全性将允许开发更可靠,生产效率更高的软件,以及
- 检测恶意软件和库。
- 识别漏洞。
- 在将图像传输到业务流程工具(例如Kubernetes)之前,更正错误。
- 防止恶意代码执行和部署易受攻击的软件。