Palo Alto Networks Prisma Cloud
Este documento proporciona directrices sobre cómo integrar Palo Alto Networks Prisma Cloud con el módulo SOAR de Google Security Operations. En la plataforma SecOps de Google, la integración de Prisma Cloud de Palo Alto Networks se llama Palo Alto Prisma Cloud.
Versión de la integración: 3.0
Integrar Prisma Cloud con Google SecOps
La integración requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
API Root |
Obligatorio La raíz de la API de la instancia de Prisma Cloud. El valor predeterminado es |
Access Key ID |
Obligatorio El ID de la clave de acceso de la cuenta de Prisma Cloud. |
Secret Access Key |
Obligatorio Clave de acceso secreta de la cuenta de Prisma Cloud. |
Verify SSL |
Obligatorio Si se selecciona esta opción, Google SecOps verifica que el certificado SSL de la conexión al servidor de Prisma Cloud sea válido. Esta opción está seleccionada de forma predeterminada. |
Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de Prisma Cloud, puedes usarla en los cuadernos de estrategias. Para obtener información sobre cómo configurar y admitir varias instancias de Prisma Cloud, consulta Admitir varias instancias.
Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta el artículo Configurar integraciones.
Acciones
A continuación, se muestra la lista de acciones disponibles en la integración de Prisma Cloud:
Enriquecer recursos
Usa Prisma Cloud para enriquecer la información sobre un recurso.
Esta acción no se ejecuta en entidades de Google SecOps. Para obtener más información sobre las entidades admitidas, consulta ¿Qué tipos de entidades admitimos?
Entradas de acciones
La acción requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Asset Identifiers |
Obligatorio Lista de identificadores de recursos separados por comas de los que quieres obtener los detalles. Un identificador de recurso es un ID de recurso o un nombre de recurso restringido (RRN). |
Resultados de la acción
La acción proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad de la salida de la acción |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Resultado de la secuencia de comandos | Disponible |
| Mensajes de salida | Disponible |
Resultado de JSON
En el siguiente ejemplo se describe la salida del resultado en JSON que se recibe al usar la acción Enrich Assets:
{
"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
}
]
}
Resultado de la secuencia de comandos
En la siguiente tabla se describen los valores de la salida del resultado de la secuencia de comandos al usar la acción Enriquecer recursos:
| Nombre del resultado del script | Valor |
|---|---|
| is_success | Verdadero o falso |
Mensajes de salida
En un panel de casos, la acción Enriquecer recursos proporciona los siguientes mensajes de salida:
| Mensaje resultante | Descripción del mensaje |
|---|---|
|
La acción se ha realizado correctamente. |
Error executing action "Enrich Assets". Reason:
ERROR_REASON |
Ha fallado la acción. Comprueba la conexión al servidor, los parámetros de entrada o las credenciales. |
Ping
Usa esta acción para probar la conectividad con el servidor de Prisma Cloud.
Entradas de acciones
Ninguno
Resultados de la acción
La acción proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad de la salida de la acción |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | No disponible |
| Resultado de la secuencia de comandos | Disponible |
| Mensajes de salida | Disponible |
Resultado de la secuencia de comandos
En la siguiente tabla se describen los valores del resultado de la secuencia de comandos al usar la acción Ping:
| Nombre del resultado del script | Valor |
|---|---|
| is_success | Verdadero o falso |
Mensajes de salida
En un panel de casos, la acción Ping proporciona los siguientes mensajes de salida:
| Mensaje resultante | Descripción del mensaje |
|---|---|
Successfully connected to the Palo Alto Prisma Cloud server with
the provided connection parameters! |
La acción se ha realizado correctamente. |
Failed to connect to the Palo Alto Prisma Cloud server! Error is
ERROR_REASON |
Ha fallado la acción. Comprueba la conexión al servidor, los parámetros de entrada o las credenciales. |
Responder a la alerta
Usa Prisma Cloud para responder a una alerta.
Esta acción no se ejecuta en entidades de Google SecOps. Para obtener más información sobre las entidades admitidas, consulta ¿Qué tipos de entidades admitimos?
Entradas de acciones
La acción requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Alert ID |
Obligatorio ID de la alerta de respuesta. |
Response Type |
Optional Estado de la alerta. Si se selecciona el valor
|
Snooze Time |
Optional El tiempo de posposición en horas. |
Dismiss Note |
Optional Una nota para justificar un despido. |
Resultados de la acción
La acción proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad de la salida de la acción |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Resultado de la secuencia de comandos | Disponible |
| Mensajes de salida | Disponible |
Resultado de JSON
En el siguiente ejemplo se describe la salida del resultado JSON recibida al usar la acción Responder a alerta:
{
"response_status": {"Reopened", "Snoozed", "Dismissed", "Remediated", "No Remediation Applied."}
}
Resultado de la secuencia de comandos
En la siguiente tabla se describen los valores del resultado de la secuencia de comandos cuando se usa la acción Responder a alerta:
| Nombre del resultado del script | Valor |
|---|---|
| is_success | Verdadero o falso |
Mensajes de salida
En un panel de casos, la acción Ping proporciona los siguientes mensajes de salida:
| Mensaje resultante | Descripción del mensaje |
|---|---|
Successfully responded to an alert with ID
ALERT_ID in Palo Alto Prisma
Cloud. |
La acción se ha realizado correctamente. |
Error executing action "Respond To Alert". Reason: Alert with
ID ALERT_ID wasn't found in Palo
Alto Prisma Cloud. Please check the spelling. |
Ha fallado la acción. No se ha encontrado la alerta. Comprueba que estén correctamente escritas. |
Error executing action "Respond To Alert". Reason: The Response
Type parameter is misconfigured. Select a valid value for the Response
Type parameter. |
Ha fallado la acción. Comprueba el valor del parámetro Response Type (Tipo de respuesta). |
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. |
Ha fallado la acción. Comprueba los valores de los parámetros de entrada. |
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. |
Ha fallado la acción. Comprueba el valor del parámetro Snooze Time (Tiempo de posponer). |
Error executing action "Respond To Alert". Reason:
ERROR_REASON |
Ha fallado la acción. Comprueba la conexión al servidor, los parámetros de entrada o las credenciales. |
Conectores
Para obtener instrucciones detalladas sobre cómo configurar un conector en Google SecOps, consulta el artículo Configurar el conector.
Palo Alto Prisma Cloud: conector de alertas
Usa este conector para extraer alertas de Prisma Cloud.
La lista dinámica funciona con el parámetro policy.name, como se muestra en el siguiente ejemplo:
"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"
}
]
Entradas de conectores
El conector requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Product Field Name |
Obligatorio Nombre del campo de origen para obtener el nombre del campo del producto. El valor predeterminado es |
Event Field Name |
Obligatorio Nombre del campo de origen para obtener el nombre del campo de evento. El valor predeterminado es |
Environment Field Name |
Optional
Nombre del campo en el que se almacena el nombre del entorno. Si no se encuentra el campo de entorno, se asigna el entorno predeterminado. |
Environment Regex Pattern |
Optional
Un patrón de expresión regular que se aplica al valor encontrado en el campo Usa el valor predeterminado Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno será el entorno predeterminado. |
API Root |
Obligatorio
La raíz de la API de la instancia de Prisma Cloud. El valor predeterminado es |
Access Key ID |
Obligatorio
El ID de la clave de acceso de la cuenta de Prisma Cloud. |
Secret Access Key |
Obligatorio
Clave de acceso secreta de la cuenta de Prisma Cloud. |
Lowest Severity to Fetch |
Optional
La gravedad más baja de las alertas que se van a obtener. Si no proporcionas ningún valor, el conector ingiere alertas de todas las gravedades. Valores posibles:
|
Max Hours Backwards |
Optional Número de horas antes de que el conector empiece a recuperar incidencias. Este parámetro solo se aplica una vez a la iteración inicial del conector después de habilitarlo por primera vez. El valor predeterminado es 1 hora. |
Max Alerts To Fetch |
Optional
Número de alertas que se van a procesar en una iteración del conector. El valor predeterminado es 100. El valor máximo es 1000. |
Use dynamic list as a blocklist |
Obligatorio
Si se selecciona, la lista dinámica se usa como lista de bloqueo. No está seleccionada de forma predeterminada. |
Verify SSL |
Obligatorio
Si se selecciona esta opción, Google SecOps verifica que el certificado SSL de la conexión al servidor de Prisma Cloud sea válido. No está seleccionada de forma predeterminada. |
Proxy Server Address |
Optional Dirección del servidor proxy que se va a usar. |
Proxy Username |
Optional Nombre de usuario del proxy para autenticarte. |
Proxy Password |
Optional Contraseña del proxy para autenticarte. |
Eventos del conector
A continuación, se muestra un ejemplo de evento de conector:
{
"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
}
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.