Palo Alto Networks Prisma Cloud

Ce document explique comment intégrer Palo Alto Networks Prisma Cloud au module SOAR de Google Security Operations. Dans la plate-forme Google SecOps, l'intégration de Palo Alto Networks Prisma Cloud s'appelle Palo Alto Prisma Cloud.

Version de l'intégration : 3.0

Intégrer Prisma Cloud à Google SecOps

L'intégration nécessite les paramètres suivants :

Paramètre Description
API Root Obligatoire

Racine de l'API de l'instance Prisma Cloud.

La valeur par défaut est https://api3.prismacloud.io.

Access Key ID Obligatoire

ID de clé d'accès du compte Prisma Cloud.

Secret Access Key Obligatoire

Clé d'accès secrète du compte Prisma Cloud.

Verify SSL Obligatoire

Si cette option est sélectionnée, Google SecOps vérifie que le certificat SSL pour la connexion au serveur Prisma Cloud est valide.

Cette option est sélectionnée par défaut.

Si nécessaire, vous pourrez apporter des modifications ultérieurement. Une fois que vous avez configuré une instance Prisma Cloud, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances Prisma Cloud, consultez Prise en charge de plusieurs instances.

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Actions

Voici la liste des actions disponibles dans l'intégration Prisma Cloud :

Enrichir les composants

Utilisez Prisma Cloud pour enrichir les informations sur une ressource.

Cette action ne s'applique pas aux entités Google SecOps. Pour en savoir plus sur les entités acceptées, consultez Quels types d'entités sont acceptés ?.

Entrées d'action

L'action requiert les paramètres suivants :

Paramètre Description
Asset Identifiers Obligatoire

Liste d'identifiants d'éléments séparés par une virgule pour lesquels vous souhaitez récupérer les détails.

Un identifiant d'élément est un ID d'élément ou un nom de ressource restreint (RRN) d'élément.

Sorties d'action

L'action fournit les sorties suivantes :

Type de sortie de l'action Disponibilité des résultats d'action
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Résultat du script Disponible
Messages de sortie Disponible
Résultat JSON

L'exemple suivant décrit le résultat JSON reçu lors de l'utilisation de l'action "Enrichir les composants" :

{
    "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
        }
    ]
}
Résultat du script

Le tableau suivant décrit les valeurs de la sortie des résultats du script lorsque vous utilisez l'action "Enrichir les composants" :

Nom du résultat du script Valeur
is_success Vrai ou faux
Messages de sortie

Sur un mur des cas, l'action "Enrichir les composants" fournit les messages de sortie suivants :

Message affiché Description du message

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.

Action effectuée.
Error executing action "Enrich Assets". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Ping

Utilisez cette action pour tester la connectivité au serveur Prisma Cloud.

Entrées d'action

Aucun

Sorties d'action

L'action fournit les sorties suivantes :

Type de sortie de l'action Disponibilité des résultats d'action
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Résultat du script Disponible
Messages de sortie Disponible
Résultat du script

Le tableau suivant décrit les valeurs de la sortie des résultats du script lorsque vous utilisez l'action Ping :

Nom du résultat du script Valeur
is_success Vrai ou faux
Messages de sortie

Sur un mur de demandes, l'action "Envoyer un ping" fournit les messages de sortie suivants :

Message affiché Description du message
Successfully connected to the Palo Alto Prisma Cloud server with the provided connection parameters! Action effectuée.
Failed to connect to the Palo Alto Prisma Cloud server! Error is ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Répondre à l'alerte

Utilisez Prisma Cloud pour répondre à une alerte.

Cette action ne s'applique pas aux entités Google SecOps. Pour en savoir plus sur les entités acceptées, consultez Quels types d'entités sont acceptés ?.

Entrées d'action

L'action requiert les paramètres suivants :

Paramètre Description
Alert ID Obligatoire

ID de l'alerte de réponse.

Response Type Optional

État d'une alerte.

Si la valeur Snooze est sélectionnée, le paramètre Heure de report est obligatoire.

Valeurs possibles :
  • Ignorer
  • Mettre en pause
  • Rouvrir
  • Corriger
Snooze Time Optional

Durée de la répétition en heures.

Dismiss Note Optional

Une note pour justifier un refus.

Sorties d'action

L'action fournit les sorties suivantes :

