Palo Alto Networks Prisma Cloud

本文提供指南,說明如何整合 Palo Alto Networks Prisma Cloud 與 Google Security Operations 的 SOAR 模組。在 Google SecOps 平台中,Palo Alto Networks Prisma Cloud 的整合功能稱為「Palo Alto Prisma Cloud」

整合版本:3.0

整合 Prisma Cloud 與 Google SecOps

整合作業需要下列參數:

參數 說明
API Root 必要

Prisma Cloud 執行個體的 API 根目錄。

預設值為 https://api3.prismacloud.io

Access Key ID 必要

Prisma Cloud 帳戶的存取金鑰 ID。

Secret Access Key 必要

Prisma Cloud 帳戶的存取密鑰。

Verify SSL 必要

如果選取這個選項,Google SecOps 會驗證連線至 Prisma Cloud 伺服器的 SSL 憑證是否有效。

(此為預設選項)。

如有需要,您可以在稍後階段進行變更。設定 Prisma Cloud 執行個體後,您可以在劇本中使用該執行個體。如要瞭解如何設定及支援多個 Prisma Cloud 執行個體,請參閱「支援多個執行個體」。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

動作

以下列出 Prisma Cloud 整合功能可執行的動作:

充實資產

使用 Prisma Cloud 充實資源資訊。

這項操作不會在 Google SecOps 實體上執行。如要進一步瞭解支援的實體,請參閱「我們支援哪些實體類型」。

動作輸入內容

這項動作需要下列參數:

參數 說明
Asset Identifiers 必要

以半形逗號分隔的資產 ID 清單,用於擷取詳細資料。

資產 ID 或資產受限資源名稱 (RRN)。

動作輸出內容

這個動作會提供下列輸出內容:

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

以下範例說明使用「Enrich Assets」動作時收到的 JSON 結果輸出內容:

