收集 Palo Alto Prisma Cloud 警報記錄

支援的國家/地區:

這個剖析器會從 Palo Alto Prisma Cloud 擷取 JSON 格式的快訊記錄,並轉換為 UDM。剖析器會執行資料正規化、類型轉換和條件邏輯,以填入適當的 UDM 欄位。此外,這項功能還會處理記錄資料中的巢狀 JSON 結構和陣列,以擷取相關資訊。本文中的資訊適用於具有 PAN_PRISMA_CA 攝取標籤的剖析器。

事前準備

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

  • Google SecOps 執行個體。
  • Palo Alto Prisma Cloud 的特殊權限。

設定動態饋給

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

  1. 依序前往「SIEM 設定」>「動態消息」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態消息名稱」欄位中,輸入動態消息的名稱,例如「PAN Prisma Cloud Alerts」
  5. 選取「Webhook」做為「來源類型」
  6. 選取「Palo Alto Prisma Cloud 快訊有效負載」做為「記錄類型」
  7. 點選「下一步」
  8. 選用:指定下列輸入參數的值:
    • 分割分隔符號:用於分隔記錄行的分隔符號,例如 \n
  9. 點選「下一步」
  10. 在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」
  11. 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
  12. 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
  13. 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
  14. 按一下 [完成]

為 Webhook 動態饋給建立 API 金鑰

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

    前往「憑證」

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

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

指定端點網址

  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 Security Operations 進行驗證的 API 金鑰。
    • SECRET:您產生的密鑰,用於驗證動態消息。

將 Palo Alto Prisma Cloud 網頁掛鉤設定為 Google SecOps

  1. 登入 Palo Alto Prisma Cloud。
  2. 依序選取「設定」>「整合與通知」 ((and_then))「整合」
  3. 按一下「新增整合」
  4. 選取「Webhook」
  5. 指定下列輸入參數的值:
    • 整合名稱:提供不重複的描述性名稱 (例如「Google SecOps」)
    • Webhook 網址:輸入 ENDPOINT_URL。
    • 選用:提供整合功能的「Description」(說明)
    • 選用:啟用「自訂酬載」> 按一下「下一步」,即可檢查或修改自訂酬載。
  6. 點選「下一步」
  7. 測試儲存整合

設定 Palo Alto Prisma Cloud 警報

  1. 在 Palo Alto Prisma Cloud 控制台中,依序前往「Alerts」(快訊) >「View Alert Rules」(查看快訊規則)
  2. 選取要編輯的現有快訊規則。
  3. 選用:為「Cloud Infrastructure」建立新快訊。
  4. 選用:為「Cloud Workload」(雲端工作負載) 建立新快訊
  5. 前往「設定通知」
  6. 選取「Webhook」
  7. 選用:選取要傳送快訊通知的管道,這些快訊是由快訊規則觸發。
  8. 點選「下一步」
  9. 按一下 [儲存]

UDM 對應表

本節說明剖析器如何將原始記錄欄位對應至 Unified Data Model (UDM) 欄位。

記錄結構 1:含有記錄陣列的記錄 (未匯總的快訊)

