Recopila registros de alertas de Palo Alto Prisma Cloud
Descripción general
Este analizador extrae registros de alertas de Palo Alto Prisma Cloud en formato JSON y los transforma en el UDM. El analizador realiza la normalización de datos, las conversiones de tipos y la lógica condicional para completar los campos de UDM adecuados. También controla las estructuras JSON anidadas y los arrays dentro de los datos de registro para extraer información pertinente.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso privilegiado a Palo Alto Prisma Cloud
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura feeds en Configuración del SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Alertas de PAN Prisma Cloud.
- Selecciona Webhook como el Tipo de origen.
- Selecciona Carga útil de alertas de Palo Alto Prisma Cloud como el Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes regenerar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
- Haz clic en Listo.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
.
Opciones avanzadas
- Nombre del feed: Es un valor predeterminado que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes regenerar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
Crea una clave de API para el feed del webhook
Ve a Google Cloud consola > Credenciales.
Haz clic en Crear credenciales y selecciona Clave de API.
Restringe el acceso a la clave de API a la API de Google Security Operations.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado con el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendación: Especifica la clave de API como un encabezado en lugar de hacerlo en la URL.
Si tu cliente de webhook no admite encabezados personalizados, puedes especificar la clave de API y la clave secreta con parámetros de búsqueda en el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Reemplaza lo siguiente:
ENDPOINT_URL
: Es la URL del extremo del feed.API_KEY
: Es la clave de API para autenticarse en Google Security Operations.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Configura el webhook de Palo Alto Prisma Cloud en Google SecOps
- Accede a Palo Alto Prisma Cloud.
- Selecciona Configuración > Integraciones y notificaciones ((and_then)) Integraciones.
- Haz clic en Agregar integración.
- Selecciona Webhook.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre de la integración: Proporciona un nombre único y descriptivo (por ejemplo, Google SecOps).
- URL de webhook: Ingresa ENDPOINT_URL.
- Opcional: Proporciona una Descripción de la integración.
- Opcional: Habilita Carga útil personalizada > haz clic en Siguiente para revisar o modificar la carga útil personalizada.
- Haz clic en Siguiente.
- Prueba y guarda la integración.
Configura alertas de Prisma Cloud de Palo Alto
- En la consola de Palo Alto Prisma Cloud, ve a Alerts > View Alert Rules.
- Selecciona una regla de alerta existente para editarla.
- Opcional: Crea una alerta nueva para Infraestructura de Cloud.
- Opcional: Crea una alerta nueva para Cloud Workload.
- Ve a Configurar notificaciones.
- Selecciona Webhook.
- Opcional: Selecciona los canales a los que deseas enviar notificaciones de las alertas activadas por la regla de alerta.
- Haz clic en Siguiente.
- Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
accountId |
target.resource.id |
Es el valor de accountId del registro sin procesar. |
accountId |
target.resource.product_object_id |
Es el valor de accountId del registro sin procesar. Esto anula el campo resource.id obsoleto. |
alertId |
security_result.detection_fields[].key |
La clave se establece en "ID de alerta". |
alertId |
security_result.detection_fields[].value |
Es el valor de alertId del registro sin procesar. |
alertRuleId |
security_result.rule_id |
Es el valor de alertRuleId del registro sin procesar. |
alertRuleName |
security_result.rule_name |
Es el valor de alertRuleName del registro sin procesar. |
alertStatus |
security_result.detection_fields[].key |
La clave se establece en "alert status". |
alertStatus |
security_result.detection_fields[].value |
Es el valor de alertStatus del registro sin procesar. |
alertTs |
security_result.detection_fields[].key |
La clave se establece en "alertTs". |
alertTs |
security_result.detection_fields[].value |
Es el valor de alertTs del registro sin procesar, convertido en una cadena. |
callbackUrl |
metadata.url_back_to_product |
Es el valor de callbackUrl del registro sin procesar. |
cloudType |
principal.cloud.environment |
Si cloudType es "gcp" (sin distinción entre mayúsculas y minúsculas), el valor se establece en "GOOGLE_CLOUD_PLATFORM". |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
La clave se establece en "complianceId". |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].complianceId del registro sin procesar. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
La clave se establece en "customAssigned". |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].customAssigned del registro sin procesar, convertido en una cadena. |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
La clave se establece en "ID de política". |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].policyId del registro sin procesar. |
complianceMetadata[].requirementId |
security_result.rule_id |
Es el valor de complianceMetadata[].requirementId del registro sin procesar. |
complianceMetadata[].requirementName |
security_result.summary |
Es el valor de complianceMetadata[].requirementName del registro sin procesar. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
La clave se establece en "requirementViewOrder". |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].requirementViewOrder del registro sin procesar, convertido en una cadena. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
La clave se establece en "sectionDescription". |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].sectionDescription del registro sin procesar. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
La clave se establece en "sectionId". |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].sectionId del registro sin procesar. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
La clave se establece en "sectionLabel". |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].sectionLabel del registro sin procesar. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
La clave se establece en "sectionViewOrder". |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].sectionViewOrder del registro sin procesar, convertido en una cadena. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
La clave se establece en "standardDescription". |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].standardDescription del registro sin procesar. |
complianceMetadata[].standardName |
security_result.rule_name |
Es el valor de complianceMetadata[].standardName del registro sin procesar. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
La clave se establece en "systemDefault". |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
Es el valor de complianceMetadata[].systemDefault del registro sin procesar, convertido en una cadena. |
create_time |
metadata.event_timestamp , events[].timestamp |
Es el valor de create_time del registro sin procesar. |
data.allocationId |
principal.resource.product_object_id |
Es el valor de data.allocationId del registro sin procesar. |
data.publicIp |
principal.ip |
Es el valor de data.publicIp del registro sin procesar. |
deleted |
additional.fields[].key |
La clave se establece como "deleted". |
deleted |
additional.fields[].value.string_value |
Es el valor de deleted del registro sin procesar, convertido en una cadena. |
description |
metadata.description |
Es el valor de description del registro sin procesar. |
firstSeen |
principal.asset.first_seen_time |
Valor de firstSeen del registro sin procesar, analizado como una marca de tiempo (formato UNIX_MS o UNIX). |
hasFinding |
security_result.detection_fields[].key |
La clave se establece en "hasFinding". |
hasFinding |
security_result.detection_fields[].value |
Es el valor de hasFinding del registro sin procesar, convertido en una cadena. |
lastSeen |
principal.asset.last_discover_time |
Valor de lastSeen del registro sin procesar, analizado como una marca de tiempo (formato UNIX_MS o UNIX). |
N/A | metadata.event_type |
Se establece en "USER_RESOURCE_ACCESS" si no se anula con un tipo de evento específico del registro. De lo contrario, se establece como "GENERIC_EVENT". |
N/A | metadata.product_name |
Se codificó de forma rígida como "CASB". |
N/A | metadata.vendor_name |
Se codifica de forma rígida como "Palo Alto Networks". |
policyDescription |
security_result.detection_fields[].key |
La clave se establece en "policyDescription". |
policyDescription |
security_result.detection_fields[].value |
Es el valor de policyDescription del registro sin procesar. |
policyId |
security_result.detection_fields[].key |
La clave se establece en "ID de política". |
policyId |
security_result.detection_fields[].value |
Es el valor de policyId del registro sin procesar. |
policyLabels |
additional.fields[].key |
La clave se establece en "policyLabels". |
policyLabels |
additional.fields[].value.string_value |
Es el valor de policyLabels del registro sin procesar. |
policyName |
security_result.description |
Es el valor de policyName del registro sin procesar. |
policyRecommendation |
security_result.detection_fields[].key |
La clave se establece en "recomendación de política". |
policyRecommendation |
security_result.detection_fields[].value |
Es el valor de policyRecommendation del registro sin procesar. |
policyType |
security_result.detection_fields[].key |
La clave se establece en "Tipo de política". |
policyType |
security_result.detection_fields[].value |
Es el valor de policyType del registro sin procesar. |
reason |
security_result.summary |
Es el valor de reason del registro sin procesar. |
recommendation |
security_result.detection_fields[].key |
La clave se establece en "Recommendation". |
recommendation |
security_result.detection_fields[].value |
Es el valor de recommendation del registro sin procesar. |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
La clave se establece en "resource additionalInfo". |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
Es el valor de resource.additionalInfo del registro sin procesar. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
La clave se establece en "resource cloudAccountGroups {index}". |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
Es el valor de resource.cloudAccountGroups[] del registro sin procesar. |
resource.cloudType |
principal.resource.attribute.labels[].key |
La clave se establece en "resource cloudType". |
resource.cloudType |
principal.resource.attribute.labels[].value |
Es el valor de resource.cloudType del registro sin procesar. |
resource.data |
principal.resource.attribute.labels[].key |
La clave se establece en "datos del recurso {nested_key}". |
resource.data |
principal.resource.attribute.labels[].value |
Es el valor de resource.data[] del registro sin procesar. |
resource.id |
principal.resource.product_object_id |
Es el valor de resource.id del registro sin procesar. |
resource.name |
principal.resource.name |
Es el valor de resource.name del registro sin procesar. |
resource.region |
principal.location.country_or_region |
Es el valor de resource.region del registro sin procesar. |
resource.regionId |
principal.cloud.availability_zone |
Es el valor de resource.regionId del registro sin procesar. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
La clave se establece en "resource resourceApiName". |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
Es el valor de resource.resourceApiName del registro sin procesar. |
resource.resourceTags |
principal.resource.attribute.labels[].key |
La clave se establece en "resource resourceTags {nested_key}". |
resource.resourceTags |
principal.resource.attribute.labels[].value |
Es el valor de resource.resourceTags[] del registro sin procesar. |
resource.resourceTs |
principal.resource.attribute.labels[].key |
La clave se establece en "resource resourceTs". |
resource.resourceTs |
principal.resource.attribute.labels[].value |
Es el valor de resource.resourceTs del registro sin procesar. |
resource.resourceType |
principal.resource.attribute.labels[].key |
La clave se establece en "resource resourceType". |
resource.resourceType |
principal.resource.attribute.labels[].value |
Es el valor de resource.resourceType del registro sin procesar. |
resource.rrn |
principal.resource.attribute.labels[].key |
La clave se establece en "RRN del recurso". |
resource.rrn |
principal.resource.attribute.labels[].value |
Es el valor de resource.rrn del registro sin procesar. |
resource.url |
principal.url |
Es el valor de resource.url del registro sin procesar. |
resourceCloudService |
principal.resource.attribute.labels[].key |
La clave se establece en "servicio de nube de recursos". |
resourceCloudService |
principal.resource.attribute.labels[].value |
Es el valor de resourceCloudService del registro sin procesar. |
resourceName |
principal.resource.name |
Es el valor de resourceName del registro sin procesar. |
resourceRegion |
principal.location.country_or_region |
Es el valor de resourceRegion del registro sin procesar. |
resourceRegionId |
principal.cloud.availability_zone |
Es el valor de resourceRegionId del registro sin procesar. |
resourceType |
target.resource.resource_subtype |
Es el valor de resourceType del registro sin procesar. |
severity |
security_result.severity |
Es el valor de severity del registro sin procesar, convertido a mayúsculas. Se asigna a los valores de gravedad del UDM (CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL). |
source |
principal.application |
Es el valor de source del registro sin procesar. |
unifiedAssetId |
principal.asset.asset_id |
El valor de unifiedAssetId del registro sin procesar, con el prefijo "ASSETID:". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.