{
    "id":"2dcffa4a51d892bcf48ed80652e75650",
    "externalAssetId":"5115585594921894848",
    "cloudType":"gcp",
    "createdTs":1707216238063,
    "insertTs":1707216238063,
    "dynamicData":null,
    "data":{
        "id":"5115585594921894848",
        "kind":"compute#instance",
        "name":"example-name-rgmn",
        "tags":{
            "items":[
                "example-name"
            ],
            "fingerprint":"ycXN3kijHZc="
        },
        "zone":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/us-central1-a",
        "disks":[
            {
                "boot":true,
                "kind":"compute#attachedDisk",
                "mode":"READ_WRITE",
                "type":"PERSISTENT",
                "index":0,
                "source":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/us-central1-a/disks/example-name-rgmn",
                "licenses":[
                    "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/licenses/LICENSE_ID"
                ],
                "interface":"SCSI",
                "autoDelete":true,
                "deviceName":"persistent-disk-0",
                "diskSizeGb":"30",
                "architecture":"X86_64",
                "guestOsFeatures":[
                    {
                        "type":"GVNIC"
                    },
                    {
                        "type":"SEV_CAPABLE"
                    },
                    {
                        "type":"UEFI_COMPATIBLE"
                    },
                    {
                        "type":"VIRTIO_SCSI_MULTIQUEUE"
                    }
                ],
                "shieldedInstanceInitialState":{
                    "dbxs":[
                    ]
                }
            }
        ],
        "labels":{
            "goog-ccm":"true",
            "goog-solutions-console-solution-id":"java-application",
            "goog-solutions-console-deployment-name":"java-application"
        },
        "status":"RUNNING",
        "metadata":{
            "kind":"compute#metadata",
            "items":[
                {
                    "key":"created-by",
                    "value":"projects/PROJECT_ID/regions/us-central1/instanceGroupManagers/example-name"
                },
                {
                    "key":"instance-template",
                    "value":"projects/PROJECT_ID/global/instanceTemplates/xwiki-us-central1-a-temp"
                },
                {
                    "key":"startup-script",
                    "value":"#! /bin/bash\n\nsed -i \"s/$(echo JGROUP_BUCKET | sed -e 's/\\([[\/.*]\\|\\]\\)/\\\\&/g')/$(echo xwiki-jgroup-PROJECT_ID-gce | sed -e 's/[\/&]/\\\\&/g')/g\" /usr/lib/xwiki/WEB-INF/observation/remote/jgroups/tcp.xml\nsed -i \"s/$(echo ACCESS_KEY | sed -e 's/\\([[\/.*]\\|\\]\\)/\\\\&/g')/$(echo GOOG1E | sed -e 's/[\/&]/\\\\&/g')/g\" /usr/lib/xwiki/WEB-INF/observation/remote/jgroups/tcp.xml\nsed -i \"s/$(echo SECRET_KEY | sed -e 's/\\([[\/.*]\\|\\]\\)/\\\\&/g')/$(echo IvgTtIJJq+68sI9XISo2qMXGyONmFDf7U9QuegN/ | sed -e 's/[\/&]/\\\\&/g')/g\" /usr/lib/xwiki/WEB-INF/observation/remote/jgroups/tcp.xml\n\nDB_PASS=\"$(gcloud secrets versions access --secret xwiki-db-password latest --project PROJECT_NAME)\"\n\nbash /home/xwiki_startup.sh \"203.0.113.2\" \"xwiki\" \"${DB_PASS}\" \"203.0.113.242\"\nbash /home/xwiki_deploy_flavor.sh \"203.0.113.2\" \"xwiki\" \"${DB_PASS}\" \"203.0.113.242\"\n"
                }
            ],
            "fingerprint":"_s0ui1yxFME="
        },
        "selfLink":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/us-central1-a/instances/example-name-rgmn",
        "scheduling":{
            "preemptible":false,
            "automaticRestart":true,
            "onHostMaintenance":"MIGRATE",
            "provisioningModel":"STANDARD"
        },
        "cpuPlatform":"Intel Cascade Lake",
        "fingerprint":"YBMt5z3lxpI=",
        "machineType":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/us-central1-a/machineTypes/n2-standard-2",
        "minCpuPlatform":"Intel Cascade Lake",
        "serviceAccounts":[
            {
                "email":"example@developer.gserviceaccount.com",
                "scopes":[
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/compute",
                    "https://www.googleapis.com/auth/devstorage.full_control",
                    "https://www.googleapis.com/auth/devstorage.read_only",
                    "https://www.googleapis.com/auth/logging.write",
                    "https://www.googleapis.com/auth/monitoring.write",
                    "https://www.googleapis.com/auth/service.management.readonly",
                    "https://www.googleapis.com/auth/servicecontrol",
                    "https://www.googleapis.com/auth/trace.append"
                ]
            }
        ],
        "startRestricted":false,
        "labelFingerprint":"Cy_Kdpu4cz8=",
        "creationTimestamp":"2024-02-05T16:28:31.856-08:00",
        "networkInterfaces":[
            {
                "kind":"compute#networkInterface",
                "name":"nic0",
                "network":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK_ID",
                "networkIP":"203.0.113.2",
                "stackType":"IPV4_ONLY",
                "subnetwork":"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/us-central1/subnetworks/SUBNETWORK_ID",
                "fingerprint":"lpKHF5wzhv4="
            }
        ],
        "deletionProtection":false,
        "lastStartTimestamp":"2024-02-05T16:28:47.038-08:00",
        "shieldedInstanceConfig":{
            "enableVtpm":true,
            "enableSecureBoot":false,
            "enableIntegrityMonitoring":true
        },
        "shieldedInstanceIntegrityPolicy":{
            "updateAutoLearnPolicy":true
        }
    },
    "name":"example-name-rgmn",
    "regionId":"us-central1",
    "regionName":"US",
    "riskGrade":"B",
    "stateId":null,
    "url":"https://console.cloud.google.comhttps://console.cloud.google.com/compute/instancesDetail/zones/us-central1-a/instances/example-name-rgmn?project=PROJECT_NAME",
    "vpcId":null,
    "vpcName":null,
    "relationshipCounts":1,
    "vulnerabilityCounts":{
        "critical":17,
        "high":38,
        "knownExploits":{
            "critical":0,
            "high":0,
            "low":0,
            "medium":0
        },
        "low":31,
        "medium":59,
        "old":{
            "critical":0,
            "high":0,
            "low":0,
            "medium":0
        },
        "patchable":{
            "critical":17,
            "high":38,
            "low":5,
            "medium":26
        }
    },
    "vpcExternalAssetId":null,
    "tags":{
        "goog-ccm":true,
        "xwiki-us-central1-autoscale":"",
        "goog-solutions-console-deployment-name":"java-application",
        "goog-solutions-console-solution-id":"java-application"
    },
    "assetType":"Google Compute Engine VM Instance",
    "serviceName":"Google Compute Engine",
    "resourceType":"Google Compute Engine VM Instance",
    "accountGroup":"account",
    "accountName":"Example-Name",
    "assetClassId":"compute",
    "assetClass":"Compute",
    "deleted":false,
    "problem":[
        
    ],
    "alertsCount":[
        {
            "count":5,
            "severity":"high"
        },
        {
            "count":3,
            "severity":"critical"
        },
        {
            "count":2,
            "severity":"low"
        }
    ],
    "attributes":{
        "altAssetId":"example-name-rgmn.us-central1-a.c.PROJECT_NAME.internal",
        "name":"example-name-rgmn.us-central1-a.c.PROJECT_NAME.internal",
        "provider":"gcp",
        "accountID":"example-account",
        "region":"us-central1-a",
        "resourceName":"5115585594921894848",
        "osRelease":"focal",
        "osDistro":"ubuntu",
        "distro":"Ubuntu 20.04.5 LTS",
        "scannedBy":"Agentless",
        "docker":"",
        "kubernetes":"",
        "cluster":"",
        "vmImage":"hsa-xwiki-vm-img-latest",
        "collections":[
            "All"
        ],
        "scanPassed":true,
        "stage":"run",
        "lastScanTime":"2024-02-12T18:25:39.39Z"
    },
    "alertCountBySeverity":[
        {
            "severity":"high",
            "count":5
        },
        {
            "severity":"critical",
            "count":3
        },
        {
            "severity":"low",
            "count":2
        }
    ]
}
指令碼結果

