收集 Sysdig 記錄

支援的國家/地區:

這個剖析器會從 Sysdig JSON 記錄中擷取安全事件資料,並將原始記錄欄位轉換及對應至 Google Security Operations UDM 格式。這項服務會處理各種欄位,包括中繼資料、主體或目標資訊、安全性結果詳細資料和 Kubernetes 相關內容,進而擴充 Google SecOps 內的資料,以利進行分析。剖析器也會根據欄位值執行資料類型轉換、錯誤處理和條件式邏輯,確保 UDM 呈現方式準確且完整。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體。
  • Sysdig Secure 的特殊存取權。

為 Webhook 資訊提供建立 API 金鑰

  1. 前往 Google Cloud 控制台 > 憑證

    前往「憑證」

  2. 按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)

  3. 將 API 金鑰存取權限制在 Google Security Operations API

選項 1

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 「SIEM 設定」>「動態消息」
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態饋給」,設定動態饋給

如要設定動態消息,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態消息」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Sysdig Logs」
  5. 選取「Webhook」做為「來源類型」
  6. 選取「Sysdig」做為「記錄類型」
  7. 點選「下一步」
  8. 選用:指定下列輸入參數的值:

    • 分割分隔符號:用於分隔記錄行的分隔符號,例如 \n
  9. 點選「下一步」

  10. 在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」

  11. 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。

  12. 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。

  13. 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。

  14. 按一下 [完成]

從內容中心設定動態饋給

為下列欄位指定值:

  • 分割分隔符號:用於分隔記錄行的分隔符號,例如 \n

進階選項

  • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
  • 來源類型:將記錄收集到 Google SecOps 的方法。
  • 資產命名空間:與動態饋給相關聯的命名空間。
  • 擷取標籤:套用至這個動態饋給所有事件的標籤。

  • 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。

  • 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。

  • 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。

指定端點網址

  1. 在用戶端應用程式中,指定 webhook 動態饋給中提供的 HTTPS 端點網址。
  2. 如要啟用驗證,請在自訂標頭中指定 API 金鑰和私密金鑰,格式如下:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建議:請將 API 金鑰指定為標頭,而非在網址中指定。

  3. 如果 Webhook 用戶端不支援自訂標頭,您可以使用查詢參數指定 API 金鑰和密鑰,格式如下:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    更改下列內容:

    • ENDPOINT_URL:動態消息端點網址。
    • API_KEY:用於向 Google SecOps 進行驗證的 API 金鑰。
    • SECRET:您產生的密鑰,用於驗證動態饋給。

在 Sysdig 中設定 Webhook

  1. 以管理員權限登入 Sysdig Secure。
  2. 依序前往「設定檔」>「設定」>「事件轉送」
  3. 按一下「+新增整合」,然後從下拉式選單中選取「Webhook」
  4. 指定下列輸入參數的值:

    • 整合名稱:為 Webhook 提供描述性名稱 (例如「Google SecOps Webhook」)。
    • 端點:輸入 Webhook <ENDPOINT_URL>,然後依序輸入 <API_KEY<SECRET>
    • 要傳送的資料:從下拉式選單中選取要轉送的 Sysdig 資料類型。

    • 測試整合功能,然後切換「已啟用」來啟用。

    • 按一下 [儲存]

選項 2

直接將資料轉送至 Google SecOps

  1. 使用管理員憑證登入 Sysdig Secure。
  2. 依序前往「設定」>「事件轉送」
  3. 按一下「+ 新增整合」,然後從下拉式選單中選取「Google Chronicle」
  4. 指定下列輸入參數的值:
    • 整合名稱:為整合項目提供描述性名稱 (例如「Google SecOps Integration」)。
    • 客戶 ID:與帳戶相關聯的 Google 客戶 ID。 Google Cloud (在 Google SecOps 中,依序點選「設定」>「設定檔」即可找到)。
    • 命名空間:選用:用做標記,識別適合建立索引和擴充的資料網域。
    • JSON 憑證:上傳 Google SecOps JSON 憑證。
    • 地區:選取地區,例如美國、歐洲或亞洲。
    • 要傳送的資料:從下拉式選單中選取要轉送的 Sysdig 資料類型。
    • 測試整合功能,然後切換「已啟用」來啟用。
    • 按一下 [儲存]

UDM 對應表

