將容器映像從程式碼對應至雲端
當儲存在容器登錄或在 Kubernetes 叢集中執行的容器映像中識別弱點時,安全性從業者可能會難以追溯到最先建置容器映像的 CI/CD 管線,並識別開發人員補救擁有者。 透過 Microsoft Defender 雲端安全性態勢管理 (CSPM) 中的 DevOps 安全性功能,您可以將雲端原生應用程式從程式碼對應到雲端,以輕鬆啟動開發人員補救工作流程,並縮短容器映像中弱點補救的時間。
已將適用於雲端的 Defender 上線的 Azure 帳戶。 如果您尚未擁有 Azure 帳戶,請建立免費帳戶。
針對 Azure DevOps:
Microsoft安全性 DevOps (MSDO) 擴充功能 必須安裝在 Azure DevOps 組織上。
請確定所有連線的 Azure DevOps 組織都會共用並安裝適用於 DevOps 擴充功能的 Microsoft Defender。 針對新上線的連接器,這會自動完成。 此延伸模組會自動將工作插入所有 Azure Pipelines,以收集數據以進行容器對應。
必須使用 YAML 管線,因為不再支持傳統管線。
針對 GitHub:
Microsoft安全性 DevOps (MSDO) 動作 必須在 GitHub 工作流程中設定。
GitHub 工作流程必須具有 “id-token: write” 許可權,才能與 適用於雲端的 Defender 同盟。 如需範例,請參閱 這個 YAML。
已啟用 Defender CSPM。
容器映像必須使用 Docker 來建置,而且 Docker 用戶端必須在建置期間可以存取 Docker 伺服器。
在 Azure DevOps CI/CD 管線中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:
登入 Azure 入口網站。
瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。
若要查看基本對應,請選取 [容器映像]>+>[由程式碼存放庫推送]。
(選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。
執行查詢之後,您會看到容器登錄與 Azure DevOps 管線之間的對應。 選取邊緣旁的 ...,以查看 Azure DevOps 管線執行位置的更多詳細資料。
以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 Azure DevOps 管線,讓安全性從業者能夠啟動開發人員補救工作流程。
注意
如果您的 Azure DevOps 組織在 2023 年 11 月 15 日之前建立 Azure DevOps 連接器,請瀏覽至 [組織設定]>[延伸模組]>[共用],並安裝容器映像對應裝飾項目。 如果您沒有看到與組織共用的延伸模組,請填寫下列 表單。
確保您已將 GitHub 連接器上線至適用於雲端的 Defender。
執行下列 MSDO 工作流程:
name: Build and Map Container Image
on: [push, workflow_dispatch]
jobs:
build:
runs-on: ubuntu-latest
# Set Permissions
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
# Set Authentication to Container Registry of Choice.
# The example below is for Azure Container Registry. Amazon Elastic Container Registry and Google Artifact Registry are also supported.
- name: Azure Container Registry Login
uses: Azure/docker-login@v1
with:
login-server: <containerRegistryLoginServer>
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
# Build and Push Image
- name: Build and Push the Docker image
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ secrets.IMAGE_TAG }}
file: Dockerfile
# Run Mapping Tool in MSDO
- name: Run Microsoft Security DevOps Analysis
uses: microsoft/security-devops-action@latest
id: msdo
在 GitHub 工作流程中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:
登入 Azure 入口網站。
瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。
若要查看基本對應,請選取 [容器映像]>+>[由程式碼存放庫推送]。
(選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。
執行查詢之後,您會看到容器登錄與 GitHub 工作流程管線之間的對應。 選取邊緣旁的 ...,以查看 GitHub 工作流程執行位置的更多詳細資料。
以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 GitHub 存放庫,讓安全性從業者能夠啟動開發人員補救工作流程。