原始記錄欄位 UDM 欄位 附註
alarmType security_result.detection_fields key = "alarmType"
app principal.application
body additional.fields key = "body"
body (帳戶 ID) target.user.userid 從主體字串「(帳戶 ID:xxxxx)」中擷取
errorMessage metadata.description
errorType security_result.detection_fields key = "errorType"
notificationRuleName security_result.rule_name
policyDescription security_result.detection_fields
policyRecommendation security_result.detection_fields
policytype security_result.detection_fields
record._id additional.fields key = "ID {index}"
record.account.cloudType principal.cloud.environment 如果為「gcp」,則對應至列舉
record.accountID target.resource.attribute.labels key = "Account ID {index}"
record.accountId target.cloud.project.id
record.accountName target.resource.attribute.labels key = "accountName"
record.accountOwners principal.user.email_addresses 已合併陣列元素
record.acknowledged security_result.detection_fields key = "Acknowledged {index}"
record.additionalInfo.saveSearchId security_result.detection_fields key = "saveSearchId"
record.alertId security_result.detection_fields key = "alert id"
record.alertRuleId security_result.rule_id
record.alertRuleName security_result.rule_name 可能會覆寫 record.audits.ruleName
record.alertStatus security_result.detection_fields key = "alert status"
record.alertTs security_result.detection_fields key = "alertTs"
record.audits._id additional.fields key = "Audit ID {audit_index}"
record.audits.attackTechniques additional.fields key = "attackTechniques_{audit_index}"
record.audits.attackType security_result.threat_name 在 record.audits 迴圈內
record.audits.command principal.process.command_line 在 record.audits 迴圈內
record.audits.container additional.fields key = "Container {audit_index}"
record.audits.count additional.fields key = "Count {audit_index}"
record.audits.effect security_result.action_details 在 record.audits 迴圈內
record.audits.msg metadata.description 在 record.audits 迴圈內
record.audits.os principal.platform_version 在 record.audits 迴圈內
record.audits.pid principal.process.pid 在 record.audits 迴圈內
record.audits.processPath principal.process.file.full_path 在 record.audits 迴圈內
record.audits.ruleName security_result.rule_name 在 record.audits 迴圈內
record.audits.severity security_result.severity 在 record.audits 迴圈內
record.audits.type metadata.product_event_type 在 record.audits 迴圈內
record.audits.user principal.user.userid 在 record.audits 迴圈內
record.callbackUrl metadata.url_back_to_product
record.category security_result.category_details
record.cloudType principal.cloud.environment key = "Policy Labels"
record.cluster principal.resource.attribute.labels key = "Cluster {index}"
record.collections additional.fields key = "Collections {index}"
record.complianceMetadata.complianceId security_result.detection_fields
record.complianceMetadata.customAssigned security_result.detection_fields
record.complianceMetadata.policyId security_result.detection_fields
record.complianceMetadata.requirementId security_result.rule_id
record.complianceMetadata.requirementName security_result.summary 子欄位的各種鍵
record.complianceMetadata.requirementViewOrder security_result.detection_fields
record.complianceMetadata.sectionDescription security_result.detection_fields
record.complianceMetadata.sectionId security_result.detection_fields
record.complianceMetadata.sectionLabel security_result.detection_fields
record.complianceMetadata.sectionViewOrder security_result.detection_fields
record.complianceMetadata.standardDescription security_result.detection_fields
record.complianceMetadata.standardName security_result.rule_name
record.complianceMetadata.systemDefault security_result.detection_fields
record.containerID principal.asset.asset_id 前置字串「containerid:」
record.containerName principal.applicationprincipal.resource.name
record.firstSeen principal.asset.first_seen_time
record.fqdn principal.hostnameprincipal.asset.hostname
record.hasFinding security_result.detection_fields key = "hasFinding"
record.hostname principal.hostnameprincipal.asset.hostname
record.imageID principal.resource.attribute.labels key = "Image ID {index}"
record.imageName principal.resource.attribute.labels key = "Image Name {index}"
record.lastSeen principal.asset.last_discover_time
record.message1 security_result.description
record.namespace principal.namespace
record.policy.description security_result.detection_fields key = "policyDescription" (Fallback)
record.policy.id security_result.detection_fields key = "policy id"
record.policy.Labels additional.fields 如果為「gcp」,則對應至列舉
record.policy.name security_result.description 可能會覆寫 record.message1
record.policy.policyType security_result.detection_fields key = "policy type" (Fallback)
record.policy.recommendation security_result.detection_fields key = "policy recommendation" (Fallback)
record.policy.severity security_result.severity
record.policyDescription security_result.detection_fields key = "policyDescription"
record.policyId security_result.detection_fields key = "policyId"
record.policyLabels additional.fields
record.policyName security_result.description 可能會覆寫 record.policy.name
record.policyRecommendation security_result.detection_fields key = "policy recommendation"
record.policyType security_result.detection_fields key = "policy type"
record.profileID additional.fields key = "Profile ID {index}"
record.provider target.resource.attribute_labels key = "Provider %{index}"
record.reason security_result.summary
record.region principal.location.country_or_region
record.resource principal.resource.attribute.labels key = "resource {key}" (適用於資源中的其他金鑰)
record.resource.account principal.resource.attribute.labels
record.resource.account target.resource.product_object_id
record.resource.accountId principal.resource.attribute.labels
record.resource.accountId target.cloud.project.id 備用
record.resource.data.document.Statement additional.fields key = "Statement{key}{stmt_index}"
record.resource.data.document.Version additional.fields key = "Version"
record.resource.data.entities.policyRoles additional.fields key = "policyRole{key}{role_index}"
record.resource.data.isAttached security_result.detection_fields key = "isAttached"
record.resource.data.isDefaultVersion security_result.detection_fields key = "isDefaultVersion"
record.resource.data.isPermissionBoundarySet security_result.detection_fields key = "isPermissionBoundarySet"
record.resource.data.secretVersionsToStages.terraform-20260122172341570100000002 principal.resource.attribute.labels 陣列中每個項目的鍵 =「value: {index_1}」
record.resource.data.tags additional.fields key = "{tag_key} {index} {tag_index}"
record.resource.id principal.resource.attribute.labels
record.resource.name principal.resource.attribute.labels
record.resource.region principal.resource.attribute.labels
record.resource.regionId principal.resource.attribute.labels
record.resource.resourceType principal.resource.attribute.labels
record.resource.resourceType principal.resource.resource_subtype 備用
record.resource.url principal.resource.attribute.labels
record.resource.url principal.url if key = "url"
record.resourceCloudService principal.resource.attribute.labels key = "resource cloud service"
record.resourceId principal.resource.product_object_id
record.resourceName principal.resource.name 可能會覆寫 record.containerName
record.resourceRegion principal.location.country_or_region 可能會覆寫 record.region
record.resourceRegionId principal.cloud.availability_zone
record.resourceType principal.resource.resource_subtype
record.sender metadata.description 可能會覆寫 record.audits.msg
record.sentTs metadata.event_timestamp
record.serialNum additional.fields key = "Serial Number {index}"
record.severity security_result.severity
record.shouldCollect additional.fields key = "Should Collect {index}"
record.source principal.application
record.tags principal.resource.attribute.labels key = "{tag_key} {index} {tag_index}"
record.time metadata.event_timestamp
record.type principal.resource.type
severity security_result.severity LOW、MEDIUM、HIGH、UNKNOWN
title additional.fields key = "title"
alarmType event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
errorType event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
isPermissionBoundarySet event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
isDefaultVersion event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
isAttached event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
emailValue principal.user.email_addresses 從變更記錄對應
account_id target.user.userid 從變更記錄對應
record.region principal.location.country_or_region 從變更記錄對應
record.policy.name security_result.description 從變更記錄對應
record.account.cloudType principal.cloud.environment 從變更記錄對應
record.policy.policyType", "record.policy.recommendation", and "record.policy.description security_result.detection_fields 從變更記錄對應
record.policy.severity security_result.severity 從變更記錄對應
record.policy.labels additional.fields 從變更記錄對應
callbackUrl metadata.url_back_to_product 從變更記錄對應
errorMessage metadata.description 從變更記錄對應
notificationRuleName security_result.rule_name 從變更記錄對應
body", "title additional.fields 從變更記錄對應
alarmType principal.cloud.environment 從變更記錄對應
severity security_result.severity 從變更記錄對應
aggregatedAlert.vulnerabilities.imageID extensions.vulns.vulnerabilities.about.file.sha256 從變更記錄對應
aggregatedAlert.vulnerabilities.imageName extensions.vulns.vulnerabilities.about.file.path 從變更記錄對應
aggregatedAlert.vulnerabilities.distribution extensions.vulns.vulnerabilities.name 從變更記錄對應
aggregatedAlert.vulnerabilities.newVulnerabilities.severity extensions.vulns.vulnerabilities.severity 從變更記錄對應
aggregatedAlert.vulnerabilities.newVulnerabilities.cve extensions.vulns.vulnerabilities.cve_id 從變更記錄對應
aggregatedAlert.vulnerabilities.newVulnerabilities.link extensions.vulns.vulnerabilities.about.url 從變更記錄對應
aggregatedAlert.vulnerabilities.newVulnerabilities.status extensions.vulns.vulnerabilities.description 從變更記錄對應
aggregatedAlert.vulnerabilities.newVulnerabilities.packages", "aggregatedAlert.vulnerabilities.newVulnerabilities.packageVersion", and "aggregatedAlert.vulnerabilities.newVulnerabilities.sourcePackage target.resource.attribute.labels 從變更記錄對應
policyLabels additional.fields 從變更記錄對應
policyType security_result.detection_fields 從變更記錄對應
resource.unifiedAssetId principal.asset.asset_id 從變更記錄對應
policyName security_result.description 從變更記錄對應
resource.resourceConfigJsonAvailable", "resource.resourceDetailsAvailable", and "policy.deleted additional.fields 從變更記錄對應
policy.recommendation", "policy.policyType", and "policy.description security_result.detection_fields 從變更記錄對應
resource.url principal.url 從變更記錄對應
reason security_result.summary 從變更記錄對應
resource.region principal.location.state 從變更記錄對應
resource.regionId principal.location.country_or_region 從變更記錄對應
resource.resourceType target.resource.resource_subtype 從變更記錄對應
resource.accountId target.resource.product_object_id 從變更記錄對應
resourceId principal.resource.product_object_id 從變更記錄對應
accountId target.resource.product_object_id 從變更記錄對應
alertRuleName security_result.rule_name 從變更記錄對應
accountName target.resource.name 從變更記錄對應
hasFinding security_result.detection_fields 從變更記錄對應
resourceRegionId principal.cloud.availability_zone 從變更記錄對應
source principal.application 從變更記錄對應
alertRuleId security_result.rule_id 從變更記錄對應
alertId security_result.detection_fields 從變更記錄對應
resourceName principal.resource.name 從變更記錄對應
resourceRegion principal.location.country_or_region 從變更記錄對應
policyDescription security_result.detection_fields 從變更記錄對應
policyRecommendation security_result.detection_fields 從變更記錄對應
resourceCloudService principal.resource.attribute.labels 從變更記錄對應
alertTs security_result.detection_fields 從變更記錄對應
firstSeen principal.asset.first_seen_time 從變更記錄對應
lastSeen principal.asset.last_discover_time 從變更記錄對應
alertStatus security_result.detection_fields 從變更記錄對應