記錄欄位 UDM 對應 邏輯
agentId read_only_udm.metadata.product_deployment_id 原始記錄中的 agentId 值會直接對應至這個 UDM 欄位。
category read_only_udm.security_result.category_details 原始記錄中的 category 值會直接對應至這個 UDM 欄位。
content.fields.container.id read_only_udm.target.asset.asset_id 原始記錄中的 content.fields.container.id 值會加上「container_id:」,然後對應至這個 UDM 欄位。如果 containerId 為空,則使用這個值。
content.fields.container.image.repository read_only_udm.target.file.full_path 原始記錄中的 content.fields.container.image.repository 值會直接對應至這個 UDM 欄位。
content.fields.container.image.tag read_only_udm.metadata.ingestion_labels.value,其中「key」是 tag 原始記錄中的 content.fields.container.image.tag 值會直接對應至這個 UDM 欄位。
content.fields.evt.res read_only_udm.metadata.ingestion_labels.value,其中「key」是 evt_res 原始記錄中的 content.fields.evt.res 值會直接對應至這個 UDM 欄位。
content.fields.evt.type read_only_udm.metadata.event_type 原始記錄中的 content.fields.evt.type 值會直接對應至這個 UDM 欄位。
content.fields.falco.rule read_only_udm.security_result.rule_name 原始記錄中的 content.fields.falco.rule 值會直接對應至這個 UDM 欄位。如果 content.ruleName 為空,則使用這個值。
content.fields.group.gid read_only_udm.target.group.product_object_id 原始記錄中的 content.fields.group.gid 值會直接對應至這個 UDM 欄位。
content.fields.group.name read_only_udm.target.group.group_display_name 原始記錄中的 content.fields.group.name 值會直接對應至這個 UDM 欄位。
content.fields.proc.cmdline read_only_udm.target.process.command_line 原始記錄中的 content.fields.proc.cmdline 值會直接對應至這個 UDM 欄位。
content.fields.proc.pcmdline read_only_udm.target.process.parent_process.command_line 原始記錄中的 content.fields.proc.pcmdline 值會直接對應至這個 UDM 欄位。
content.fields.proc.pid read_only_udm.target.process.pid 原始記錄中的 content.fields.proc.pid 值會直接對應至這個 UDM 欄位。
content.fields.proc.ppid read_only_udm.target.process.parent_process.pid 原始記錄中的 content.fields.proc.ppid 值會直接對應至這個 UDM 欄位。
content.fields.proc.sid read_only_udm.metadata.ingestion_labels.value,其中「key」是 sid 原始記錄中的 content.fields.proc.sid 值會直接對應至這個 UDM 欄位。
content.fields.user.loginname read_only_udm.principal.user.user_display_name 原始記錄中的 content.fields.user.loginname 值會直接對應至這個 UDM 欄位。
content.fields.user.uid read_only_udm.principal.user.userid 原始記錄中的 content.fields.user.uid 值會直接對應至這個 UDM 欄位。
content.output read_only_udm.additional.fields.value.string_value,其中「key」是 content_output 原始記錄中的 content.output 值會直接對應至這個 UDM 欄位。
content.policyId read_only_udm.security_result.rule_id 原始記錄中的 content.policyId 值會直接對應至這個 UDM 欄位。
content.policyOrigin read_only_udm.additional.fields.value.string_value,其中「key」是 content_policyOrigin 原始記錄中的 content.policyOrigin 值會直接對應至這個 UDM 欄位。
content.policyVersion read_only_udm.additional.fields.value.string_value,其中「key」是 content_policyVersion 原始記錄中的 content.policyVersion 值會直接對應至這個 UDM 欄位。
content.ruleName read_only_udm.security_result.rule_name 原始記錄中的 content.ruleName 值會直接對應至這個 UDM 欄位。
content.ruleTags read_only_udm.security_result.rule_labels 原始記錄中的 content.ruleTags 陣列值會對應至這個 UDM 欄位,而鍵則會動態產生為「ruletag_index」。
content.ruleType read_only_udm.additional.fields.value.string_value,其中「key」是 content_ruleType 原始記錄中的 content.ruleType 值會直接對應至這個 UDM 欄位。
containerId read_only_udm.target.asset.asset_id 原始記錄中的 containerId 值會加上「container_id:」,然後對應至這個 UDM 欄位。
description read_only_udm.metadata.description 原始記錄中的 description 值會直接對應至這個 UDM 欄位。
id read_only_udm.metadata.product_log_id 原始記錄中的 id 值會直接對應至這個 UDM 欄位。
labels.container.label.io.kubernetes.container.name read_only_udm.additional.fields.value.string_value,其中「key」是 container_name 原始記錄中的 labels.container.label.io.kubernetes.container.name 值會直接對應至這個 UDM 欄位。
labels.container.label.io.kubernetes.pod.name read_only_udm.additional.fields.value.string_value,其中「key」是 pod_name 原始記錄中的 labels.container.label.io.kubernetes.pod.name 值會直接對應至這個 UDM 欄位。如果 labels.kubernetes.pod.name 為空,則使用這個值。
labels.container.label.io.kubernetes.pod.namespace read_only_udm.principal.namespace 原始記錄中的 labels.container.label.io.kubernetes.pod.namespace 值會直接對應至這個 UDM 欄位。如果 labels.kubernetes.namespace.name 為空,則使用這個值。
labels.aws.instanceId read_only_udm.target.resource.product_object_id 原始記錄中的 labels.aws.instanceId 值會直接對應至這個 UDM 欄位。
labels.aws.region read_only_udm.target.resource.attribute.cloud.availability_zone 原始記錄中的 labels.aws.region 值會直接對應至這個 UDM 欄位。
labels.host.hostName read_only_udm.principal.ipread_only_udm.principal.hostname 如果值包含「ip」,系統會將其剖析為 IP 位址,並對應至 principal.ip。否則會對應至 principal.hostname
labels.host.mac read_only_udm.principal.mac 原始記錄中的 labels.host.mac 值會直接對應至這個 UDM 欄位。如果 machineId 為空,則使用這個值。
labels.kubernetes.cluster.name read_only_udm.additional.fields.value.string_value,其中「key」是 kubernetes_cluster_name 原始記錄中的 labels.kubernetes.cluster.name 值會直接對應至這個 UDM 欄位。
labels.kubernetes.deployment.name read_only_udm.additional.fields.value.string_value,其中「key」是 kubernetes_deployment_name 原始記錄中的 labels.kubernetes.deployment.name 值會直接對應至這個 UDM 欄位。
labels.kubernetes.namespace.name read_only_udm.principal.namespace 原始記錄中的 labels.kubernetes.namespace.name 值會直接對應至這個 UDM 欄位。
labels.kubernetes.node.name read_only_udm.additional.fields.value.string_value,其中「key」是 kubernetes_node_name 原始記錄中的 labels.kubernetes.node.name 值會直接對應至這個 UDM 欄位。
labels.kubernetes.pod.name read_only_udm.additional.fields.value.string_value,其中「key」是 pod_name 原始記錄中的 labels.kubernetes.pod.name 值會直接對應至這個 UDM 欄位。
labels.kubernetes.service.name read_only_udm.additional.fields.value.string_value,其中「key」是 kubernetes_service_name 原始記錄中的 labels.kubernetes.service.name 值會直接對應至這個 UDM 欄位。
machineId read_only_udm.principal.mac 原始記錄中的 machineId 值會直接對應至這個 UDM 欄位。
name read_only_udm.security_result.summary 原始記錄中的 name 值會直接對應至這個 UDM 欄位。
severity read_only_udm.security_result.severity 系統會根據這些範圍,將原始記錄中的 severity 值對應至字串值:<4 = HIGH、>3 且 <6 = MEDIUM、6 = LOW、7 = INFORMATIONAL。
source read_only_udm.security_result.description 原始記錄中的 source 值會直接對應至這個 UDM 欄位。
timestampRFC3339Nano read_only_udm.metadata.event_timestamp 系統會將原始記錄中的 timestampRFC3339Nano 值剖析為時間戳記,並對應至這個 UDM 欄位。
type read_only_udm.metadata.product_event_type 原始記錄中的 type 值會直接對應至這個 UDM 欄位。
(剖析器邏輯) read_only_udm.metadata.product_name 硬式編碼為「SYSDIG」。
(剖析器邏輯) read_only_udm.metadata.vendor_name 硬式編碼為「SYSDIG」。
(剖析器邏輯) read_only_udm.metadata.event_type 預設為「PROCESS_UNCATEGORIZED」,如果 labels.host.hostName 為空,則為「GENERIC_EVENT」。
(剖析器邏輯) read_only_udm.metadata.log_type 硬式編碼為「SYSDIG」。
(剖析器邏輯) read_only_udm.target.resource.resource_type 如果 labels.aws.instanceId 存在,請設為「CLOUD_PROJECT」。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。