將 Google Cloud Platform 記錄資料擷取至 Microsoft Sentinel

組織越來越多地轉向多雲架構,無論是出於設計還是持續的需求。 越來越多這類組織使用應用程式並將資料儲存在多個公有雲上,包括 Google Cloud Platform (GCP) 。

本文說明如何將 GCP 資料匯入 Microsoft Sentinel,以獲得完整的安全覆蓋,並在多雲環境中分析與偵測攻擊。 在開始之前,請先檢視 GCP 連接器的前置條件,包括 Azure 和 GCP 所需的存取權限。

透過以我們的零程式碼連接器框架 (CCF)為基礎的GCP Pub/Sub連接器,您可以使用 GCP 的Pub/Sub 功能從 GCP 環境中擷取記錄:

  • Google Cloud Platform (GCP) Pub/Sub Audit Logs 連接器收集對 GCP 資源存取的稽核軌跡。 分析師可以監控這些日誌,追蹤資源存取嘗試並偵測 GCP 環境中的潛在威脅。

  • Google Cloud Platform (GCP) Security Command Center 連接器收集了來自 Google Security Command Center 的調查結果,這是一個為 Google Cloud 打造的強大安全與風險管理平台。 分析師可檢視這些發現,深入了解組織的安全狀況,包括資產盤點與發現、漏洞與威脅偵測,以及風險緩解與修復。

  • Google Kubernetes Engine 連接器會收集 Google Kubernetes Engine (GKE) 日誌。 分析師可以監控這些日誌,追蹤叢集活動、工作負載行為及安全事件,讓分析師能監控 Kubernetes 工作負載、分析效能,並偵測 GKE 叢集間的潛在威脅。

必要條件

開始前,請確認你具備以下條件:

  • Microsoft Sentinel 解決方案已啟用。
  • 存在一個定義的 Microsoft Sentinel 工作空間。
  • 已存在 GCP 環境,並包含產生您想要擷取的下列其中一種日誌類型的資源:
    • GCP 稽核日誌
    • Google 安全指揮中心的發現
  • 你的 Azure 用戶擁有 Microsoft Sentinel 貢獻者角色。
  • 你的 GCP 使用者可以在 GCP 專案中建立和編輯資源。
  • GCP 身份與存取管理 (IAM) API 以及 GCP 雲端Resource Manager API 皆已啟用。

建立 GCP 環境

你在 GCP 環境中需要設定兩件事:

  1. 在 GCP IAM 服務中建立下列資源,以設定 Microsoft Sentinel 驗證:

    • 工作負載身分識別集區
    • 工作負載身分識別提供者
    • 服務帳戶
    • 角色
  2. 在 GCP 中設定日誌收集並將其擷取至 Microsoft Sentinel,方法是在 GCP Pub/Sub 服務中建立以下資源:

    • 主題
    • 主題訂閱

你可以用兩種方式來設置環境:

  • 透過 Terraform API 建立 GCP 資源:Terraform 提供資源建立及身份與存取管理的 API(參見 GCP 連接器前置條件)。 Microsoft Sentinel 提供 Terraform 腳本,能向 API 發出必要的指令。

  • 手動設定 GCP 環境,自己在 GCP 控制台建立資源。

    注意事項

    目前沒有可用來建立 GCP Pub/Sub 資源的 Terraform 腳本,以從 Security Command Center 收集日誌。 你必須手動建立這些資源。 你仍然可以使用 Terraform 腳本來建立 GCP IAM 資源來進行認證。

    重要事項

    如果你是手動建立資源,必須在同一個 GCP 專案中建立所有認證 (IAM) 資源,否則無法運作。 (出版/訂閱資源可以放在不同的專案裡 )

設定 GCP 認證

所有 GCP 連接器皆需此項。

