共用方式為


容器的攻擊路徑分析和增強的風險搜捕

攻擊路徑分析是可掃描雲端安全性圖表的圖表式演算法。 掃描會公開攻擊者可能用來入侵環境以觸及高影響資產的惡意探索路徑。 攻擊路徑分析會公開攻擊路徑,並提供如何最有效補救問題的建議,以中斷攻擊路徑並預防成功入侵。

請根據風險層級、名稱、環境和風險因素、進入點、目標、受影響的資源和作用中的建議,探索和調查攻擊路徑。 探索資源的雲端安全性圖表深入解析。 深入解析類型的範例包括:

  • 在網際網路中公開的 Pod
  • 具有權限的容器
  • 使用主機網路的 Pod
  • 容器映像容易受到遠端程式碼執行的攻擊

Azure:使用易受攻擊的模擬容器映像來測試攻擊路徑和安全性總管

如果未出現在攻擊路徑清單中,您仍可使用模擬容器映像來測試這項功能。 使用下列步驟設定測試:

需求:測試範圍內的 Azure Container Registry (ACR) 執行個體。

  1. 將易受攻擊的模擬映像匯入至 Azure Container Registry:

    1. 首先,透過執行以下指令,將基底映像 (例如,alpine) 提取到本機環境:

      docker pull alpine
      
    2. 使用以下標籤標記映像,然後將其推送到您的 ACR。 使用 Azure 容器登錄名稱取代 <MYACR>

      docker tag alpine <MYACR>.azurecr.io/mdc-mock-0001
      docker push <MYACR>.azurecr.io/mdc-mock-0001
      
    3. 如果沒有 AKS (Azure Kubernetes Service) 叢集,請使用以下命令建立新的 AKS 叢集:

      az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr $MYACR
      
    4. 如果您的 AKS 未連結至 ACR,請使用下列 Cloud Shell 命令列,指示 AKS 執行個體從選取的 ACR 提取映像:

      az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acr-name>
      
  2. 驗證處理叢集的 Cloud Shell 工作階段:

    az aks get-credentials  --subscription <cluster-suid> --resource-group <your-rg> --name <your-cluster-name>    
    
  3. 安裝 ngnix 輸入控制器

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  4. 執行下列命令部署易受攻擊的模擬映像,以在網際網路中公開易受攻擊的容器:

    helm install dcspmcharts  oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<your-image-uri> --set distribution=AZURE
    
  5. 執行下列步驟確認作業成功:

    • 尋找以 mdc-dcspm-demo 作為命名空間的項目
    • 在 [工作負載 - 部署] 索引標籤中>,確認已建立 “pod1” 和 “pod2”,並建立輸入控制器-nginx-ingress-controller 1/1。
    • 在服務和輸入中,尋找> - service1 ingress-controller-nginx-ingress-controller。 在 [輸入] 索引標籤中,確認已使用 IP 位址和 nginx 類別建立一個輸入

注意

完成上述流程之後,最多可能需要 24 小時,才能在雲端安全性總管和攻擊路徑中看到結果。

完成攻擊路徑的測試後,請移至 [攻擊路徑分析] 調查已建立的攻擊路徑,並搜尋您所建立的攻擊路徑。 如需詳細資訊,請參閱識別及補救攻擊路徑

AWS:使用易受攻擊的模擬容器映像來測試攻擊路徑和安全性總管

  1. 建立名為 mdc-mock-0001 的 ECR 存放庫

  2. 移至您的 AWS 帳戶,並選擇 [命令列或以程式設計方式存取]

  3. 開啟命令列,然後選擇 [選項 1:設定 AWS 環境變數 (短期認證)]。 複製 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN 環境變數的認證。

  4. 執行下列命令,以取得 Amazon ECR 登錄的驗證權杖。 將 <REGION> 取代為您的登錄區域。 將 <ACCOUNT> 取代為您的 AWS 帳戶識別碼。

    aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com
    
  5. 建立名稱標示為易受攻擊的 Docker 映像。 映像的名稱應包含字串 mdc-mock-0001。 在建立映像後,使用下列命令將其推送至 ECR 登錄 (請將 <ACCOUNT><REGION> 取代為您的 AWS 帳戶識別碼和區域):

    docker pull alpine
    docker tag alpine <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
    docker push <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
    
  6. 連線至您的 EKS 叢集,並安裝提供的 Helm 圖表。 設定 kubectl 以使用您的 EKS 叢集。 執行下列命令 (請將 <your-region><your-cluster-name> 取代為您的 EKS 叢集區域和名稱):

    aws eks --region <your-region> update-kubeconfig --name <your-cluster-name>
    
  7. 驗證設定。 您可以執行下列命令,檢查 kubectl 是否已正確設定:

    kubectl get nodes
    
  8. 安裝 ngnix 輸入控制器

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  9. 安裝下列 Helm 圖表:

    helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 --set distribution=AWS
    

