將 Security Command Center 與 Google SecOps 整合

整合版本:14.0

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

事前準備

如要整合 Security Command Center,請完成下列步驟:

  1. 建立自訂 Identity and Access Management (IAM) 角色,並授予必要權限。

  2. 使用下列任一選項設定驗證:

建立及設定 IAM 角色

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

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

    前往「Roles」(角色)

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

  3. 輸入「標題」、「說明」和專屬「ID」

  4. 將「角色發布階段」設為 General Availability

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

    • securitycenter.assets.list

    • securitycenter.findings.list

    • securitycenter.findings.setMute

    • securitycenter.findings.setState

  6. 點按「Create」(建立)

設定驗證機制

如要驗證整合服務,請使用具有 JSON 金鑰或 Workload Identity 的服務帳戶。

使用 JSON 金鑰進行驗證

這個方法會使用靜態 JSON 金鑰檔案驗證服務帳戶。

建立服務帳戶

如要使用 JSON 金鑰進行驗證,請先建立服務帳戶:

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

  2. 選取要建立服務帳戶的專案。

  3. 按一下「Create Service Account」(建立服務帳戶)

    如要使用現有服務帳戶,請選取要使用的服務帳戶,然後產生 JSON 金鑰

  4. 提供名稱和說明,然後按一下「Create and Continue」(建立並繼續)

  5. 在「Grant this service account access to project」(將專案存取權授予這個服務帳戶) 步驟中,新增您建立的自訂角色。

  6. 按一下「完成」,即可完成帳戶建立程序。

產生 JSON 金鑰

請按照下列步驟產生必要的 JSON 金鑰檔案:

  1. 在服務帳戶清單中,選取您建立 (或選取) 的服務帳戶電子郵件地址,開啟詳細資料。

  2. 按一下「Keys」(金鑰) 分頁標籤。

  3. 依序點選「新增金鑰」>「建立新的金鑰」

  4. 選取「JSON」做為金鑰類型,然後按一下「建立」

  5. JSON 金鑰檔案會下載到電腦中。請妥善儲存這個檔案,並在設定整合參數時,將這個檔案的完整內容貼到 User's Service Account 中。

使用 Workload Identity 進行驗證 (建議)

這個方法可讓整合服務模擬服務帳戶,不必處理長期有效的密鑰。

如要設定工作負載身分,請完成下列步驟:

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

  2. 選取現有服務帳戶或建立新的服務帳戶。

  3. 將您建立的自訂角色指派給服務帳戶。

  4. 將「服務使用情形消費者」角色授予服務帳戶。 如要將 API 用量與 Quota Project ID 中定義的專案建立關聯,就必須具備這項權限。

  5. 將「服務帳戶憑證建立者」角色授予服務帳戶。

    這項權限可讓整合服務產生驗證所需的短期憑證。

  6. 記下服務帳戶的「用戶端電子郵件」,並在設定整合參數時,將這個值用於「Workload Identity 電子郵件」

整合參數

整合 Security Command Center 時,需要下列參數:

參數 說明
API Root

必填。

Security Command Center 執行個體的 API 根目錄。

Organization ID

選填。

用於設定 Security Command Center 整合查詢範圍的 Google Cloud 機構 ID。

Project ID

選填。

用於設定 Security Command Center 執行個體查詢範圍的 Google Cloud 專案 ID。

Quota Project ID

選填。

用於 API 使用量和帳單處理的 Google Cloud 專案 ID。

User's Service Account

選填。

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

只有在使用 JSON 金鑰進行驗證時,才需要使用這個參數。

Workload Identity Email

選填。

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

只有在使用 Workload Identity 驗證時,才需要使用這個參數。

如果設定這項參數,也必須設定 Quota Project ID

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

此參數接受以逗號分隔的多個值。

動作輸出內容

「Get Finding Details」(取得發現項目詳細資料) 動作會提供下列輸出內容:

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

「取得調查結果詳細資料」動作可以傳回下列輸出訊息:

輸出訊息 訊息說明

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

動作失敗。

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

指令碼結果

下表列出使用「取得調查結果詳細資料」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success truefalse

列出資產安全漏洞

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

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

動作輸入內容

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

參數 說明
Asset Resource Names

必填。

以半形逗號分隔的專屬 ID 清單 (完整資源名稱),用於擷取資產的相關資料。

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

選填。

發現項目的略過狀態。

可能的值如下:

  • Mute
  • Unmute
State Status

選填。

發現項目的狀態。

可能的值如下:

  • 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 中設定連接器,請參閱「擷取資料 (連接器)」。

Security Command Center - 發現項目連接器

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

這個連接器支援使用動態清單依類別篩選發現項目。

連接器輸入內容

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

參數 說明
Product Field Name

必填。

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

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

預設值為 Product Name

Event Field Name

必填。

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

Environment Field Name

選填。

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

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

預設值為 ""

Environment Regex Pattern

選填。

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

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

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

PythonProcessTime

必填。

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

預設值為 180

API Root

必填。

Security Command Center 執行個體的 API 根目錄。

Organization ID

選填。

要使用的 Google Cloud 機構 ID

Project ID

選填。

要使用的 Google Cloud 專案 ID。

Quota Project ID

選填。

要使用的 Google Cloud 專案 ID。

User's Service Account

必填。

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

只有在使用 JSON 金鑰進行驗證時,才需要使用這個參數。

Workload Identity Email

選填。

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

只有在使用 Workload Identity 驗證時,才需要使用這個參數。

如果設定這項參數,也必須設定 Quota Project ID

Finding Class Filter

選填。

以半形逗號分隔的清單,列出從來源擷取資料時要納入的安全性發現項目類型。

可能的值如下:

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation
  • Toxic Combination
  • Chokepoint

如果未提供任何值,系統會擷取所有類別的發現項目。

Lowest Severity To Fetch

選填。

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

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

可能的值如下:

  • Low
  • Medium
  • High
  • Critical

如果嚴重性未定義的發現項目獲派 Fallback Severity 等級,該發現項目就不會受到這個參數的篩選。

如果未提供任何值,系統會擷取所有嚴重程度類型。

Fallback Severity

選填。

要指派給任何已擷取安全發現項目的嚴重程度等級,但來源未定義或可辨識嚴重程度等級。

可能的值如下:

  • Low
  • Medium
  • High
  • Critical

預設值為 Medium

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