將 Security Command Center 與 Google SecOps 整合

本文說明如何將 Security Command Center 與 Google Security Operations (Google SecOps) 整合。

整合版本:13.0

事前準備

如要使用這項整合功能,您需要自訂 Identity and Access Management (IAM) 角色和 Google Cloud 服務帳戶。你可以使用現有的服務帳戶,也可以建立新的服務帳戶。

建立及設定 IAM 角色

如要為整合建立及設定自訂 IAM 角色,請完成下列步驟:

  1. 前往 Google Cloud 控制台的 IAM「Roles」(角色) 頁面。

    前往「Roles」(角色)

  2. 按一下「建立角色」,建立具有整合項目所需權限的自訂角色。

  3. 如要建立新的自訂角色,請輸入「標題」、「說明」和專屬「ID」

  4. 將「角色發布階段」設為「正式發布」

  5. 將下列權限新增至建立的角色:

    • securitycenter.assets.list
    • securitycenter.findings.list
    • securitycenter.findings.setMute
    • securitycenter.findings.setState

建立及設定 API 金鑰

如要建立 API 金鑰,請完成下列步驟:

  1. 在 Google Cloud 控制台中,依序前往「API 和服務」>「憑證」>「建立憑證」。

  2. 選取「API 金鑰」。畫面上會顯示一個對話方塊,其中包含產生的 API 金鑰。複製 API 金鑰並妥善儲存。

如要設定 API 金鑰的 API 限制,請完成下列步驟:

  1. 依序點選「限制金鑰」>「API 限制」>「限制金鑰」

  2. 從 API 清單中選取「Security Command Center API」,然後設定適用的限制並按一下「儲存」

授予 API 金鑰存取權

如要授予 Security Command Center API 金鑰存取權,請完成下列步驟:

  1. 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Service accounts」(服務帳戶)

  2. 選取您在 Security Command Center 整合中使用的服務帳戶。

  3. 按一下服務帳戶的電子郵件地址。

  4. 選取「授予存取權」

  5. 在「新增成員」欄位中,輸入服務帳戶的電子郵件地址。

  6. 在「安全中心」下方,選取 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 如要使用這個參數,您必須將 Service Usage Consumer 角色授予服務帳戶。

如未設定這個參數的值,整合服務會從 Google Cloud 服務帳戶擷取專案 ID。

User's Service Account

必填。

服務帳戶金鑰 JSON 檔案的內容。

您可以設定這個參數或 Workload Identity Email 參數。

如要設定這個參數,請提供您建立服務帳戶時下載的服務帳戶金鑰 JSON 檔案完整內容。

Workload Identity Email

選填。

服務帳戶的用戶端電子郵件地址。

您可以設定這個參數或 User's Service Account 參數。

如果設定這個參數,請設定 Quota Project ID 參數。

如要使用 Workload Identity Federation 模擬服務帳戶,請將 Service Account Token Creator 角色授予服務帳戶。如要進一步瞭解工作負載身分和使用方式,請參閱「工作負載的身分」。

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」動作可以傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

動作成功。
Error executing action "Get Finding Details". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「Get Finding Details」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出資產安全漏洞

使用「列出資產安全漏洞」動作,列出與 Security Command Center 中實體相關的安全漏洞。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「列出資產安全漏洞」動作需要下列參數:

參數 說明
Asset Resource Names

必填。

要傳回資料的資產資源名稱。這個參數接受以半形逗號分隔的多個值。

Timeframe

選填。

搜尋安全漏洞或設定錯誤的期間。

可能的值如下:

  • Last Week
  • Last Month
  • Last Year
  • All Time

預設值為 All Time

Record Types

選填。

要傳回的記錄類型。

可能的值如下:

  • Vulnerabilities Misconfigurations
  • Vulnerabilities + Misconfigurations

預設值為 Vulnerabilities + Misconfigurations

Output Type

選填。

要在每個資產的 JSON 結果中傳回的輸出類型。

可能的值如下:

  • Statistics
  • Data
  • Statistics + Data

預設值為 Statistics

Max Records To Return

選填。

每個記錄類型最多可傳回的記錄數。

預設值為 100

動作輸出內容

「列出資產安全漏洞」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 可用
補充資訊表格 無法使用
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"
            }
        ]
    },
}
輸出訊息

「列出資產安全漏洞」動作可傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

動作成功。
Error executing action "List Asset Vulnerabilities". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「列出資產安全漏洞」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

