Recoger registros de alertas de Palo Alto Prisma Cloud
Información general
Este analizador extrae registros de alertas de Palo Alto Prisma Cloud en formato JSON y los transforma en UDM. El analizador realiza la normalización de datos, las conversiones de tipos y la lógica condicional para rellenar los campos de UDM adecuados. También gestiona estructuras JSON anidadas y arrays en los datos de registro para extraer información relevante.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso privilegiado a Palo Alto Prisma Cloud.
Configurar feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Añadir feed.
- En la página siguiente, haga clic en Configurar un solo feed.
- En el campo Nombre del feed, escriba un nombre para el feed (por ejemplo, Alertas de Prisma Cloud de PAN).
- Selecciona Webhook como Tipo de fuente.
- Seleccione Carga útil de alertas de Palo Alto Prisma Cloud como Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica los valores de los siguientes parámetros de entrada:
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
\n
.
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y guarda la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta, pero esta acción hará que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del endpoint del feed del campo Información del endpoint. Debes especificar esta URL de endpoint en tu aplicación cliente.
- Haz clic en Listo.
Crear una clave de API para la feed de webhook
Ve a la consolaGoogle Cloud > Credenciales.
Haz clic en Crear credenciales y, a continuación, selecciona Clave de API.
Restringe el acceso de la clave de API a la API Google Security Operations.
Especificar la URL del endpoint
- En tu aplicación cliente, especifica la URL del endpoint HTTPS proporcionada 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 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 mediante parámetros de consulta con el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Haz los cambios siguientes:
ENDPOINT_URL
: URL del endpoint del feed.API_KEY
: la clave de API para autenticarte en Google Security Operations.SECRET
: la clave secreta que has generado para autenticar el feed.
Configurar el webhook de Palo Alto Prisma Cloud en Google SecOps
- Inicia sesión en Palo Alto Prisma Cloud.
- Selecciona Configuración > Integraciones y notificaciones ((and_then)) Integraciones.
- Haz clic en Add Integration (Añadir integración).
- Selecciona Webhook.
- Especifique valores para los siguientes parámetros de entrada:
- Nombre de la integración: proporciona un nombre único y descriptivo (por ejemplo, Google SecOps).
- URL del webhook: introduce ENDPOINT_URL.
- Opcional: Proporcione 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.
- Probar y Guardar integración.
Configurar alertas de Palo Alto Prisma Cloud
- En la consola de Palo Alto Prisma Cloud, ve a Alerts (Alertas) > View Alert Rules (Ver reglas de alertas).
- Selecciona una regla de alerta para editarla.
- Opcional: Crea una alerta para Infraestructura de nube.
- Opcional: Crea una alerta para Carga de trabajo en la nube.
- Ve a Configurar notificaciones.
- Selecciona Webhook.
- Opcional: Selecciona los canales a los que quieras 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 |
El valor de accountId del registro sin procesar. |
accountId |
target.resource.product_object_id |
El valor de accountId del registro sin procesar. Esto anula el campo resource.id , que está obsoleto. |
alertId |
security_result.detection_fields[].key |
La clave es "alert id". |
alertId |
security_result.detection_fields[].value |
El valor de alertId del registro sin procesar. |
alertRuleId |
security_result.rule_id |
El valor de alertRuleId del registro sin procesar. |
alertRuleName |
security_result.rule_name |
El valor de alertRuleName del registro sin procesar. |
alertStatus |
security_result.detection_fields[].key |
La clave se ha definido como "alert status". |
alertStatus |
security_result.detection_fields[].value |
El valor de alertStatus del registro sin procesar. |
alertTs |
security_result.detection_fields[].key |
La clave es "alertTs". |
alertTs |
security_result.detection_fields[].value |
El valor de alertTs del registro sin procesar, convertido en una cadena. |
callbackUrl |
metadata.url_back_to_product |
El valor de callbackUrl del registro sin procesar. |
cloudType |
principal.cloud.environment |
Si cloudType es "gcp" (sin distinguir entre mayúsculas y minúsculas), el valor se define como "GOOGLE_CLOUD_PLATFORM". |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
La clave es "complianceId". |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
El valor de complianceMetadata[].complianceId del registro sin procesar. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
La clave es "customAssigned". |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
El valor de complianceMetadata[].customAssigned del registro sin procesar, convertido en una cadena. |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
La clave es "Policy Id". |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
El valor de complianceMetadata[].policyId del registro sin procesar. |
complianceMetadata[].requirementId |
security_result.rule_id |
El valor de complianceMetadata[].requirementId del registro sin procesar. |
complianceMetadata[].requirementName |
security_result.summary |
El valor de complianceMetadata[].requirementName del registro sin procesar. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
La clave es "requirementViewOrder". |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
El valor de complianceMetadata[].requirementViewOrder del registro sin procesar, convertido en una cadena. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
La clave es "sectionDescription". |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
El valor de complianceMetadata[].sectionDescription del registro sin procesar. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
La clave es "sectionId". |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
El valor de complianceMetadata[].sectionId del registro sin procesar. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
La clave es "sectionLabel". |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
El valor de complianceMetadata[].sectionLabel del registro sin procesar. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
La clave es "sectionViewOrder". |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
El valor de complianceMetadata[].sectionViewOrder del registro sin procesar, convertido en una cadena. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
La clave es "standardDescription". |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
El valor de complianceMetadata[].standardDescription del registro sin procesar. |
complianceMetadata[].standardName |
security_result.rule_name |
El valor de complianceMetadata[].standardName del registro sin procesar. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
La clave se ha definido como "systemDefault". |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
El valor de complianceMetadata[].systemDefault del registro sin procesar, convertido en una cadena. |
create_time |
metadata.event_timestamp , events[].timestamp |
El valor de create_time del registro sin procesar. |
data.allocationId |
principal.resource.product_object_id |
El valor de data.allocationId del registro sin procesar. |
data.publicIp |
principal.ip |
El valor de data.publicIp del registro sin procesar. |
deleted |
additional.fields[].key |
La clave se establece como "deleted" (eliminada). |
deleted |
additional.fields[].value.string_value |
El valor de deleted del registro sin procesar, convertido en una cadena. |
description |
metadata.description |
El valor de description del registro sin procesar. |
firstSeen |
principal.asset.first_seen_time |
El 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 es "hasFinding". |
hasFinding |
security_result.detection_fields[].value |
El valor de hasFinding del registro sin procesar, convertido en una cadena. |
lastSeen |
principal.asset.last_discover_time |
El valor de lastSeen del registro sin procesar, analizado como una marca de tiempo (formato UNIX_MS o UNIX). |
N/A | metadata.event_type |
Se asigna el valor "USER_RESOURCE_ACCESS" si no se sustituye por un tipo de evento específico del registro. De lo contrario, se asigna el valor "GENERIC_EVENT". |
N/A | metadata.product_name |
Codificado como "CASB". |
N/A | metadata.vendor_name |
Codificado como "Palo Alto Networks". |
policyDescription |
security_result.detection_fields[].key |
La clave es "policyDescription". |
policyDescription |
security_result.detection_fields[].value |
El valor de policyDescription del registro sin procesar. |
policyId |
security_result.detection_fields[].key |
La clave es "Policy Id". |
policyId |
security_result.detection_fields[].value |
El valor de policyId del registro sin procesar. |
policyLabels |
additional.fields[].key |
La clave es "policyLabels". |
policyLabels |
additional.fields[].value.string_value |
El valor de policyLabels del registro sin procesar. |
policyName |
security_result.description |
El valor de policyName del registro sin procesar. |
policyRecommendation |
security_result.detection_fields[].key |
La clave se ha definido como "policy recommendation". |
policyRecommendation |
security_result.detection_fields[].value |
El valor de policyRecommendation del registro sin procesar. |
policyType |
security_result.detection_fields[].key |
La clave es "Policy Type". |
policyType |
security_result.detection_fields[].value |
El valor de policyType del registro sin procesar. |
reason |
security_result.summary |
El valor de reason del registro sin procesar. |
recommendation |
security_result.detection_fields[].key |
La clave es "Recommendation". |
recommendation |
security_result.detection_fields[].value |
El valor de recommendation del registro sin procesar. |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
La clave es "resource additionalInfo". |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
El valor de resource.additionalInfo del registro sin procesar. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
La clave se define como "resource cloudAccountGroups {index}". |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
El valor de resource.cloudAccountGroups[] del registro sin procesar. |
resource.cloudType |
principal.resource.attribute.labels[].key |
La clave es "resource cloudType". |
resource.cloudType |
principal.resource.attribute.labels[].value |
El valor de resource.cloudType del registro sin procesar. |
resource.data |
principal.resource.attribute.labels[].key |
La clave se define como "resource data {nested_key}". |
resource.data |
principal.resource.attribute.labels[].value |
El valor de resource.data[] del registro sin procesar. |
resource.id |
principal.resource.product_object_id |
El valor de resource.id del registro sin procesar. |
resource.name |
principal.resource.name |
El valor de resource.name del registro sin procesar. |
resource.region |
principal.location.country_or_region |
El valor de resource.region del registro sin procesar. |
resource.regionId |
principal.cloud.availability_zone |
El valor de resource.regionId del registro sin procesar. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
La clave es "resource resourceApiName". |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
El valor de resource.resourceApiName del registro sin procesar. |
resource.resourceTags |
principal.resource.attribute.labels[].key |
La clave se define como "resource resourceTags {nested_key}". |
resource.resourceTags |
principal.resource.attribute.labels[].value |
El valor de resource.resourceTags[] del registro sin procesar. |
resource.resourceTs |
principal.resource.attribute.labels[].key |
La clave es "resource resourceTs". |
resource.resourceTs |
principal.resource.attribute.labels[].value |
El valor de resource.resourceTs del registro sin procesar. |
resource.resourceType |
principal.resource.attribute.labels[].key |
La clave es "resource resourceType". |
resource.resourceType |
principal.resource.attribute.labels[].value |
El valor de resource.resourceType del registro sin procesar. |
resource.rrn |
principal.resource.attribute.labels[].key |
La clave es "rrn de recurso". |
resource.rrn |
principal.resource.attribute.labels[].value |
El valor de resource.rrn del registro sin procesar. |
resource.url |
principal.url |
El valor de resource.url del registro sin procesar. |
resourceCloudService |
principal.resource.attribute.labels[].key |
La clave se ha definido como "servicio en la nube de recursos". |
resourceCloudService |
principal.resource.attribute.labels[].value |
El valor de resourceCloudService del registro sin procesar. |
resourceName |
principal.resource.name |
El valor de resourceName del registro sin procesar. |
resourceRegion |
principal.location.country_or_region |
El valor de resourceRegion del registro sin procesar. |
resourceRegionId |
principal.cloud.availability_zone |
El valor de resourceRegionId del registro sin procesar. |
resourceType |
target.resource.resource_subtype |
El valor de resourceType del registro sin procesar. |
severity |
security_result.severity |
El valor de severity del registro sin procesar, convertido a mayúsculas. Asignado a los valores de gravedad del UDM (CRITICAL, HIGH, MEDIUM, LOW e INFORMATIONAL). |
source |
principal.application |
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? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.