下表說明使用「Enrich Assets」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success True 或 False
輸出訊息

在案件總覽中,「豐富資產」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully enriched the following resources using information from Palo Alto Prisma Cloud: ASSET_ID

Action wasn't able to enrich the following assets using information from Palo Alto Prisma Cloud: ASSET_ID

None of the provided assets were enriched.

動作成功。
Error executing action "Enrich Assets". Reason: ERROR_REASON

動作失敗。

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

乒乓

使用這項動作測試與 Prisma Cloud 伺服器的連線。

動作輸入內容

動作輸出內容

這個動作會提供下列輸出內容:

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

下表說明使用 Ping 動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success True 或 False
輸出訊息

在案件總覽頁面中,「Ping」動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully connected to the Palo Alto Prisma Cloud server with the provided connection parameters! 動作成功。
Failed to connect to the Palo Alto Prisma Cloud server! Error is ERROR_REASON

動作失敗。

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

回覆快訊

使用 Prisma Cloud 回應快訊。

這項操作不會在 Google SecOps 實體上執行。如要進一步瞭解支援的實體,請參閱「我們支援哪些實體類型」。

動作輸入內容

這項動作需要下列參數:

參數 說明
Alert ID 必要

回覆警示的 ID。

Response Type 選用

快訊狀態。

如果選取 Snooze 值,則必須提供「暫緩時間」參數。

可能的值:
  • 關閉
  • 延後
  • 重新開啟
  • 修復
Snooze Time 選用

延後時間 (以小時為單位)。

Dismiss Note 選用

附註,說明為何要駁回。

動作輸出內容

這個動作會提供下列輸出內容:

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

以下範例說明使用「回應快訊」動作時收到的 JSON 結果輸出內容:

{
"response_status": {"Reopened", "Snoozed", "Dismissed", "Remediated", "No Remediation Applied."} 
}
指令碼結果

下表說明使用「回應快訊」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success True 或 False
輸出訊息

在案件總覽頁面中,「Ping」動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully responded to an alert with ID ALERT_ID in Palo Alto Prisma Cloud. 動作成功。
Error executing action "Respond To Alert". Reason: Alert with ID ALERT_ID wasn't found in Palo Alto Prisma Cloud. Please check the spelling.

動作失敗。

找不到快訊。檢查拼字。

Error executing action "Respond To Alert". Reason: The Response Type parameter is misconfigured. Select a valid value for the Response Type parameter.

動作失敗。

檢查「回應類型」參數值。

Error executing action "Respond To Alert". Reason: Action couldn't respond to alert with ID ALERT_ID in Palo Alto Prisma Cloud. Please check the action configuration parameters.

動作失敗。

檢查輸入參數值。

Error executing action "Respond To Alert". Reason: The Response Type parameter was set to "Snooze". Make sure that the Snooze Time parameter value is configured and valid.

動作失敗。

檢查「暫緩時間」參數值。

Error executing action "Respond To Alert". Reason: ERROR_REASON

動作失敗。

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

連接器

如需在 Google SecOps 中設定連接器的詳細操作說明,請參閱「設定連接器」。

Palo Alto Prisma Cloud - Alerts Connector

使用這個連接器從 Prisma Cloud 提取快訊。

動態清單會搭配 policy.name 參數運作,如下列範例所示:

