Recopila registros de alertas de Palo Alto Prisma Cloud

Compatible con:

Descripción general

Este analizador extrae registros de alertas de Palo Alto Prisma Cloud en formato JSON y los transforma en la UDM. El analizador realiza la normalización de datos, las conversiones de tipo y la lógica condicional para propagar los campos de la AUA adecuados. También controla las estructuras y los arrays JSON anidados dentro de los datos de registro para extraer información relevante.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a Palo Alto Prisma Cloud.

Configura un feed en Google SecOps para transferir alertas de Palo Alto Prisma Cloud

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Alertas de PAN Prisma Cloud).
  4. Selecciona Webhook como el Tipo de origen.
  5. Selecciona Carga útil de alertas de Palo Alto Prisma Cloud como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. 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.
    • Espacio de nombres de recursos: Es el espacio de nombres de recursos.
    • Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
  8. Haz clic en Siguiente.
  9. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
  10. Haz clic en Generate Secret Key para generar una clave secreta que autentique este feed.
  11. Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
  12. 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.
  13. Haz clic en Listo.

Crea una clave de API para el feed de webhook

  1. Ve a consola de Google Cloud > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales y selecciona Clave de API.

  3. Restringe el acceso de la clave de API a la API de Google Security Operations.

Especifica la URL del extremo

  1. En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
  2. Habilita la autenticación especificando 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.

  3. Si tu cliente de webhook no admite encabezados personalizados, puedes especificar la clave de API y la clave secreta con parámetros de consulta 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

  1. Accede a Palo Alto Prisma Cloud.
  2. Selecciona Configuración > Integraciones y notificaciones ((and_then)) Integraciones.
  3. Haz clic en Agregar integración.
  4. Selecciona Webhook.
  5. 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.
  6. Haz clic en Siguiente.
  7. Probar y Guardar integración.

Configura alertas de Palo Alto Prisma Cloud

  1. En la consola de Palo Alto Prisma Cloud, ve a Alertas > Ver reglas de alertas.
  2. Selecciona una regla de alerta existente para editarla.
  3. Opcional: Crea una alerta nueva para Infraestructura de nube.
  4. Opcional: Crea una alerta nueva para Cloud Workload.
  5. Ve a Configurar notificaciones.
  6. Selecciona Webhook.
  7. Opcional: Selecciona los canales a los que deseas enviar notificaciones de las alertas activadas por la regla de alertas.
  8. Haz clic en Siguiente.
  9. 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 obsoleto.
alertId security_result.detection_fields[].key La clave se establece en "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 establece en "alert status".
alertStatus security_result.detection_fields[].value 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 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 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 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 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 "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 se establece en "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 se establece en "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 se establece en "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 se establece en "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 se establece en "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 se establece en "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 establece en "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 "borrada".
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 (UNIX_MS o formato UNIX)
hasFinding security_result.detection_fields[].key La clave se establece en "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 (UNIX_MS o formato 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, configúralo como "GENERIC_EVENT".
N/A metadata.product_name Se codifica de forma fija en "CASB".
N/A metadata.vendor_name Está codificado de forma fija como “Palo Alto Networks”.
policyDescription security_result.detection_fields[].key La clave se establece en "policyDescription".
policyDescription security_result.detection_fields[].value El valor de policyDescription del registro sin procesar.
policyId security_result.detection_fields[].key La clave se establece en "Policy Id".
policyId security_result.detection_fields[].value El valor de policyId del registro sin procesar.
policyLabels additional.fields[].key La clave se establece en "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 está configurada como "recomendación de política".
policyRecommendation security_result.detection_fields[].value 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 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 se establece en "Recommendation".
recommendation security_result.detection_fields[].value 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 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 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 El valor de resource.cloudType del registro sin procesar.
resource.data principal.resource.attribute.labels[].key La clave se establece en "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 se establece en "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 establece en "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 se establece en "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 se establece en "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 se establece en "resource rrn".
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 establece en "servicio de 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 Se asignan a los valores de gravedad de la UDM (CRÍTICO, ALTO, MEDIO, BAJO, INFORMATIVO).
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:".

Cambios

2023-12-10

  • Se agregó un patrón Grok para extraer la parte JSON.
  • Se asignó "resourceId" a "principal.resource.product_object_id".
  • Se asignó "accountId" a "target.resource.product_object_id".
  • Se asignó "alertRuleName" a "security_result.rule_name".
  • Se asignó "accountName" a "target.resource.name".
  • Se asignó "hasFinding" a "security_result.detection_fields".
  • Se asignó "resourceRegionId" a "principal.cloud.availability_zone".
  • Se asignó "source" a "principal.application".
  • Se asignó "callbackUrl" a "metadata.url_back_to_product".
  • Se asignó "alertRuleId" a "security_result.rule_id".
  • Se asignó "alertId" a "security_result.detection_fields".
  • Se asignó "policyLabels" a "additional.fields".
  • Se asignó "policyName" a "security_result.description".
  • Se asignó “resourceName” a “principal.resource.name”.
  • Se asignó "resourceRegion" a "principal.location.country_or_region".
  • Se asignó "policyDescription" a "security_result.detection_fields".
  • Se asignó "policyRecommendation" a "security_result.detection_fields".
  • Se asignó "resourceCloudService" a "principal.resource.attribute.labels".
  • Se asignó "resource.url" a "principal.url".
  • Se asignó "alertTs" a "security_result.detection_fields".
  • Se asignó "firstSeen" a "principal.asset.first_seen_time".
  • Se asignó "lastSeen" a "principal.asset.last_discover_time".
  • Se asignó "reason" a "security_result.summary".
  • Se asignó "alertStatus" a "security_result.detection_fields".
  • Si el valor de "severity" es "HIGH", establece "security_result.severity" en "HIGH".
  • Si el valor de "cloudType" es "gcp", establece "principal.cloud.environment" en "GOOGLE_CLOUD_PLATFORM".

2023-08-17

  • Sin embargo, el analizador se creó recientemente.