SJ Technologies 与 Sonatype 合作进行了 2018 年 DevSecOps 社区调查。这项调查非常受欢迎,收到了来自 2000 多名受访者的答复,他们代表了广泛的行业、开发实践和职责。三分之一的受访者 (33%) 来自科技行业,银行和金融服务是第二大代表群体 (15%)。70% 的受访者都在使用容器注册表。由于有如此多的受访者使用容器,因此有必要深入研究容器安全性。
数字不会说谎
纵观同比数据,报告使用容器和应用程序安全工具的受访者比例翻了一番。2017 年,只有 23% 的人配备了工具,而 2018 年则为 56%。容器安全正迅速成为一个成熟的标准化和简化领域。鉴于最近 Kubernetes 的爆炸性增长 以及过去一年中新的容器运行时的创建,这应该不足为奇。
令人惊讶的是,大多数组织都在使用多个容器注册表。大多数受访者使用私有 Docker 注册表,其次是 AWS ECR 和 Sonatype Nexus。Red Hat OpenShift 和 Jfrog Artifactory 也得到了很好的体现。人们可以想象容器注册表的多种用途。但有些注册表与其他注册表非常不同。如果考虑不周,在许多注册表中实施安全工具可能会导致管道变得复杂。值得庆幸的是,大多数注册表都实现了通用的 API,从而允许这样做。
当被问及“您是否利用安全产品来识别容器中的漏洞?”时,几乎一半的受访者回答说他们使用安全工具来识别容器中的漏洞。当仅考虑那些认为自己是“成熟 DevOps 流程”一部分的受访者的结果时,几乎三分之二的人正在扫描容器中的漏洞。另有 25% 的人正在评估容器安全工具。然而,四分之一的受访者表示,他们没有用于识别容器中漏洞的解决方案。鉴于最近发生的安全漏洞,这有点可怕。这里可能存在两个阵营:第一个可能是使用标记为“最新”的容器或不断从假定的已修补上游拉取的团队。这不是一个好的做法,因为组织信任上游为他们做安全工作。第二个,更可能的阵营包括没有用于识别容器中漏洞的解决方案的组织。鉴于容器的采用,不扫描容器中的漏洞会在安全流程中留下一个卡车大小的漏洞。
保护容器安全
关于容器安全存在一些常见的误解。Liz Rice of Aqua Security 指出,“我想说最常见的误解是容器更像虚拟机而不是它们本身——然后对它们提供的隔离级别感到失望。”
容器不是虚拟机。使用虚拟机时,团队担心 hypervisor 和在其下运行的操作系统。使用容器时,模型转变为担心内核、容器运行时以及每个容器中使用的每个包和框架(除了操作系统和 hypervisor 之外)。使用容器,开发变得非常简单且一致。但是,通常需要解决的安全漏洞数量会增加。幸运的是,良好的容器安全流程允许快速缓解漏洞。容器需要的安全方法与虚拟机不同。
流程:更新镜像而不是打补丁
容器的寿命应比传统虚拟机短得多。容器应被视为不可变的基础设施。这既是一种思维模式的转变,也是基础设施的改变。容器不应打补丁;而应重新创建。更新容器镜像并重新部署所有受影响的容器是应用容器安全的最佳方式。如果管道构建正确,此过程可能就像更改配置文件中的标签一样简单。
扫描活动运行的容器中的漏洞至关重要。但是,作为 DevSecOps 从业者,始终要左移。扫描容器注册表中的漏洞镜像也是一项关键功能。还应实践通过版本控制操作扫描容器。容器应该足够轻量级,可以在每个接触点进行扫描。如果您的处置工具有一个工具可以检查开发环境中运行的易受攻击的容器,请使用它!尽早扫描并经常扫描。
用于容器安全和扫描的开源工具
容器安全工具生态系统持续发展壮大。在构建容器安全工具集时,需要记住一件事:目前没有一种正确的方法。开发管道基于业务需求。实施容器安全工具将需要同等程度的思考。
有许多开源工具可用于帮助锁定容器,我们无法在本文中全部介绍。但是,如果不讨论一些工具,本文将毫无用处。强烈建议使用 AppArmor 和 seccomp 等工具。两者都是 Linux 内核的组件,并提供合理的默认值。AppArmor 将强制访问控制应用于正在运行的程序(如 Docker 本身)。Seccomp 限制容器内可用的操作(系统调用)。如果容器受到破坏,AppArmor 和 seccomp 可为系统和容器提供最低限度的可行保护。两者都不会告诉您某件软件是否包含漏洞。
一些容器注册表提供扫描工具。但如果这些工具无法满足您的需求,还有其他选择。CoreOS 提供了一个名为 Clair 的工具,这是一个用于静态分析 appc 和 Docker 容器中漏洞的开源项目。Sysdig Falco 是一种行为活动监视器,旨在检测应用程序中的异常活动。Dagda(结合了 Sysdig Falco)是一种工具,可对 Docker 镜像/容器中已知的漏洞、木马、病毒、恶意软件和其他恶意威胁执行静态分析。还有用于 Docker 和 Kubernetes 的 CIS 基准(除了操作系统之外)。这些只是一些开源工具;有许多工具可用于帮助保护容器和容器环境的安全。
结论
今年的 DevSecOps 社区调查结果表明,容器的采用将继续增长。随着更多容器进入生态系统,对更高可见性的需求将会增加。Kubernetes 等容器编排工具将被采用,以帮助管理部分需求。随着更多软件分层到生态系统中,更多自动化将使管理变得更轻松。将安全工具自动化到基于容器的工作流程中将成为每个主要组织安全态势的关键组成部分。请记住,始终要左移。
本文最初发表于 SJ Technologies Blog,经许可转载。
[请参阅我们的相关报道,对(容器中的)root 说不]
评论已关闭。