Type de sortie de l'action Disponibilité des résultats d'action
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Résultat du script Disponible
Messages de sortie Disponible
Résultat JSON

L'exemple suivant décrit le résultat JSON reçu lors de l'utilisation de l'action "Répondre à l'alerte" :

{
"response_status": {"Reopened", "Snoozed", "Dismissed", "Remediated", "No Remediation Applied."} 
}
Résultat du script

Le tableau suivant décrit les valeurs de la sortie du résultat du script lorsque vous utilisez l'action "Répondre à l'alerte" :

Nom du résultat du script Valeur
is_success Vrai ou faux
Messages de sortie

Sur un mur de demandes, l'action "Envoyer un ping" fournit les messages de sortie suivants :

Message affiché Description du message
Successfully responded to an alert with ID ALERT_ID in Palo Alto Prisma Cloud. Action effectuée.
Error executing action "Respond To Alert". Reason: Alert with ID ALERT_ID wasn't found in Palo Alto Prisma Cloud. Please check the spelling.

Échec de l'action.

L'alerte est introuvable. Vérifiez l'orthographe.

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

Échec de l'action.

Vérifiez la valeur du paramètre Type de réponse.

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.

Échec de l'action.

Vérifiez les valeurs des paramètres d'entrée.

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.

Échec de l'action.

Vérifiez la valeur du paramètre Heure de mise en veille.

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

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Connecteurs

Pour obtenir des instructions détaillées sur la configuration d'un connecteur dans Google SecOps, consultez Configurer le connecteur.

Connecteur d'alertes Palo Alto Prisma Cloud

Utilisez ce connecteur pour extraire les alertes de Prisma Cloud.

La liste dynamique fonctionne avec le paramètre policy.name, comme indiqué dans l'exemple suivant :

"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"
 }
]

Entrées du connecteur

Le connecteur nécessite les paramètres suivants :

Paramètre Description
Product Field Name Obligatoire

Nom du champ source permettant de récupérer le nom du champ produit.

La valeur par défaut est policy_policyType.

Event Field Name Obligatoire

Nom du champ source permettant de récupérer le nom du champ d'événement.

La valeur par défaut est resource_cloudType.

Environment Field Name Optional

Nom du champ dans lequel le nom de l'environnement est stocké.

Si le champ d'environnement n'est pas trouvé, l'environnement est défini sur l'environnement par défaut.

Environment Regex Pattern Optional

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Environment Field Name. Ce paramètre vous permet de manipuler le champ "environment" à l'aide de la logique d'expression régulière.

Utilisez la valeur par défaut .* pour récupérer la valeur Environment Field Name brute requise.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur d'environnement est nulle, le résultat final de l'environnement est l'environnement par défaut.

API Root Obligatoire

Racine de l'API de l'instance Prisma Cloud.

La valeur par défaut est https://api3.prismacloud.io.

Access Key ID Obligatoire

ID de clé d'accès du compte Prisma Cloud.

Secret Access Key Obligatoire

Clé d'accès secrète du compte Prisma Cloud.

Lowest Severity to Fetch Optional

Gravité minimale des alertes à récupérer.

Si vous ne fournissez aucune valeur, le connecteur ingère les alertes de toutes les gravités.

Valeurs possibles :
  • Critique
  • Élevée
  • Moyen
  • Faible
  • Information
Max Hours Backwards Optional

Nombre d'heures avant que le connecteur ne commence à récupérer les incidents. Ce paramètre ne s'applique qu'une seule fois à la première itération du connecteur après son activation.

La valeur par défaut est de 1 heure.

Max Alerts To Fetch Optional

Nombre d'alertes à traiter lors d'une itération du connecteur.

La valeur par défaut est 100. La valeur maximale est de 1 000.

Use dynamic list as a blocklist Obligatoire

Si cette option est sélectionnée, la liste dynamique est utilisée comme liste de blocage.

(non sélectionnée par défaut).

Verify SSL Obligatoire

Si cette option est sélectionnée, Google SecOps vérifie que le certificat SSL pour la connexion au serveur Prisma Cloud est valide.

(non sélectionnée par défaut).

Proxy Server Address Optional

Adresse du serveur proxy à utiliser.

Proxy Username Optional

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password Optional

Mot de passe du proxy pour l'authentification.

Événements de connecteur

Voici un exemple d'événement de connecteur :

{
 "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
}

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.