記錄結構 2:含有 records[].aggregatedAlerts 陣列的記錄

原始記錄欄位 UDM 欄位 附註
aggregatedAlert.accountIDs target.resource.attribute.labels key = "AccountID {alert_index} {acct_index}"
aggregatedAlert.appID security_result.detection_fields key = "appID"
aggregatedAlert.category security_result.category_details 已獲得憑證
aggregatedAlert.clusters target.resource.attribute.labels key = "Cluster {alert_index} {clus_index}"
aggregatedAlert.collections target.resource.attribute.labels key = "Collection {alert_index} {coll_index}"
aggregatedAlert.command principal.process.command_linesecurity_result.detection_fields detection_fields key = "Command"
aggregatedAlert.complianceIssues.category security_result.category_details 在 complianceIssues 迴圈內
aggregatedAlert.complianceIssues.description security_result.descriptionsecurity_result.detection_fields detection_fields key = "Description {alert_index} {ci_index}"
aggregatedAlert.complianceIssues.severity security_result.severitysecurity_result.detection_fields detection_fields key = "Severity {alert_index} {ci_index}"
aggregatedAlert.complianceIssues.title security_result.action_detailssecurity_result.detection_fields detection_fields key = "Title {alert_index} {ci_index}"
aggregatedAlert.container target.resource.name
aggregatedAlert.containerID target.resource.product_object_id
aggregatedAlert.forensics principal.url
aggregatedAlert.fqdn principal.domain.name
aggregatedAlert.host principal.hostnameprincipal.asset.hostname
aggregatedAlert.image target.resource.attribute.labels key = "image"
aggregatedAlert.imageID target.resource.attribute.labels key = "imageID"
aggregatedAlert.incidentTime target.resource.attribute.labels key = "incidentTime"
aggregatedAlert.labels.controller-uid target.user.product_object_id
aggregatedAlert.labels.io.kubernetes.pod.name target.hostname
aggregatedAlert.message1 security_result.description
aggregatedAlert.namespaces target.resource.attribute.labels key = "Namespace {alert_index} {ns_index}"
aggregatedAlert.osDistro security_result.detection_fields key = "osDistro"
aggregatedAlert.osRelease security_result.detection_fields key = "osRelease"
aggregatedAlert.provider security_result.detection_fields key = "provider"
aggregatedAlert.region target.cloud.availability_zone
aggregatedAlert.rule security_result.rule_name
aggregatedAlert.runtime security_result.detection_fields key = "runtime"
aggregatedAlert.startupProcess principal.process.parent_process.command_line
aggregatedAlert.tags security_result.detection_fields key = "tags"
aggregatedAlert.time metadata.event_timestamp
aggregatedAlert.type security_result.category_details
aggregatedAlert.user principal.user.userid
aggregatedAlert.vulnerabilities.distribution extensions.vulns.vulnerabilities.name
aggregatedAlert.vulnerabilities.imageID extensions.vulns.vulnerabilities.about.file.sha256 擷取 sha256
aggregatedAlert.vulnerabilities.imageName extensions.vulns.vulnerabilities.about.file.full_path
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.cve extensions.vulns.vulnerabilities.cve_id
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.link extensions.vulns.vulnerabilities.about.url
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.packages target.resource.attribute.labels key = "Packages {vln_idx1}-{vln_idx2}"
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.packageVersion target.resource.attribute.labels key = "PackageVersion {vln_idx1}-{vln_idx2}"
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.severity extensions.vulns.vulnerabilities.severity
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.sourcePackage target.resource.attribute.labels key = "SourcePackage {vln_idx1}-{vln_idx2}"
aggregatedAlert.vulnerabilities.newVulnerabilities.vulnerabilities.status extensions.vulns.vulnerabilities.description 前置字串「status - 」

