自动执行容器扫描,包括容器映像

已完成

术语“容器扫描”和“容器映像扫描”通常可以互换使用,尽管它们所指的容器化环境中软件组合分析的方面略有不同。 容器扫描通常是指检测容器化应用程序中的漏洞、错误配置或安全问题的过程。 它针对容器中的运行时环境、依赖项、库和配置设置。 容器映像扫描侧重于容器映像。 它涉及到检查容器映像中的层、包、库和配置,以识别安全漏洞和过时的依赖项等问题。 映像扫描通常针对驻留在容器注册表中的容器映像。

有许多支持 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

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 安全扩展的 Aqua 或 Trivy GitHub Action。 然后,可以将所选的扫描工具集成到生成过程,以分析容器映像的漏洞与合规性问题。 应在 CD 阶段应用容器扫描来评估部署结果。

作为 CI/CD 集成的一部分,请考虑阻止映像部署,以防其扫描报告不合规。 在 GitHub 中实现工作流时,利用其 Dependabot 功能来检测和创建拉取请求以更新容器映像中的依赖项,包括 Dockerfile、包清单和其他配置文件。 根据扫描结果自动执行修正方法,例如修补漏洞或重新生成映像。 利用特定于平台的仪表板、报告和通知,对扫描结果进行持续监视和评审。