自动执行容器扫描,包括容器映像
术语“容器扫描”和“容器映像扫描”通常可以互换使用,尽管它们所指的容器化环境中软件组合分析的方面略有不同。 容器扫描通常是指检测容器化应用程序中的漏洞、配置错误或安全问题的过程。 它面向容器中的运行时环境、依赖项、库和配置设置。 容器映像扫描侧重于容器映像。 它涉及检查容器映像中的层、包、库和配置,以确定安全漏洞和过时依赖项等问题。 映像扫描通常以驻留在容器注册表中的容器映像为目标。
有许多容器扫描工具和技术支持 Azure DevOps 和 GitHub 平台。 通常,可以利用与平台无关的服务(如 Microsoft Defender for Cloud),或直接将扫描工具合并到 Azure Pipelines 或 GitHub Actions 中。
Microsoft Defender for Cloud
Microsoft Defender for Cloud 是一个云原生应用程序保护平台,它实施安全措施和做法,旨在保护基于云的工作负载免受各种网络威胁的影响。 它包括利用 Microsoft Defender for Containers 和 Microsoft Defender 漏洞管理的功能来支持映像和容器扫描。
Microsoft Defender for Containers
Microsoft Defender for Containers 是一种云原生解决方案,旨在跨多云和本地环境增强容器化环境(包括 Kubernetes 群集、容器注册表和容器映像)的安全性。 其功能可分为四个主要类别:
- 安全状况管理 对 Kubernetes 工作负荷执行持续监视,以发现云资源、清点云资源、检测错误配置、提供修正指南、评估相应的风险,以及使用 Defender for Cloud 安全资源管理器协助搜寻风险。
- 运行时威胁防护 为 Kubernetes 群集提供威胁检测,与 MITRE ATT&CK 框架密切相关,并与广泛的安全信息和事件管理(SIEM)和扩展检测和响应(XDR)产品集成。
- 部署和监视 有助于实现 Kubernetes 群集并跟踪其状态。
- 漏洞评估 为多云资源提供无代理漏洞评估,包括修正指南和自动扫描。
漏洞评估依赖于 Microsoft Defender 漏洞管理。
Microsoft Defender 漏洞管理
Microsoft Defender 漏洞管理提供基于触发器的映像扫描功能,以 Azure 容器注册表 (ACR) 注册表中的映像为目标。 它自动生成报告,记录和描述漏洞以及每个映像的相应补救措施。 它还可以根据从任何 Defender for Cloud 支持的注册表中拉取的映像来扫描部署到 Azure Kubernetes 服务 (AKS) 群集中的容器,除了 ACR 之外,还包括 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 原生的容器,例如弹性容器注册表 (ECR)、Google 容器注册表 (GCR) 和 Google 项目注册表 (GAR)。
存储在满足扫描触发器条件的 ACR 中存储的所有映像都会自动扫描漏洞,无需任何其他配置。 这些条件可以分为两个主要类别:
- 由推送、导入和拉取操作触发。 如果推送或导入,扫描通常在几分钟内完成,但可能需要长达一小时的时间。 执行单个拉取后,将在 24 小时内扫描映像。
- 针对以前扫描过漏洞的映像连续运行,以更新其漏洞报告来说明新发布的漏洞。 这些扫描每日针对过去 90 天内推送的映像、过去 30 天内拉取的映像以及在 Defender for Cloud 监视的 Kubernetes 群集上运行的映像执行一次。
针对所有存储在 ACR 中的映像以及当前在 Azure Kubernetes 服务(AKS)群集中运行的映像,都会提供漏洞报告的建议。 执行建议的步骤来修正安全问题并替换注册表中的映像后,Microsoft Defender for Cloud 会自动重新扫描映像,以确认这些漏洞不再存在。
将扫描工具直接合并到 Azure Pipelines 或 GitHub Actions 中。
可以直接将容器和映像扫描合并到 CI/CD 管道中,以自动识别漏洞并确保符合性。 该过程首先选择与相应平台兼容的合适扫描工具,例如作为 DevOps 安全扩展或 Trivy GitHub Action 提供的 Aqua。 然后,可以将所选扫描工具集成到生成过程中,以分析容器映像是否存在漏洞和符合性问题。 应在 CD 阶段应用容器扫描来评估部署结果。
作为 CI/CD 集成的一部分,请考虑阻止映像部署,以防其扫描报告不合规。 在 GitHub 中实现工作流时,利用其 Dependabot 功能来检测和创建拉取请求来更新容器映像中的依赖项,包括 Dockerfiles、包清单和其他配置文件。 根据扫描结果自动执行修正作,例如修补漏洞或重新生成映像。 利用特定于平台的仪表板、报表和通知,实现对扫描结果的持续监视和评审。