本指南提供設定步驟及其他操作,幫助您整合 GitHub 進階安全(GHAS)與 適用於雲端的 Microsoft Defender,並建立一個能從頭到端驗證整合的使用案例。 此整合透過將執行時風險與上下文與原始程式碼關聯,最大化 Microsoft 雲端原生應用安全性,以加速 AI 驅動的修復。
遵循本指南,你:
- 為你的 GitHub 倉庫設定 適用於雲端的 Defender 支持。
- 建立執行時風險因子。
- 測試 適用於雲端的 Defender 的真實應用案例。
- 將程式碼連結到執行時資源。
- 在 GitHub 上啟動安全活動。 此活動利用執行時上下文來優先排序 GHAS 安全警示。
- 從 適用於雲端的 Defender 建立 GitHub issues 以開始補救。
- 關閉工程與資安團隊的連結。
先決條件
| 層面 | 詳細資訊 |
|---|---|
| 環境要求 | - 具有已在 適用於雲端的 Defender 中建立連接器的 GitHub 帳戶 - GitHub 進階安全(GHAS)授權,適用於連接的倉庫 - 訂閱時啟用 Defender 雲端安全態勢管理(DCSPM)方案 - Microsoft Security Copilot(可選用於 AI 驅動的自動化修復) |
| 角色和權限 | - 安全管理員權限 - Azure 訂閱上的安全管理員(可在 適用於雲端的 Defender 中查看偵測結果) - GitHub 組織擁有者(用於連接倉庫及設定安全活動) |
| 雲端環境 | - 僅於商業雲端提供(不包括 Azure Government、21Vianet 運營的 Azure 或其他主權雲端) |
準備您的環境
步驟 1:建立 GitHub 倉庫並執行工作流程
要測試整合,可以使用你自己的倉庫或範例沙盒專案,該專案有包含所有內容的測試GitHub庫,來建立一個脆弱的容器映像。
登入 Azure 入口網站。
請前往 適用於雲端的 Microsoft Defender>DevOps security。
在搜尋欄輸入你的程式碼倉庫名稱(例如: zava-webshop)。
確認它確實屬於你監控的組織(例如: zava-corporation org)。
檢閱存放庫是否有任何發現。
請確保進階安全狀態為開啟,表示您已在受監控的儲存庫內啟用了GitHub進階安全—>您的佈署儲存庫。
如果找不到你的倉庫,請參考 適用於雲端的 Microsoft Defender 文件,以了解故障排除方法和 GitHub 連接器的設置。
確保你的 GitHub 連接器啟用了無代理掃描功能。
步驟二:確認你的環境已經準備好
驗證確認你的環境已正確配置,能將程式碼呈現為執行時建議,並產生可執行的結果。 在此階段,Defender 會驗證:
從完整程式碼到執行階段可見度
- 適用於雲端的 Microsoft Defender 持續監控原始碼庫的安全漏洞。
- 部署前,會在容器登錄中掃描容器映像等組建成品。
- Kubernetes 叢集中的執行時工作負載被監控以防安全風險。
- 適用於雲端的 Defender 會對每個產物進行關聯與追蹤,從程式碼、建置與部署到執行時再回溯。
備註
在前述步驟應用後,可能需要長達24小時才能看到以下結果。
測試 GitHub無代理掃描能偵測到該儲存庫。
請到 適用於雲端的 Microsoft Defender>Cloud Security Explorer 執行查詢。 驗證查詢測試 Defender 是否能識別由你的管線和工作負載產生的產物。 如果查詢回傳結果,表示掃描與關聯性運作正常。
備註
如果沒有結果回傳,可能表示產物尚未產生、掃描未設定,或是權限遺失。 更多資訊請參閱 使用者角色與權限 。
驗證 適用於雲端的 Defender(在 Azure Container Registry 中)是否掃描了容器映像並用它來建立容器。
在查詢中,請填寫你具體部署的條件。
確認容器是否在運作,且 適用於雲端的 Defender 是否掃描了 AKS 叢集。
驗證 適用於雲端的 Defender 端的風險因子設定正確。 在 適用於雲端的 Defender 的庫存頁面搜尋你的容器名稱,應該會看到它被標記為關鍵。
備註
此步驟僅在風險因子尚未設定於環境中時才需要。 如果你已經使用風險因子,可以在設定 > 中的資源關鍵性中驗證它們的設定。
成功的驗證確保後續步驟,如推薦、活動及 GitHub 議題產生,能產生有意義的成果。
備註
當你將資源歸類為關鍵後,適用於雲端的 Defender 可能要花最多 12 小時才能將資料傳送到 GitHub。 深入瞭解。
步驟 3:建立 GitHub 活動
要建立掃描活動,必須在 GitHub 組織層級工作。 這種功能在個別儲存庫層級是無法提供的。
在 GitHub 裡,回到你用來進行設定測試的 GitHub 組織。
選擇安全>活動> 從程式碼掃描過濾器>。
此活動可協助優先處理屬於真正已部署且正在執行之程式碼的 GHAS 發現。
選擇該活動的 執行時風險 篩選條件。
選擇儲存>作為活動發佈。 輸入所需資訊後,發布活動內容。
步驟四:建議動員
使用執行中容器 VA 建議的程式碼到執行階段功能,以及識別到的 CVE 與 Dependabot 安全性警示的相互關聯,以了解安全性問題的狀態。 接著你可以根據程式碼到執行時的對應,將解決方案建議交給相關工程團隊。
在 適用於雲端的 Defender 入口網站,請前往 「推薦」 標籤。
從你的程式碼庫搜尋你建立的容器名稱。
開啟其中一項更新軟體建議;建議名稱會以 Update 開頭
選取相關 CVE 索引標籤安全性警示會顯示為建議評估流程的一部分。 這些警示提供了關於 GitHub Advanced 安全發現的指標,這些發現是工程師團隊已知的。 請注意,部分 CVE ID 在「相關 GitHub 警示」欄位中有一個「在 GitHub 查看」連結。
選擇連結以開啟相關的 GHAS 安全警示。 (要在 GitHub 查看 GHAS 警示內容,必須擁有相關 GitHub 倉庫的存取權限。如果你沒有存取權限,也可以複製連結以便後續使用,或聯絡你的 GitHub 管理員。)
如果有警示擴充,表示有相符的 Dependabot 警示,工程部門已知道該警示。 如果狀態是 「活躍」,代表還沒有人修正,問題需要優先處理。
如果沒有發現擴充,這表示工程部門未知的執行階段風險,需要優先修正。
接下來是什麼? 我怎麼知道哪個團隊負責修復問題? 我怎麼知道哪個情境能幫助工程部門解決這個問題?
建立一個 GitHub 議題
為了讓資安團隊與工程團隊之間建立連結,你可以建立一個 GitHub 議題,優先處理工程團隊應該關注的安全議題。 此優先順序設定也可以納入 GHAS 未偵測到、但 適用於雲端的 Defender 針對非直接相依性的 CVE ID 所發現的弱點結果。 這些發現可能包括基礎映像、作業系統或像 NGINX 這類軟體的漏洞。
GitHub 問題會在來源程式碼存放庫上自動產生,並包含建議範圍中發現的所有 CVE ID,包括其他可協助修正和測試的執行階段與容器 SDLC 相關內容。
從推薦視窗,你可以明確產生一個 GitHub 議題來追蹤修復工作。
請前往「 修復洞察 」標籤,查看程式碼到執行時的圖表。 該圖會將你正在運行的容器映射到程式碼庫中的容器映像檔,以及 GitHub 中原始程式碼庫。
在補救深入解析索引標籤檢閱中,檢閱受影響的執行階段方塊。
驗證是否有GitHub問題存在。 如果 GitHub 問題已經存在,盒子上會顯示一個 GitHub 圖示。 將滑鼠移到圖示上可查看議題詳情。
如果沒有問題且你擁有必要的權限,你可以產生新的 GitHub 議題。 選取 採取動作。
從彈出視窗中選擇產生GitHub問題選項。
如果事件成功建立,你會看到一個彈出通知,其中包含事件的連結。 問題是在原始程式碼庫中產生的。
備註
如果無法啟用 Generate GitHub issue 選項,則可能需要的 GitHub 或儲存庫權限可能未被啟用。 請聯絡你的 GitHub 或倉庫管理員申請存取權限。
進行代理性修正
GitHub方面,如果你有GitHub Copilot授權,可以在GitHub編碼代理的協助下解決這個問題:
- 指派一個 GitHub 程式代理來處理這個問題。
- 檢視已產生的修正。
- 如果修正看起來合理,就去執行。
- 請留意 適用於雲端的 Defender 將問題狀態更新為 「已關閉」。