GitHub 與 適用於雲端的 Microsoft Defender 的進階安全整合 – Sandbox Project

本指南提供沙盒專案的設置步驟,幫助您評估 GitHub Advanced Security(GHAS)與 適用於雲端的 Microsoft Defender 的端對端整合,並以簡單的使用案例呈現。

此整合透過將執行時風險與上下文與原始程式碼關聯,最大化 Microsoft 雲端原生應用安全性,以加速 AI 驅動的修復。

遵循本指南,你:

  • 將您的 GitHub 儲存庫設置為支援 適用於雲端的 Defender。
  • 建立執行時風險因子。
  • 將程式碼連結到執行時資源。
  • 測試 適用於雲端的 Defender 的真實應用案例。

Prerequisites

層面 詳細資料
環境要求 - GitHub 帳號,並以 適用於雲端的 Defender 建立連接器
- GHAS 授權
- 在訂閱上啟用 Defender 雲端安全態勢管理(DCSPM)
- Microsoft Security Copilot(可選用於自動修復)
角色和權限 - 安全管理員權限
- Azure 訂閱上的安全管理員(可在 適用於雲端的 Defender 中查看偵測結果)
- GitHub 組織擁有者
雲端環境 僅在商業雲端提供(不適用於 Azure Government、21Vianet 運營的 Azure 或其他主權雲端)。

準備您的環境

步驟 1:建立 GitHub 倉庫並執行工作流程

要測試整合,請使用已經包含所有內容的 Sandbox 範例 GitHub 倉庫來建立一個脆弱容器映像。

在設置儲存庫之前,請確保:

  1. 將以下儲存庫複製到你的 GitHub 組織:
  1. 在資料庫中,請依照以下步驟操作:

    1. 移至設定
    2. 在左側窗格,選擇祕密與變數> 動作。 然後選擇 新儲存庫秘密
    3. 在儲存庫或組織層級加入以下秘密:
變數 說明
ACR_ENDPOINT 容器登錄檔的認證伺服器。
ACR_USERNAME 容器登錄檔的用戶名。
ACR_PASSWORD 容器登錄的密碼。

Note

你可以為這些變數選擇任何名稱。 他們不需要遵循特定的模式。

你可以依照以下步驟在 Azure 入口網站找到這些資訊:

  1. 選擇你想部署到的容器登錄檔。
  2. 設定中,選擇 存取鍵
  3. 存取金鑰面板顯示驗證伺服器的金鑰、使用者名稱和密碼。

在你的儲存庫中,選擇 「動作」,選擇 「建置並推送到ACR 」工作流程,然後選擇 執行工作流程

檢查映像檔是否已部署到你的容器登錄檔。 以範例儲存庫為例,映像檔應該存在一個帶有標籤mdc-mock-0001的登錄檔mdc-ghas-integration中。

在叢集上部署與執行容器相同的映像檔。 完成此步驟的一種方法是連接叢集並使用指令 kubectl run 。 這裡有一個 Azure Kubernetes Service(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 偵測到的整合相關風險因素之一是業務關鍵性。 組織可以制定規則,將資源標示為業務關鍵。

  1. 在 適用於雲端的 Defender 入口網站,前往 環境設定>資源重要性
  2. 在右側窗格,選擇連結以開啟 Microsoft Defender。
  3. 選擇 建立新分類
  4. 輸入名稱和描述。
  5. 在查詢建構器中,選擇 雲端資源。 寫一個查詢,將 資源名稱 設為已部署到叢集中的容器名稱,以進行驗證。 然後選取下一步
  6. 預覽資產 頁面,如果 Microsoft Defender 已經偵測到你的資源,容器名稱會顯示為 K8s-containerK8s-pod 的資產類型。 即使名字還沒看出來,也要繼續下一步。
  7. 選擇一個嚴重性等級,然後檢視並提交分類規則。

Note

Microsoft Defender 會在偵測到容器後,對該容器套用關鍵性標籤。 此程序最多可能需要 24 小時。

步驟三:確認你的環境已經準備好

驗證確認你的環境已正確配置,能將程式碼呈現為執行時建議,並產生可執行的結果。

在此步驟中,Defender 會驗證完整程式碼與執行時可視性。

  • 適用於雲端的 Microsoft Defender 持續監控原始碼庫的安全漏洞。
  • 部署前,會在容器登錄中掃描容器映像等組建成品。
  • Kubernetes 叢集中的執行時工作負載被監控以防安全風險。
  • 適用於雲端的 Defender 會對每個產物進行關聯與追蹤,從程式碼、建置與部署,到執行時再回溯。

Note

在前述步驟應用後,可能需要長達24小時才能看到以下結果。

測試 GitHub 無代理掃描是否能偵測到該儲存庫。

到雲端安全檔案總管執行查詢。 驗證查詢測試 Defender 是否能識別由你的管線和工作負載產生的產物。 如果查詢回傳結果,表示掃描與關聯性運作正常。

Note

如果沒有回傳結果,可能表示產物尚未產生、掃描未設定,或是權限缺失。

  • 驗證 適用於雲端的 Defender(在 Azure Container Registry 中)是否掃描了容器映像並用它來建立容器。
  • 在查詢中,請填寫你具體部署的條件。
  • 確認容器是否在運作,且 適用於雲端的 Defender 是否掃描了 AKS 叢集。
  • 驗證 適用於雲端的 Defender 端的風險因子設定正確。 在 適用於雲端的 Defender 的庫存頁面搜尋你的容器名稱,應該會看到它被標記為關鍵。

Note

此步驟僅在風險因子尚未設定於環境中時才需要。

成功的驗證確保後續步驟,如推薦、活動及 GitHub 議題產生,能產生有意義的成果。

下一步