記錄結構 3:單一 JSON 物件記錄 (備援)

原始記錄欄位 UDM 欄位 附註
"CASB" (靜態值) metadata.product_name
"Palo Alto Networks" (靜態值) metadata.vendor_name
accountId target.resource.product_object_idtarget.resource.id
actionParameters.clientID principal.group.product_object_id 根據使用者要求
complianceMetadata security_result.detection_fields 不一,詳情請參閱設定
createdAt metadata.event_timestamp 根據使用者要求
data.allocationId principal.resource.product_object_id
data.publicIp principal.ip
deleted additional.fields key = "deleted"
description metadata.description
email_add principal.user.email_addresses
entitySnapshot.externalId principal.group.product_object_id 根據使用者要求
entitySnapshot.tags.io.cri-containerd.kind target.resource.attribute.labels key = "Containerd Kind"
entitySnapshot.tags.io.kubernetes.container.name target.resource.attribute.labels key = "Container Name"
entitySnapshot.tags.io.kubernetes.pod.name target.resource.attribute.labels key = "Pod Name"
entitySnapshot.tags.io.kubernetes.pod.namespace target.resource.attribute.labels key = "Pod Namespace"
entitySnapshot.tags.io.kubernetes.pod.uid target.resource.attribute.labels key = "Pod Id"
entitySnapshot.tags.maintainer target.resource.attribute.labels key = "Maintainer"
policy Type security_result.detection_fields
policy.complianceMetadata.complianceId security_result.detection_fields
policy.complianceMetadata.customAssigned security_result.detection_fields
policy.complianceMetadata.policyId security_result.detection_fields
policy.complianceMetadata.requirementId security_result.rule_id
policy.complianceMetadata.requirementName security_result.summary 子欄位的各種鍵
policy.complianceMetadata.requirementViewOrder security_result.detection_fields
policy.complianceMetadata.sectionDescription security_result.detection_fields
policy.complianceMetadata.sectionId security_result.detection_fields
policy.complianceMetadata.sectionLabel security_result.detection_fields
policy.complianceMetadata.standardDescription security_result.detection_fields
policy.complianceMetadata.standardName security_result.rule_name
policy.complianceMetadata.systemDefault security_result.detection_fields
policy.deleted additional.fields key = "deleted" (Fallback)
policy.description security_result.detection_fields key = "policyDescription"
policy.name security_result.description
policy.policyType security_result.detection_fields key = "Policy Type" (Fallback)
policy.recommendation security_result.detection_fields key = "Recommendation" (Fallback)
policyId security_result.detection_fields key = "Policy Id"
policyType security_result.detection_fields key = "Policy Type"
reason security_result.summary
recommendation security_result.detection_fields key = "Recommendation"
region principal.location.state
regionId principal.location.country_or_region
resource.accountId target.resource.product_object_idtarget.resource.id 備用
resource.cloudType principal.cloud.environment 如果為「gcp」,則對應至列舉
resource.region principal.location.state 備用
resource.regionId principal.location.country_or_region 備用
resource.resourceConfigJsonAvailable additional.fields key = "resourceConfigJsonAvailable" (Fallback)
resource.resourceDetailsAvailable additional.fields key = "resourceDetailsAvailable" (Fallback)
resource.resourceType target.resource.resource_subtype 備用
resource.unifiedAssetId principal.asset.asset_id 備用
resource.url principal.url
resourceConfigJsonAvailable additional.fields key = "resourceConfigJsonAvailable"
resourceDetailsAvailable additional.fields key = "resourceDetailsAvailable"
resourceType target.resource.resource_subtype
severity security_result.severity
systemDefault additional.fields key = "systemDefault"
timestamp metadata.event_timestamp 根據使用者要求
unifiedAssetId principal.asset.asset_id 前置字串「ASSETID:」

事件類型對應

  • 系統會根據下列邏輯設定 metadata.event_type 欄位:

    if [has_user] == "true" and ([has_principal] == "true" or [has_target] == "true") {
        metadata.event_type = USER_UNCATEGORIZED
    if [aggregatedAlert][host] != "" and [target_present] == "true" and [principal_user_present] != "true" {
        metadata.event_type = USER_RESOURCE_ACCESS
        } else if [principal_user_present] == "true" {
            metadata.event_type = USER_UNCATEGORIZED
        } else if [principal_present] == "true" and [aggregatedAlert][host] != "" {
            metadata.event_type = STATUS_UPDATE
        } else {
            metadata.event_type = GENERIC_EVENT
        }
    }
    

變更記錄

查看這個剖析器的變更記錄

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