將 Security Command Center 與 Google SecOps 整合
本文說明如何將 Security Command Center 與 Google Security Operations (Google SecOps) 整合。
整合版本:13.0
事前準備
如要使用這項整合功能,您需要自訂 Identity and Access Management (IAM) 角色和 Google Cloud 服務帳戶。你可以使用現有的服務帳戶,也可以建立新的服務帳戶。
建立及設定 IAM 角色
如要為整合建立及設定自訂 IAM 角色,請完成下列步驟:
前往 Google Cloud 控制台的 IAM「Roles」(角色) 頁面。
按一下「建立角色」,建立具有整合項目所需權限的自訂角色。
如要建立新的自訂角色,請輸入「標題」、「說明」和專屬「ID」。
將「角色發布階段」設為「正式發布」。
將下列權限新增至建立的角色:
securitycenter.assets.listsecuritycenter.findings.listsecuritycenter.findings.setMutesecuritycenter.findings.setState
建立及設定 API 金鑰
如要建立 API 金鑰,請完成下列步驟:
在 Google Cloud 控制台中,依序前往「API 和服務」>「憑證」>「建立憑證」。
選取「API 金鑰」。畫面上會顯示一個對話方塊,其中包含產生的 API 金鑰。複製 API 金鑰並妥善儲存。
如要設定 API 金鑰的 API 限制,請完成下列步驟:
依序點選「限制金鑰」>「API 限制」>「限制金鑰」。
從 API 清單中選取「Security Command Center API」,然後設定適用的限制並按一下「儲存」。
授予 API 金鑰存取權
如要授予 Security Command Center API 金鑰存取權,請完成下列步驟:
在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Service accounts」(服務帳戶)。
選取您在 Security Command Center 整合中使用的服務帳戶。
按一下服務帳戶的電子郵件地址。
選取「授予存取權」。
在「新增成員」欄位中,輸入服務帳戶的電子郵件地址。
在「安全中心」下方,選取
Security Center Findings Editor角色,然後按一下「儲存」。
整合參數
整合 Security Command Center 時,需要下列參數:
| 參數 | 說明 | 
|---|---|
API Root | 
   必填。 Security Command Center 執行個體的 API 根層級。  | 
  
Organization ID | 
   選填。 用於整合 Security Command Center 的機構 ID。  | 
  
Project ID | 
    選填。 Security Command Center 執行個體的專案 ID。  | 
  
Quota Project ID | 
    選填。 您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 
     如未設定這個參數的值,整合服務會從 Google Cloud 服務帳戶擷取專案 ID。  | 
  
User's Service Account | 
    必填。 服務帳戶金鑰 JSON 檔案的內容。 您可以設定這個參數或  如要設定這個參數,請提供您建立服務帳戶時下載的服務帳戶金鑰 JSON 檔案完整內容。  | 
  
Workload Identity Email | 
    選填。 服務帳戶的用戶端電子郵件地址。 您可以設定這個參數或  如果設定這個參數,請設定  如要使用 Workload Identity Federation 模擬服務帳戶,請將   | 
  
Verify SSL | 
    必填。 如果選取這個選項,整合功能會在連線至 Security Command Center 伺服器時驗證 SSL 憑證。 (此為預設選項)。  | 
  
如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。
如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。
取得發現項目詳細資料
使用「Get Finding Details」(取得發現項目詳細資料) 動作,擷取 Security Command Center 中發現項目的詳細資料。
這項操作不會在 Google SecOps 實體上執行。
動作輸入內容
「取得調查結果詳細資料」動作需要下列參數:
| 參數 | 說明 | 
|---|---|
Finding Name | 
    必填。 尋找要傳回詳細資料的名稱。這個參數接受以半形逗號分隔的多個值。 以下是尋找名稱的範例: organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID | 
  
動作輸出內容
「取得發現項目詳細資料」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 | 
|---|---|
| 案件總覽附件 | 無法使用 | 
| 案件總覽連結 | 無法使用 | 
| 案件訊息牆表格 | 可用 | 
| 補充資訊表格 | 無法使用 | 
| JSON 結果 | 可用 | 
| 輸出訊息 | 可用 | 
| 指令碼結果 | 可用 | 
案件訊息牆表格
「Get Finding Details」動作可傳回下表:
表格標題:發現項目詳細資料
資料表欄:
- 類別
 - 狀態
 - 嚴重性
 - 類型
 
