Skip to main content

使用生产上下文确定 Dependabot 和代码扫描警报的优先级

利用来自 JFrog Artifactory 等外部注册表、你自己的 CI/CD 工作流或 Microsoft Defender for Cloud 的元数据,针对部署到生产环境的工件中的 Dependabot 和 code scanning 警报重点进行修正,聚焦实际风险。

注意

生产上下文和与 Microsoft Defender for Cloud 的集成位于 公共预览版 中,并可能会更改。

使用生产上下文确定警报的优先级

应用程序安全(AppSec)管理器经常被大量警报所淹没,其中许多警报可能并不表示实际风险,因为受影响的代码永远不会使其投入生产。 通过将生产环境上下文与警报关联,你可以筛选并优先处理那些会影响已获准部署到生产环境的工件的漏洞。 这使你的团队能够将修正工作集中在最重要的漏洞上,从而减少干扰并提升安全状况。

将生产上下文与警报相关联

GitHub 允许你通过 REST API 为 Dependabot 和 code scanning 警报提供生产环境上下文:

  •         [存储记录](/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record)
    
  •         [部署记录](/rest/orgs/artifact-metadata#create-an-artifact-deployment-record)
    

存储日志接口 API

此 API 允许包注册表或 GitOps 工作流将工件生命周期数据发送到 GitHub。 每当工件被提升到生产环境批准的包注册表时,应配置系统调用该终结点。

GitHub 将处理此元数据,并利用它来支持新警报筛选器,例如 artifact-registry-urlartifact-registry。 有关详细信息,请参阅 REST API 文档中的创建工件元数据存储记录

提示

如果使用 JFrog Artifactory,则无需执行任何自定义集成。 Artifactory 本机支持与存储记录 API 集成。 你只需在 Artifactory 的设置中启用该集成,Artifactory 就会自动向 GitHub 发送生产环境工件提升事件。 有关设置指南,请参阅 JFrog 文档中的 JFrog 和 GitHub 集成: JFrog for GitHub Dependabot

部署记录 API

此 API 允许系统将特定项目的部署数据发送到 GitHub,例如其名称、摘要、环境、群集和部署。

GitHub 将处理此元数据,并利用它来支持新警报筛选器,例如 has:deploymentruntime-risk。 有关详细信息,请参阅 REST API 文档中 的“创建项目部署记录 ”。

提示

如果使用 Microsoft Defender for Cloud (MDC) 并将实例连接到 GitHub 组织,MDC 会自动向 GitHub 发送部署和运行时数据。 有关更多信息,请参阅快速入门:在 MDC 文档中,将 GitHub 环境连接到 Microsoft Defender for Cloud

启用和使用生产环境来进行警报的优先级排序

1. 检测和报告生产构件的晋升和部署

在 CI/CD 或 GitOps 工作流中,每当项目提升到生产批准的包存储库时,调用存储记录 API 将项目的元数据发送到 GitHub。 每当项目部署到生产环境时,调用部署记录 API,将项目的其他元数据发送到 GitHub。

2. 使用生产环境上下文筛选器

生产上下文筛选器在“ 安全 ”选项卡下的警报视图和安全市场活动视图中可用。

  •           **Dependabot alerts 视图**:请参阅[查看 Dependabot alerts](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-dependabot-alerts)。
    
  •           **Code scanning 警报视图**:请参阅 [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository)。
    
  •         **安全活动视图**:请参阅 [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns)。
    

在显示警报列表后,请使用组织视图中的artifact-registry-urlartifact-registry筛选器,以专注于影响生产环境中制品的漏洞。

  • 对于托管在 my-registry.example.com 的自有工件注册表,你将使用:

    Text
    artifact-registry-url:my-registry.example.com
    
  • 如果利用 JFrog Artifactory,则可以在 GitHub 中直接使用 artifact-registry,无需进一步设置。

    Text
    artifact-registry:jfrog-artifactory
    

还可以使用 has:deploymentruntime-risk 筛选器来关注部署元数据中显示正在部署的安全漏洞,或面临运行时安全漏洞风险的漏洞。 如果您已连接 MDC,则该数据将自动填充。 例如:

  • 若要专注于向 Internet 公开的已部署代码中的警报,请使用:

    Text
    has:deployment AND runtime-risk:internet-exposed
    

还可以将这些生产上下文筛选器与其他筛选器(例如 EPSS)组合在一起:

Text
epss > 0.5 AND artifact-registry-url:my-registry.example.com

3. 修正生产代码中的警报

现在,您已识别出使生产代码面临被利用风险的警报,您需要紧急修正这些问题。 尽可能使用自动化来降低修正障碍。

  •           **Dependabot alerts:** 使用自动拉取请求获取安全修复。 请参阅“[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)”。
    
  •           **Code scanning 警报:** 通过 Copilot Autofix 创建有针对性的活动。 请参阅“[AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns)”。
    

延伸阅读

  •         [AUTOTITLE](/code-security/securing-your-organization/understanding-your-organizations-exposure-to-vulnerabilities/prioritizing-dependabot-alerts-using-metrics)