"filters": [
 {
     "operator": "=",
     "name": "policy.name",
     "value": "Google Cloud VM instance that is internet reachable with unrestricted access (203.0.113.0/24)"
 },
 {
     "operator": "=",
     "name": "policy.name",
     "value": "Compute Engine with IAM write access level"
 }
]

連接器輸入內容

連接器需要下列參數:

參數 說明
Product Field Name 必要

要擷取產品欄位名稱的來源欄位名稱。

預設值為 policy_policyType

Event Field Name 必要

要擷取事件欄位名稱的來源欄位名稱。

預設值為 resource_cloudType

Environment Field Name 選填

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

如果找不到環境欄位,系統會將環境設為預設環境。

Environment Regex Pattern 選填

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

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

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

API Root 必要

Prisma Cloud 執行個體的 API 根目錄。

預設值為 https://api3.prismacloud.io

Access Key ID 必要

Prisma Cloud 帳戶的存取金鑰 ID。

Secret Access Key 必要

Prisma Cloud 帳戶的存取密鑰。

Lowest Severity to Fetch 選填

要擷取的最低快訊嚴重程度。

如果未提供任何值,連接器會擷取所有嚴重程度的快訊。

可能的值包括:
  • 重大
  • 參考用
Max Hours Backwards 選用

連接器首次開始擷取事件前的小時數。首次啟用連接器後,這個參數只會套用至初始連接器疊代。

預設值為 1 小時。

Max Alerts To Fetch 選填

單一連接器疊代中要處理的快訊數量。

預設值為 100。最大值為 1000。

Use dynamic list as a blocklist 必要

如果選取,動態清單會做為封鎖清單使用。

預設為未選取。

Verify SSL 必要

如果選取這個選項,Google SecOps 會驗證連線至 Prisma Cloud 伺服器的 SSL 憑證是否有效。

預設為未選取。

Proxy Server Address 選用

要使用的 Proxy 伺服器位址。

Proxy Username 選用

用於驗證的 Proxy 使用者名稱。

Proxy Password 選用

用於驗證的 Proxy 密碼。

連接器事件

以下是連接器事件的範例:

{
 "id": "ID",
 "status": "open",
 "reason": "NEW_ALERT",
 "firstSeen": 1706971601230,
 "lastSeen": 1706971601230,
 "alertTime": 1706971601230,
 "lastUpdated": 1707806767098,
 "saveSearchId": "b1ccf7df-d2c8-4588-8d06-b62738fd9745",
 "policy": {
     "policyId": "45488d62-6abe-4938-9b7a-aaa44858540e",
     "name": "Data destruction risk due to a publicly exposed and vulnerable Google Cloud VM instance with delete permissions",
     "policyType": "attack_path",
     "systemDefault": true,
     "description": "This policy idnces as soon as possible.",
     "severity": "critical",
     "recommendation": "The followinge vulnerabilities quickly.",
     "labels": [
         "Prisma_Cloud"
     ],
     "lastModifiedOn": 1702006359544,
     "lastModifiedBy": "user@example.com",
     "deleted": false,
     "findingTypes": [],
     "remediable": false
 },
 "alertRules": [
     {
         "policyScanConfigId": "9612cba4-4f76-44ec-b11f-9c01ba9a4c04",
         "name": "Default Alert Rule",
         "enabled": true,
         "scanAll": true,
         "target": {
             "accountGroups": [],
             "excludedAccounts": [],
             "regions": [],
             "tags": []
         },
         "createdBy": "example@example.com",
         "alertRuleNotificationConfig": [],
         "allowAutoRemediate": false,
         "notifyOnOpen": true,
         "notifyOnSnoozed": false,
         "notifyOnDismissed": false,
         "notifyOnResolved": false
     }
 ],
 "resource": {
     "id": "ID",
     "name": "gke-gke-pc-pool-1-4e52a225-12id",
     "account": "Example-Account",
     "accountId": "ACCOUNT_ID",
     "cloudAccountGroups": [
         "Default Account Group"
     ],
     "region": "US",
     "regionId": "us-central1",
     "resourceType": "INSTANCE",
     "resourceApiName": "gcloud-compute-instances-list",
     "cloudServiceName": "Google Compute Engine",
     "data": {},
     "cloudType": "gcp",
     "resourceTs": 1706915178410,
     "internalResourceId": "INTERNAL_RESOURCE_ID",
     "cloudAccountOwners": [
         "user1@example.com",
         "user2@example.com"
     ],
     "unifiedAssetId": "393924d2b306c07490b19615c6e1a265",
     "resourceConfigJsonAvailable": false,
     "resourceDetailsAvailable": true
 },
 "networkAnomaly": false
}

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