JSON 結果
以下範例顯示使用「取得發現項目詳細資料」動作時收到的 JSON 結果輸出內容:
{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
輸出訊息
「Get Finding Details」動作可以傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 | 
|---|---|
 
 
  | 
      動作成功。 | 
Error executing action "Get Finding Details". Reason: ERROR_REASON | 
      動作失敗。 檢查伺服器的連線、輸入參數或憑證。  | 
    
指令碼結果
下表列出使用「Get Finding Details」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 | 
|---|---|
is_success | 
      True或False | 
    
列出資產安全漏洞
使用「列出資產安全漏洞」動作,列出與 Security Command Center 中實體相關的安全漏洞。
這項操作不會在 Google SecOps 實體上執行。
動作輸入內容
「列出資產安全漏洞」動作需要下列參數:
| 參數 | 說明 | 
|---|---|
Asset Resource Names | 
    必填。 要傳回資料的資產資源名稱。這個參數接受以半形逗號分隔的多個值。  | 
  
Timeframe | 
    選填。 搜尋安全漏洞或設定錯誤的期間。 可能的值如下: 
 預設值為   | 
  
Record Types | 
    選填。 要傳回的記錄類型。 可能的值如下: 
 預設值為   | 
  
Output Type | 
    選填。 要在每個資產的 JSON 結果中傳回的輸出類型。 可能的值如下: 
 預設值為   | 
  
Max Records To Return | 
    選填。 每個記錄類型最多可傳回的記錄數。 預設值為   | 
  
動作輸出內容
「列出資產安全漏洞」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 | 
|---|---|
| 案件總覽附件 | 無法使用 | 
| 案件總覽連結 | 無法使用 | 
| 案件訊息牆表格 | 可用 | 
| 補充資訊表格 | 無法使用 | 
| JSON 結果 | 可用 | 
| 輸出訊息 | 可用 | 
| 指令碼結果 | 可用 | 
案件訊息牆表格
「列出資產安全漏洞」動作可傳回下列表格:
表格標題:ASSET_ID 安全漏洞
資料表欄:
- 類別
 - 說明
 - 嚴重性
 - 活動時間
 - CVE
 
表格標題:ASSET_ID 錯誤設定
資料表欄:
- 類別
 - 說明
 - 嚴重性
 - 活動時間
 - 建議
 
JSON 結果
下列範例顯示使用「列出資產安全漏洞」動作時收到的 JSON 結果輸出內容:
{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
輸出訊息
「列出資產安全漏洞」動作可傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 | 
|---|---|
 
 
  | 
      動作成功。 | 
Error executing action "List Asset Vulnerabilities". Reason:
      ERROR_REASON | 
      動作失敗。 檢查伺服器的連線、輸入參數或憑證。  | 
    
指令碼結果
下表列出使用「列出資產安全漏洞」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 | 
|---|---|
is_success | 
      True或False | 
    
乒乓
使用「Ping」動作測試與 Security Command Center 的連線。
這項操作不會在 Google SecOps 實體上執行。
動作輸入內容
無
動作輸出內容
「Ping」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 | 
|---|---|
| 案件總覽附件 | 無法使用 | 
| 案件總覽連結 | 無法使用 | 
| 案件訊息牆表格 | 無法使用 | 
| 補充資訊表格 | 無法使用 | 
| JSON 結果 | 無法使用 | 
| 輸出訊息 | 可用 | 
| 指令碼結果 | 可用 | 
輸出訊息
「Ping」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 | 
|---|---|
Successfully connected to the Security Command Center server
      with the provided connection parameters! | 
      動作成功。 | 
Failed to connect to the Security Command Center server! Error
      is ERROR_REASON | 
      動作失敗。 檢查伺服器的連線、輸入參數或憑證。  | 
    
指令碼結果
下表列出使用「Ping」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 | 
|---|---|
is_success | 
      True或False | 
    
更新發現項目
使用「更新發現項目」動作,更新 Security Command Center 中的發現項目。
這項操作不會在 Google SecOps 實體上執行。
動作輸入內容
「更新發現項目」動作需要下列參數:
| 參數 | 說明 | 
|---|---|
Finding Name | 
    必填。 找出要更新的名稱。這個參數接受以半形逗號分隔的多個值。 以下是尋找名稱的範例:  | 
  
Mute Status | 
    選填。 發現項目的略過狀態。 可能的值如下: 
  | 
  
State Status | 
    選填。 發現項目的狀態。 可能的值如下: 
  | 
  
動作輸出內容
「更新發現項目」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 | 
|---|---|
| 案件總覽附件 | 無法使用 | 
| 案件總覽連結 | 無法使用 | 
| 案件訊息牆表格 | 無法使用 | 
| 補充資訊表格 | 無法使用 | 
| JSON 結果 | 無法使用 | 
| 輸出訊息 | 可用 | 
| 指令碼結果 | 可用 | 
輸出訊息
「更新發現項目」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 | 
|---|---|
 
 
  | 
      動作成功。 | 
Error executing action "Update finding". Reason: ERROR_REASON | 
      動作失敗。 檢查伺服器的連線、輸入參數或憑證。  | 
    
指令碼結果
下表列出使用「更新發現項目」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 | 
|---|---|
is_success | 
      True或False | 
    
連接器
如要進一步瞭解如何在 Google SecOps 中設定連接器,請參閱「擷取資料 (連接器)」。
Google Security Command Center - 發現項目連接器
使用 Google Security Command Center - Findings Connector 擷取 Security Command Center 發現項目的相關資訊。
動態清單篩選器適用於類別。
連接器輸入內容
Google Security Command Center - Findings Connector 需要下列參數:
| 參數 | 說明 | 
|---|---|
Product Field Name | 
    必填。 儲存產品名稱的欄位名稱。 產品名稱主要會影響對應。為簡化及改善連接器的對應程序,預設值會解析為程式碼參照的回退值。這個參數的任何無效輸入內容,預設都會解析為備用值。 預設值為   | 
  
Event Field Name | 
    必填。 決定事件名稱 (子類型) 的欄位名稱。 預設值為   | 
  
Environment Field Name | 
    選填。 儲存環境名稱的欄位名稱。 如果缺少環境欄位,連接器會使用預設值。  | 
  
Environment Regex Pattern | 
    選填。 要在「 使用預設值  如果規則運算式模式為空值或空白,或環境值為空值,最終環境結果就是預設環境。  | 
  
Script Timeout (Seconds) | 
    必填。 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 預設值為   | 
  
API Root | 
   必填。 Security Command Center 執行個體的 API 根層級。 預設值為   | 
  
Organization ID | 
   選填。 要在 Security Command Center 整合中使用的機構 ID。  | 
  
Project ID | 
    選填。 Security Command Center 執行個體的專案 ID。  | 
  
Quota Project ID | 
    選填。 您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 
     如未設定這個參數的值,整合服務會從 Google Cloud 服務帳戶擷取專案 ID。  | 
  
User's Service Account | 
    必填。 服務帳戶金鑰 JSON 檔案的內容。 您可以設定這個參數或  如要設定這個參數,請提供您建立服務帳戶時下載的服務帳戶金鑰 JSON 檔案完整內容。  | 
  
Workload Identity Email | 
    選填。 服務帳戶的用戶端電子郵件地址。 您可以設定這個參數或  如果設定這個參數,請設定  如要使用 Workload Identity Federation 模擬服務帳戶,請將   | 
  
Finding Class Filter
     | 
    選填。 連接器要擷取的發現項目類別。 可能的值如下: 
 如果未設定值,連接器會擷取所有類別的調查結果。 預設值為   | 
  
Lowest Severity To Fetch | 
    選填。 要擷取的最低快訊嚴重性。 如未設定這個參數,連接器會擷取所有嚴重程度的快訊。 連接器會將嚴重程度未定義的快訊視為 可能的值如下: 
 預設值為   | 
  
Max Hours Backwards | 
    選填。 要擷取調查結果的小時數 (以目前時間為準)。 這個參數可套用至首次啟用連接器後的初始連接器疊代,或套用至過期連接器時間戳記的回溯值。 最大值為  預設值為   | 
  
Max Findings To Fetch
     | 
    選填。 每次連接器疊代要處理的發現項目數量。 最大值為  預設值為   | 
  
Use dynamic list as a blacklist | 
    必填。 如果選取這個選項,連接器會將動態清單做為封鎖清單。 預設為未選取。  | 
  
Verify SSL
     | 
    必填。 如果選取這個選項,整合功能會在連線至 Security Command Center 伺服器時驗證 SSL 憑證。 預設為未選取。  | 
  
Proxy Server Address | 
    選填。 要使用的 Proxy 伺服器位址。  | 
  
Proxy Username | 
    選填。 用於驗證的 Proxy 使用者名稱。  | 
  
Proxy Password | 
    選填。 用於驗證的 Proxy 密碼。  | 
  
連接器規則
Google Security Command Center - Findings Connector 支援 Proxy。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。