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
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.
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 de 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 en 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 como "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.