乒乓

使用「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 TrueFalse

更新發現項目

使用「更新發現項目」動作,更新 Security Command Center 中的發現項目。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「更新發現項目」動作需要下列參數:

參數 說明
Finding Name

必填。

找出要更新的名稱。這個參數接受以半形逗號分隔的多個值。

以下是尋找名稱的範例:organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID

Mute Status

選填。

發現項目的略過狀態。

可能的值如下:

  • Select One
  • Mute
  • Unmute
State Status

選填。

發現項目的狀態。

可能的值如下:

  • Select One
  • Active
  • Inactive

動作輸出內容

「更新發現項目」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
輸出訊息

「更新發現項目」動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

動作成功。
Error executing action "Update finding". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「更新發現項目」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

連接器

如要進一步瞭解如何在 Google SecOps 中設定連接器,請參閱「擷取資料 (連接器)」。

Google Security Command Center - 發現項目連接器

使用 Google Security Command Center - Findings Connector 擷取 Security Command Center 發現項目的相關資訊。

動態清單篩選器適用於類別。

連接器輸入內容

Google Security Command Center - Findings Connector 需要下列參數:

參數 說明
Product Field Name

必填。

儲存產品名稱的欄位名稱。

產品名稱主要會影響對應。為簡化及改善連接器的對應程序,預設值會解析為程式碼參照的回退值。這個參數的任何無效輸入內容,預設都會解析為備用值。

預設值為 Product Name

Event Field Name

必填。

決定事件名稱 (子類型) 的欄位名稱。

預設值為 category

Environment Field Name

選填。

儲存環境名稱的欄位名稱。

如果缺少環境欄位,連接器會使用預設值。

Environment Regex Pattern

選填。

要在「Environment Field Name」欄位中找到的值上執行的規則運算式模式。這個參數可讓您使用規則運算式邏輯,操控環境欄位。

使用預設值 .* 擷取必要的原始 Environment Field Name 值。

如果規則運算式模式為空值或空白,或環境值為空值,最終環境結果就是預設環境。

Script Timeout (Seconds)

必填。

執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。

預設值為 180

API Root

必填。

Security Command Center 執行個體的 API 根層級。

預設值為 https://securitycenter.googleapis.com

Organization ID

選填。

要在 Security Command Center 整合中使用的機構 ID。

Project ID

選填。

Security Command Center 執行個體的專案 ID。

Quota Project ID

選填。

您用於 Google Cloud API 和帳單的專案 ID。 Google Cloud 如要使用這個參數,您必須將 Service Usage Consumer 角色授予服務帳戶。

如未設定這個參數的值,整合服務會從 Google Cloud 服務帳戶擷取專案 ID。

User's Service Account

必填。

服務帳戶金鑰 JSON 檔案的內容。

您可以設定這個參數或 Workload Identity Email 參數。

如要設定這個參數,請提供您建立服務帳戶時下載的服務帳戶金鑰 JSON 檔案完整內容。

Workload Identity Email

選填。

服務帳戶的用戶端電子郵件地址。

您可以設定這個參數或 User's Service Account 參數。

如果設定這個參數,請設定 Quota Project ID 參數。

如要使用 Workload Identity Federation 模擬服務帳戶,請將 Service Account Token Creator 角色授予服務帳戶。如要進一步瞭解工作負載身分和使用方式,請參閱「工作負載的身分」。

Finding Class Filter

選填。

連接器要擷取的發現項目類別。

可能的值如下:

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation

如果未設定值,連接器會擷取所有類別的調查結果。

預設值為 Threat,Vulnerability,Misconfiguration,SCC_Error,Observation

Lowest Severity To Fetch

選填。

要擷取的最低快訊嚴重性。

如未設定這個參數,連接器會擷取所有嚴重程度的快訊。

連接器會將嚴重程度未定義的快訊視為Medium嚴重程度。

可能的值如下:

  • Low
  • Medium
  • High
  • Critical

預設值為 High

Max Hours Backwards

選填。

要擷取調查結果的小時數 (以目前時間為準)。

這個參數可套用至首次啟用連接器後的初始連接器疊代,或套用至過期連接器時間戳記的回溯值。

最大值為 24

預設值為 1

Max Findings To Fetch

選填。

每次連接器疊代要處理的發現項目數量。

最大值為 1000

預設值為 100

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 專業人員尋求答案。