容器——包含整个运行时环境的轻量级安装包——已经解决了可移植性、兼容性和快速、受控部署的解决方案。容器包括一个应用程序、依赖项、库和其他二进制文件以及运行它们所需的配置文件。
随着微服务、基础设施即代码和面向服务的架构 (SOA) 时代的到来,容器得到了许多最流行的云基础设施的支持,并为当今大多数应用程序提供服务。
在不到十年的时间里,被称为容器的概念已经登上了尖端计算技术的最前沿,乘着云计算的浪潮。与 x86 虚拟化技术改变数据中心计算的方式相同,容器重新定义了用于大规模交付应用程序性能的同类最佳方法。
问题定义
就像任何计算系统一样,容器由软件组件组成,其中任何一个组件都可能包含缺陷和漏洞。容器的漏洞管理是识别、优先排序和修复可能暴露容器的漏洞的过程。暴露可以很容易地包括容器所连接的其他系统、应用程序和数据。这些组件中的缺陷可能使攻击者能够控制系统并提供对敏感数据的访问权限,从而导致经济损失、声誉受损和系统中断。
随着容器技术的普及,检测和修复用于创建、操作和管理它们的代码中的漏洞的重要性也在增加。
挑战
在哪里检测漏洞
一个典型的使用容器的组织遵循一个开发流程,从规划、代码创建、修订和构建到测试、发布、部署到生产环境并最终稳定运行。每个阶段都引入了检测和纠正软件漏洞的机会。
在哪个阶段检测漏洞最好?如何做到这一点,同时最大限度地减少对开发周期的干扰?什么工具最适合这项任务?其中许多问题都受到组织已在使用的工具的影响。使用开源或商业工具的决定也会影响组织的漏洞管理策略。
左移
随着公司从传统的瀑布开发模型转向敏捷方法,一个越来越流行的术语是“左移”。在典型的开发流程中,各个阶段从左到右阅读:
计划 —> 代码 —> 构建 —> 测试 —> 发布 —> 部署 —> 操作
在漏洞管理领域,左移意味着在接近软件开发生命周期 (SDLC) 或开发管道开始时实施漏洞扫描的离散尝试。
容器漏洞管理策略
除了简单地向左移动之外,还有多种合适的机会来检测容器环境中的漏洞。
CI/CD 管道扫描
持续集成/持续部署是创建、审查和测试代码时主动开发的特定阶段。Jenkins、GitLab 和 Bamboo 等工具在自动化构建软件模块所涉及的工作流方面很受欢迎。这是执行漏洞扫描的最佳场所,因为可以以较低的成本更快地识别、修复和重新测试问题。几种流行的漏洞管理工具可以与工作流自动化集成。
注册表扫描
注册表是用于存储容器镜像的存储库(或存储库的集合),这些镜像是用于部署运行容器的多个单独实例的模板。容器编排的一个主要组件涉及将容器从注册表实例化到生产计算环境中。
因为这是一个如此常见和不可或缺的组件,几乎所有流行的漏洞扫描工具都可以配置为扫描驻留在注册表中的镜像。这种识别容器漏洞的方法可能是发现和修复安全问题的成本最低、价值最高的方法。
通过查明容器映像中的漏洞,您可以修复可能存在于数十个或数百个正在运行的容器实例中的缺陷。通过编排的魔力,旧容器可以被销毁并无缝替换为更新版本。
运行时环境扫描
扫描正在运行的容器中的漏洞最接近传统的漏洞发现方法,并且已经在信息安全中使用了几十年。这种方法意味着对正在运行的容器执行漏洞扫描以发现缺陷。然而,容器的本质是你不会修复发现的东西——你修复开发管道中的容器镜像并替换有故障的实例。就时间而言,如果不是成本的话,这可能是一个相对昂贵的提议。也就是说,这种方法是检测未正确部署的“流氓”容器的最佳方法。
主节点(主机)扫描
继续扫描容器化环境中的支持基础架构非常重要——这意味着支持容器运行时的主机和虚拟机(Containerd、LXC、CRI-O 等)。好消息是,许多支持集成到流行 CI/CD 工具、注册表和运行时的工具都是由传统漏洞管理供应商提供的,提供了功能全面的一站式服务。
容器安全的关键原则
使用容器并不能减轻有条不紊地识别和修复软件漏洞的需要。容器——虽然不可变——由复杂的层组成,每个层都有潜在的漏洞和安全挑战。
开发管道中有多种机会可以扫描和突出显示这些漏洞。组织有多种产品可供选择。了解这些各种工具的功能很重要,这些工具可能会有所不同,可以作为开源或商业风格提供。当组织开始为漏洞管理选择策略和产品时,应考虑一些关键原则:
- 使用来自可信来源的最少基础镜像或“distroless”镜像构建容器,请记住,某些容器扫描工具在没有包管理器的发行版中存在问题。
- 维护您添加到镜像的所有工具、包和库。
- 仔细选择适合您组织流程、DevOps 实践、生态系统和功能的漏洞扫描工具。
- 计划在容器开发管道的每个阶段实施漏洞扫描,同时注意合规性要求。
- 考虑额外的控制,例如暂存注册表、Kubernetes 准入控制器、镜像签名、多阶段构建等。
- 请记住,合规性和可信仍然是任何计算环境的重要考虑因素——容器也不例外。
原文:https://securityintelligence.com/posts/containers-cloud-vulnerability-management/?category=cloud-protection