請使用以下步驟使用 Terraform 腳本設置 GCP 認證資源。

  1. 開啟 GCP Cloud Shell。

  2. 請在編輯器中輸入以下指令,選擇你想合作的 專案 :

    gcloud config set project {projectId}  
    
  3. 將 Microsoft Sentinel 提供的 Terraform 認證腳本從 Sentinel GitHub 倉庫複製到 GCP Cloud Shell 環境。

    1. 打開 Terraform 的 GCPInitialAuthenticationSetup 腳本 檔並複製其內容。

      注意事項

      如果要將 GCP 資料擷取至 Azure Government Cloud,請改用 GCPInitialAuthenticationSetupGov Terraform 指令碼。

    2. 在你的 Cloud Shell 環境中建立一個目錄,輸入後再建立一個新的空白檔案。

      mkdir {directory-name} && cd {directory-name} && touch initauth.tf
      
    3. 在Cloud Shell編輯器中開啟 initauth.tf,並將腳本檔案的內容貼上到裡面。

  4. 在你建立的目錄中初始化 Terraform,請在終端機輸入以下指令:

    terraform init 
    
  5. 當你收到 Terraform 已初始化的確認訊息時,請在終端機輸入以下指令執行腳本:

    terraform apply 
    
  6. 當腳本提示輸入你的 Microsoft 租戶 ID,複製貼上到終端機。

    注意事項

    您可以在 Microsoft Sentinel 入口網站的 GCP Pub/Sub 稽核記錄連接器頁面中找到並複製您的租用戶識別碼,或是在入口網站設定畫面 (可透過選取螢幕頂部的齒輪圖示從 Azure 入口網站中的任何地方存取)) 中的 [目錄識別碼] 欄位中找到。 傳送門設定畫面截圖。

  7. 當被問及是否已經為 Azure 建立工作負載身份池時,請依照回答是或否。

  8. 當被問及是否要建立列出的資源時,請輸入 「是」。

當腳本輸出顯示時,請儲存資源參數以備後續使用。

建立 GCP 稽核日誌

本節說明是關於使用 Microsoft Sentinel GCP Pub/Sub Audit Logs 連接器的說明。

請參閱 GCP 安全指揮中心設定以使用 Microsoft Sentinel GCP Pub/Sub 安全指揮中心連接器。

請參閱使用 Microsoft Sentinel Google Kubernetes Engine 連接器的 GKE 日誌設定。

請依照以下步驟,使用 Terraform 建立用於審計日誌收集所需的 GCP 公版/訂閱資源。

  1. 將 Microsoft Sentinel 提供的 Terraform 稽核日誌設定腳本從 Sentinel GitHub 倉庫複製到你的 GCP Cloud Shell 環境中另一個資料夾。

    1. 打開 Terraform 的 GCPAuditLogsSetup 腳本 檔並複製其內容。

      注意事項

      如果要將GCP資料導入Azure Government雲端,可以改用GCPAuditLogsSetup腳本for Azure Government。

    2. 在你的 Cloud Shell 環境中建立另一個目錄,輸入它,然後建立一個新的空白檔案。

      mkdir {other-directory-name} && cd {other-directory-name} && touch auditlog.tf
      
    3. 在Cloud Shell編輯器中開啟 auditlog.tf,並將腳本檔案的內容貼上到裡面。

  2. 在新目錄中初始化 Terraform,請在終端機輸入以下指令:

    terraform init 
    
  3. 當你收到 Terraform 已初始化的確認訊息時,請在終端機輸入以下指令執行腳本:

    terraform apply 
    

    若要透過單一發佈/訂閱從整個組織中擷取日誌,請輸入:

    terraform apply -var="organization-id= {organizationId} "
    
  4. 當被問及是否要建立列出的資源時,請輸入 「是」。

當腳本輸出顯示時,請儲存資源參數以備後續使用。

請等五分鐘後,才能在 Microsoft Sentinel 中設定 GCP Pub/Sub 連接器。

如果你也在設定 GCP Pub/Sub Security Command Center 連接器,請繼續下一節。

否則,請跳至 在 Microsoft Sentinel 中設定 GCP Pub/Sub 連接器。

設立GCP安全指揮中心

本節說明是關於使用 Microsoft Sentinel GCP Pub/Sub Security Command Center 連接器的說明。

請參閱設置 GCP 稽核日誌以使用 Microsoft Sentinel GCP 發佈/訂閱稽核日誌連接器。

請參閱使用 Microsoft Sentinel Google Kubernetes Engine 連接器的 GKE 日誌設定。

設定持續匯出發現

請依照 Google Cloud 文件中的指示,設定未來 SCC 發現的 Pub/Sub 匯出 至 GCP Pub/Sub 服務。

  1. 當被要求選擇一個專案作為匯出時,請選擇你為此目的創建的專案,或 建立一個新專案。

  2. 當被要求選擇想要匯出研究成果的發表/訂閱主題時,請依照 「建立出版主題 」中的指示建立新主題。

設定 Google Kubernetes Engine 連接器

本節說明是關於使用 Microsoft Sentinel Google Kubernetes Engine 連接器的說明。

請參閱 GCP 安全指揮中心設定以使用 Microsoft Sentinel GCP Pub/Sub 安全指揮中心連接器。

