你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

GitHub 高级安全功能与微软云端防御集成 - 沙盒项目

本指南提供了沙盒项目的设置步骤,帮助您端到端地评估GitHub高级安全性(GHAS)与Microsoft Defender for Cloud的集成,使用简单的用例。

此集成通过将运行时风险和上下文与原始代码相关联,从而最大程度地提高Microsoft的云原生应用程序安全性,以便更快地进行 AI 支持的修正。

遵循本指南,您可以:

  • 为 Defender for Cloud 覆盖范围设置 GitHub 存储库。
  • 创建运行时风险因素。
  • 将代码链接到运行时资源。
  • 在 Defender for Cloud 中测试实际用例。

Prerequisites

Aspect Details
环境要求 - 在 Defender for Cloud 中创建有连接器的 GitHub 帐户
- GHAS 许可证
- 在订阅上启用 Defender 云安全状况管理 (DCSPM)
- 智能 Microsoft Security Copilot 副驾驶®(可选,用于自动修正)
角色和权限 - 安全管理员权限
- Azure 订阅的安全管理员(查看 Defender for Cloud 中的安全检查结果)
- GitHub组织所有者
云环境 仅在商业云中可用(不在 Azure 政府、世纪互联运营的Azure或其他主权云中)。

准备好你的环境

步骤 1:设置GitHub存储库并运行工作流

若要测试集成,请使用沙盒示例GitHub已包含所有内容的存储库来生成易受攻击的容器映像。

在设置存储库之前,请确保:

  1. 将以下存储库克隆到GitHub组织:
  1. 在存储库中,执行以下步骤:

    1. 转到设置
    2. 在左窗格中,选择“ 机密和变量 > 操作”。 然后选择 “新建存储库机密”。
    3. 在存储库或组织级别添加以下机密:
可变 说明
ACR_ENDPOINT 容器注册表的身份验证服务器。
ACR_USERNAME 容器注册表的用户名。
ACR_PASSWORD (ACR密码) 容器注册表的密码。

注释

可以为这些变量选择任何名称。 它们不需要遵循特定模式。

可以通过以下步骤在 Azure 门户中找到此信息:

  1. 选择要部署到的容器注册表。
  2. “设置”下,选择 “访问密钥”。
  3. “访问密钥”窗格显示身份验证服务器、用户名和密码的密钥。

在存储库中,选择操作,选择生成和推送到 ACR工作流,然后选择运行工作流

检查镜像是否已部署到您的容器注册表。 对于示例存储库,镜像应位于名为mdc-mock-0001的注册表中,并使用标签mdc-ghas-integration

在群集上部署一个与当前运行容器相同的镜像。 完成此步骤的一种方法是连接到群集并使用 kubectl run 命令。 下面是 Azure Kubernetes 服务(AKS)的示例:

设置群集订阅:

az account set --subscription $subscriptionID

设置群集的凭据:

az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing

部署镜像:

kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration

步骤 2:创建示例风险因素(业务关键规则)

Defender for Cloud 检测到此集成的一个风险因素是业务关键性。 组织可以创建规则,将资源标记为业务关键。

  1. 在 Defender for Cloud 门户中,转到 “环境设置>资源关键性”。
  2. 在右窗格中,选择要打开Microsoft Defender 的链接。
  3. 选择“ 创建新分类”。
  4. 输入名称和描述。
  5. 在查询生成器中,选择 “云资源”。 编写查询以将 资源名称 设置为等于部署到群集的容器的名称进行验证。 然后选择下一步
  6. “预览资产 ”页上,如果Microsoft Defender 检测到资源,则容器的名称将显示为 K8s-containerK8s-pod 的资产类型。 即使名称尚不可见,请继续执行下一步。
  7. 选择关键级别,然后查看并提交分类规则。

注释

Microsoft Defender 在检测到容器后将关键性标签应用于容器。 此过程最多可能需要 24 小时。

步骤 3:验证环境是否已准备就绪

验证确认您的环境已正确配置,以生成面向运行时建议的代码并产生可执行的结果。

在此步骤中,Defender 验证从完整代码到运行时的可见性。

  • Microsoft Defender for Cloud持续监视源代码存储库是否存在安全漏洞。
  • 在部署之前,对构建工件(如容器映像)在容器注册表中进行扫描。
  • 将监视部署到 Kubernetes 群集的运行时工作负荷,以防范安全风险。
  • Defender for Cloud 将每个工件从代码经过构建和部署过程关联和跟踪到运行时,并返回到回溯。

注释

应用上述步骤后,最长可能需要 24 小时才能查看以下结果。

测试 GitHub 无代理扫描功能是否检测到存储库。

转到云安全资源管理器并执行查询。 验证查询测试 Defender 是否可以识别由管道和工作负载产生的工件。 如果查询返回结果,则表示扫描和相关性按预期工作。

注释

如果未返回任何结果,则可能表示尚未生成项目、未配置扫描或缺少权限。

  • 验证 Defender for Cloud(Azure 容器注册表)是否扫描了容器映像,并使用它来创建容器。
  • 在查询中,添加适合特定部署的条件。
  • 验证容器是否正在运行,并且 Defender for Cloud 扫描了 AKS 群集。
  • 验证是否在 Defender for Cloud 端正确配置了风险因素。 在 Defender for Cloud 清单页上搜索容器名称,应会看到它标记为关键。

注释

仅当环境中尚未配置风险因素时,才需要此步骤。

成功的验证可确保后续步骤(如建议、市场活动以及GitHub问题生成)产生有意义的结果。

后续步骤