Helm 圖表會將資源部署到您的叢集,用來推斷攻擊路徑。 其中也包含易受攻擊的映像。

注意

完成上述流程之後,最多可能需要 24 小時,才能在雲端安全性總管和攻擊路徑中看到結果。

完成攻擊路徑的測試後,請移至 [攻擊路徑分析] 調查已建立的攻擊路徑,並搜尋您所建立的攻擊路徑。 如需詳細資訊,請參閱識別及補救攻擊路徑

GCP:使用易受攻擊的模擬容器映像來測試攻擊路徑和安全性總管

  1. 在 GCP 入口網站中,搜尋成品登錄,然後建立名為 mdc-mock-0001 的 GCP 存放庫

  2. 依照這些指示將映像推送至您的存放庫。 執行以下命令:

    docker pull alpine
    docker tag alpine <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
    docker push <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
    
  3. 移至 GCP 入口網站。 然後,移至 [Kubernetes 引擎]>[叢集]。 選取 [連線] 按鈕。

  4. 連線之後,在 Cloud Shell 中執行命令,或複製連線命令並在您的機器上執行:

    gcloud container clusters get-credentials contra-bugbash-gcp --zone us-central1-c --project onboardingc-demo-gcp-1
    
  5. 驗證設定。 您可以執行下列命令,檢查 kubectl 是否已正確設定:

    kubectl get nodes
    
  6. 若要安裝 Helm 圖表,依照下列步驟操作:

    1. 在入口網站的 [成品登錄] 底下,移至存放庫,然後在 [依照摘要提取] 底下尋找映像 URI。

    2. 執行下列命令以安裝 Helm 圖表:

      helm install dcspmcharts oci:/mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<IMAGE_URI> --set distribution=GCP
      

Helm 圖表會將資源部署到您的叢集,用來推斷攻擊路徑。 其中也包含易受攻擊的映像。

注意

完成上述流程之後,最多可能需要 24 小時,才能在雲端安全性總管和攻擊路徑中看到結果。

完成攻擊路徑的測試後,請移至 [攻擊路徑分析] 調查已建立的攻擊路徑,並搜尋您所建立的攻擊路徑。 如需詳細資訊,請參閱識別及補救攻擊路徑

使用雲端安全性總管尋找容器態勢問題

您可以使用下列其中一種方式建置查詢:

在以下幾節中,我們提供了查詢範例讓您選取或建立。

使用雲端安全性總管範本探索風險

  1. 從 [適用於雲端的Defender] 概觀頁面,開啟雲端安全性總管。

  2. Kubernetes 的一些現成可用的範本隨即出現。 請選取其中一個範本:

    • Azure Kubernetes Pod 執行具有高嚴重性弱點的映像
    • Kubernetes 命名空間包含易受攻擊的 Pod

    顯示在哪裡選取範本的螢幕擷取畫面。

  3. 選取 [開啟查詢];範本會在畫面的上半部建置查詢。 選取 [搜尋] 以檢視結果。

    顯示所建置查詢的螢幕擷取畫面,以及要選取搜尋的位置。

使用雲端安全性總管建立自訂查詢

您也可以建立自己的自訂查詢。 下列範例說明如何搜尋是否有 Pod 執行易受遠端程式碼執行攻擊的容器映像。

自訂查詢的螢幕擷取畫面。

結果會列在查詢下方。

顯示自訂查詢結果的螢幕擷取畫面。

下一步