請參閱 GCP 稽核日誌設定,以使用 Microsoft Sentinel GCP Pub/Sub 稽核日誌連接器。

請依照以下步驟,使用 Terraform 建立 GCP 發布/訂閱資源,以收集 GKE 日誌。

  1. 將 Microsoft Sentinel 提供的 Terraform 稽核日誌設定腳本從 Sentinel GitHub 倉庫複製到你的 GCP Cloud Shell 環境中另一個資料夾。

    1. 打開 Terraform 的 GoogleKubernetesEngineLogLogSetup 腳本 檔並複製其內容。

    2. 在你的 Cloud Shell 環境中建立另一個目錄,輸入它,然後建立一個新的空白檔案。

      mkdir {other-directory-name} && cd {other-directory-name} && touch gkelog.tf
      
    3. 在Cloud Shell編輯器中開啟 gkelog.tf,並將腳本檔案的內容貼上。

  2. 在新目錄中初始化 Terraform,請在終端機輸入以下指令:

    terraform init 
    
  3. 當你收到 Terraform 已初始化的確認訊息時,請在終端機輸入以下指令執行腳本:

    terraform apply 
    

    若要透過單一發佈/訂閱從整個組織中擷取日誌,請輸入:

    terraform apply -var="organization-id= {organizationId} "
    
  4. 當被問及是否要建立列出的資源時,請輸入 「是」。

當腳本輸出顯示時,請儲存資源參數以備後續使用。

請等五分鐘後,才能在 Microsoft Sentinel 中設定 GCP Pub/Sub 連接器。

在 Microsoft Sentinel 中設定 GCP Pub/Sub 連接器

在你設定好 GCP 環境後,在 Microsoft Sentinel 安裝連接器解決方案,並為你的 GCP 專案設定一個收集器。 選擇你想設定的連接器標籤。

請依照以下步驟安裝並連接 Microsoft Sentinel 中的 GCP Pub/Sub 稽核日誌連接器。

  1. 打開 Azure 入口網站,並導航到 Microsoft Sentinel 服務。

  2. 在 內容中心的搜尋欄,輸入 Google Cloud Platform Audit Logs。

  3. 安裝 Google Cloud Platform 審計日誌 解決方案。

  4. 選擇 資料連接器,並在搜尋欄輸入 GCP Pub/Sub Audit Logs。

  5. 選擇 GCP 發佈/訂閱稽核日誌 連接器。

  6. 在細節窗格中,選擇 「開啟連接器頁面」。

  7. 在 設定 區,選擇 新增收集器。

    GCP 連接器配置截圖

  8. 在 Connect 新收集 器面板中,輸入你在 設定 GCP 環境時建立的資源參數。

    新收藏家側板的截圖。

  9. 確保所有欄位的數值都與你 GCP 專案中的對應值一致, (截圖中的數值是樣本,而非字面值) ,然後選擇 連接。

確認 GCP 資料是否存在於 Microsoft Sentinel 環境中

請依照以下步驟確認 Microsoft Sentinel 是否從 GCP 接收資料。

  1. 為確保 GCP 日誌成功匯入 Microsoft Sentinel,請在完成 Microsoft Sentinel 中設定 GCP 發佈/訂閱連接器步驟後 30 分鐘執行以下查詢。

    GCPAuditLogs 
    | take 10 
    
  2. 啟用 Microsoft Sentinel 健康功能以支援資料連接器。

疑難排解

請參考以下指引,解決設定 GCP Pub/Sub 連接器時常見的問題。

  1. 執行 Terraform 腳本時「錯誤 409:請求實體已存在」:Terraform 狀態是 Terraform 用來追蹤其管理資源的檔案。 如果資源已經存在於 GCP,就匯入 Terraform 狀態,讓 Terraform 追蹤它們,而不是試圖重建。 例如,錯誤訊息為:「Error creating WorkloadIdentityPool: googleapi: Error 409: Requested entity already exists」,將現有工作負載身份池匯入 Terraform 狀態,讓 Terraform 能宣告式管理。 找到池 ID 和專案 ID,然後使用以下指令將現有的工作負載身份池匯入你本機的 Terraform 狀態:
terraform import google_iam_workload_identity_pool.<POOL_RESOURCE_NAME> projects/<PROJECT_ID>/locations/global/workloadIdentityPools/<POOL_ID>

後續步驟

在這篇文章中,你學會了如何使用 GCP Pub/Sub 連接器將 GCP 資料匯入 Microsoft Sentinel。 想了解更多關於 Microsoft Sentinel 的資訊,請參閱以下文章: