Recopila registros de alertas de Palo Alto Cortex XDR

Se admite en los siguientes países:

En este documento, se describe cómo puedes recopilar registros de alertas de Palo Alto Cortex XDR configurando un feed de Google Security Operations.

Para obtener más información, consulta Transferencia de datos a Google Security Operations.

Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar al formato estructurado del UDM. La información de este documento se aplica al analizador con la etiqueta de transferencia CORTEX_XDR.

Configura alertas de Palo Alto Cortex XDR

Para configurar alertas de Palo Alto Cortex XDR, completa las siguientes tareas:

Obtén la clave de API de alertas de Palo Alto Cortex XDR

  1. Accede al portal de Cortex XDR.
  2. En el menú Configuración, haz clic en Configuración.
  3. Selecciona +Clave nueva.
  4. En la sección Nivel de seguridad, selecciona Avanzado.
  5. En la sección Roles, selecciona Visualizador.
  6. Haz clic en Generar.
  7. Copia la clave de API y, luego, haz clic en Listo. La clave de API representa tu clave de autorización única y solo se muestra en el momento de la creación. Es obligatorio cuando configuras el feed de Google Security Operations.

Obtén el ID de clave de API de alertas de Palo Alto Cortex XDR

En la sección Configurations, navega a API keys > ID. Anota el número de ID correspondiente, que representa el token x-xdr-auth-id:{key_id}.

Cómo obtener el FQDN

  1. Navega a Claves de API.
  2. Haz clic en Copiar URL. Guarda la URL, que es obligatoria cuando configuras el feed de Google Security Operations.

Configura un feed en Google Security Operations para transferir los registros de alertas de Palo Alto Cortex XDR

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. Ingresa un nombre único para el Nombre del campo.
  4. Selecciona API de terceros como el Tipo de fuente.
  5. Selecciona Alertas de Palo Alto Cortex XDR como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Configura los siguientes parámetros de entrada obligatorios:
    • Encabezados HTTP de autenticación: Proporciona la clave de autorización y el ID de clave de autorización que obtuviste anteriormente.
    • Nombre de host de la API: Proporciona la URL que obtuviste anteriormente.
    • Extremo: Especifica el extremo.
  8. Haz clic en Siguiente y, luego, en Enviar.

Para obtener más información sobre los feeds de Google Security Operations, consulta la documentación de los feeds de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de feed, consulta Configuración de feeds por tipo.

Si tienes problemas cuando creas feeds, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.

Referencia de la asignación de campos

Este analizador extrae registros de seguridad de Palo Alto Networks Cortex XDR en formato JSON o SYSLOG (par clave-valor), normaliza los campos y los asigna a la UDM. Controla los formatos JSON y de par clave-valor, realiza la extracción de fechas, enriquece los datos con metadatos y estructura el resultado para transferirlo a Google SecOps.

Habilita las solicitudes a la API de REST en Cortex XDR y configura un feed de Google SecOps

En esta guía, se proporcionan instrucciones paso a paso para habilitar las solicitudes de la API de REST en Cortex XDR y configurar un feed correspondiente en Google SecOps.

Parte 1: Habilita las solicitudes de la API de REST en Cortex XDR

Cortex XDR usa claves de API para la autenticación. Sigue estos pasos para generar una clave de API:

  1. Accede a la consola de administración de Cortex XDR.
  2. Ve a Configuración.
  3. Accede a Claves de API.
  4. Genera una clave nueva.
  5. Proporciona un nombre de clave (por ejemplo, "Integración de SecOps").
  6. Asigna a la clave de API los permisos necesarios para acceder a los datos requeridos. Esto es fundamental para la seguridad y garantiza que la clave solo tenga acceso a lo que necesita. Consulta la documentación de Cortex XDR para conocer los permisos específicos que se requieren para tu caso de uso.
  7. Almacena la clave de API de forma segura. La necesitarás para configurar el feed de Google SecOps. Esta es la única vez que verás la clave completa, así que asegúrate de copiarla ahora.
  8. (Opcional) Configura una fecha de vencimiento para la clave de API para mejorar la seguridad.

Parte 2: Configura el feed en Google SecOps

Después de generar la clave de API, configura el feed en Google SecOps para recibir datos de Cortex XDR:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. Selecciona API de terceros como el Tipo de origen.
  4. Selecciona el tipo de registro requerido que corresponde a los datos que deseas transferir desde Cortex XDR.
  5. Haz clic en Siguiente.
  6. Configura los siguientes parámetros de entrada:
    • Extremo de la API: Ingresa la URL base de la API de Cortex XDR. Puedes encontrar esta información en la documentación de la API de Cortex XDR.
    • Clave de API: Pega la clave de API que generaste antes.
    • Otros parámetros: Según la API de Cortex XDR específica que uses, es posible que debas proporcionar parámetros adicionales, como filtros de datos o períodos específicos. Consulta la documentación de la API de Cortex XDR para obtener más información.
  7. Haz clic en Siguiente y, luego, en Enviar.

Consideraciones importantes:

  • Límite de frecuencia: Ten en cuenta los límites de frecuencia que impone la API de Cortex XDR. Configura el feed según corresponda para evitar superar estos límites.
  • Manejo de errores: Implementa un manejo de errores adecuado en tu configuración de Google SecOps para administrar situaciones en las que la API de Cortex XDR no está disponible o muestra errores.
  • Seguridad: Almacena la clave de API de forma segura y sigue las prácticas recomendadas de seguridad. Rota las claves de API con regularidad para minimizar el impacto de posibles vulneraciones.
  • Documentación: Consulta la documentación oficial de la API de Cortex XDR para obtener información detallada sobre los extremos, los parámetros y los formatos de datos disponibles.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
action security_result.action Si action contiene "BLOCKED", configúralo como "BLOCK".
action security_result.action_details Si act no está vacío, no es nulo ni es “none”, usa el valor de act. De lo contrario, si action no es "BLOCKED", usa el valor de action.
action_country security_result.about.location.country_or_region Asignación directa También se usa en el campo events anidado.
action_file_path target.resource.attribute.labels Crea una etiqueta con la clave "action_file_path" y el valor del campo de registro.
action_file_sha256 target.file.sha256 Convierte a minúsculas.
action_local_port principal.port Convierte a número entero.
action_remote_ip target.ip Se fusionó en el array target.ip.
action_remote_ip target.asset.ip Se fusionó en el array target.asset.ip.
action_remote_port target.port Convierte a número entero.
act security_result.action_details Se usa si no está vacío, nulo o "ninguno".
agent_data_collection_status Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
agent_device_domain target.administrative_domain Asignación directa
agent_fqdn Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
agent_install_type Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
agent_is_vdi Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
agent_os_sub_type target.platform_version Asignación directa
agent_os_type target.platform Si es “Windows”, configúralo como “WINDOWS”.
agent_version Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
alert_id security_result.rule_id Asignación directa
app target.application Asignación directa
cat security_result.category_details Se fusionó en el campo security_result.category_details.
category security_result.category Si es “Software malicioso”, configúralo como “SOFTWARE_MALICIOUS”.
category security_result.category_details Se fusionó en el campo security_result.category_details.
cn1 network.session_id Asignación directa
cn1Label Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
contains_featured_host Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
contains_featured_ip Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
contains_featured_user Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
creation_time metadata.event_timestamp Se convirtió en una marca de tiempo.
cs1 security_result.rule_name Se concatena con cs1Label para formar security_result.rule_name.
cs1Label security_result.rule_name Se concatena con cs1 para formar security_result.rule_name.
cs2 additional.fields Crea un par clave-valor en additional.fields con la clave de cs2Label y el valor de cadena de cs2.
cs2Label additional.fields Se usa como clave para el valor cs2 en additional.fields.
cs3 additional.fields Crea un par clave-valor en additional.fields con la clave de cs3Label y el valor de cadena de cs3.
cs3Label additional.fields Se usa como clave para el valor cs3 en additional.fields.
cs4 additional.fields Crea un par clave-valor en additional.fields con la clave de cs4Label y el valor de cadena de cs4.
cs4Label additional.fields Se usa como clave para el valor cs4 en additional.fields.
cs5 additional.fields Crea un par clave-valor en additional.fields con la clave de cs5Label y el valor de cadena de cs5.
cs5Label additional.fields Se usa como clave para el valor cs5 en additional.fields.
cs6 additional.fields Crea un par clave-valor en additional.fields con la clave de cs6Label y el valor de cadena de cs6.
cs6Label additional.fields Se usa como clave para el valor cs6 en additional.fields.
CSPaccountname additional.fields Crea un par clave-valor en additional.fields con la clave "CSPaccountname" y el valor de cadena del campo de registro.
description metadata.description Asignación directa También se usa para security_result.description si event_type no es GENERIC_EVENT.
destinationTranslatedAddress target.ip Se fusionó en el array target.ip.
destinationTranslatedAddress target.asset.ip Se fusionó en el array target.asset.ip.
destinationTranslatedPort target.port Se convierte en un número entero si no está vacío o es -1.
deviceExternalId security_result.about.asset_id Tiene el prefijo "Device External Id: ".
dpt target.port Se convierte en un número entero si destinationTranslatedPort está vacío o es -1.
dst target.ip Se fusionó en el array target.ip.
dst target.asset.ip Se fusionó en el array target.asset.ip.
dst_agent_id target.ip Se convierte en una dirección IP y se combina en el array target.ip si es una IP válida.
dst_agent_id target.asset.ip Se convierte en una dirección IP y se combina en el array target.asset.ip si es una IP válida.
dvchost principal.hostname Asignación directa
dvchost principal.asset.hostname Asignación directa
endpoint_id target.process.product_specific_process_id Tiene el prefijo “cor:”.
event_id Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
event_sub_type Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
event_timestamp metadata.event_timestamp Se convirtió en una marca de tiempo. También se usa en el campo events anidado.
event_type metadata.event_type Se asignan a un tipo de evento de la AUA según la lógica. También se usa en el campo events anidado.
event_type metadata.product_event_type Asignación directa
event_type security_result.threat_name Asignación directa
events Eventos anidados Los campos dentro del array events se asignan a los campos de la AUA correspondientes dentro de los objetos events anidados. Consulta las asignaciones de campos individuales para obtener más detalles.
external_id Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fileId target.resource.attribute.labels Crea una etiqueta con la clave "fileId" y el valor del campo de registro.
fileHash target.file.sha256 Se convirtió en minúsculas. Establece metadata.event_type en FILE_UNCATEGORIZED.
filePath target.file.full_path Asignación directa Establece metadata.event_type en FILE_UNCATEGORIZED.
fw_app_category Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_app_id Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_app_subcategory Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_app_technology Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_device_name Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_email_recipient Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_email_sender Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_email_subject Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_interface_from Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_interface_to Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_is_phishing Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_misc Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_rule Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_rule_id Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_serial_number Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_url_domain Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_vsys Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
fw_xff Sin asignación Aunque está presente en el registro sin procesar, este campo no está asignado al objeto IDM en la UDM final.
host_ip principal.ip Se divide por comas y se combina en el array principal.ip.
host_ip principal.asset.ip Se divide por comas y se combina en el array principal.asset.ip.
host_name principal.hostname Asignación directa
host_name principal.asset.hostname Asignación directa
hosts target.hostname Extrae el nombre de host del primer elemento del array hosts.
hosts target.asset.hostname Extrae el nombre de host del primer elemento del array hosts.
hosts target.user.employee_id Extrae el ID de usuario del primer elemento del array hosts.
incident_id metadata.product_log_id Asignación directa
is_whitelisted Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
local_insert_ts Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
mac principal.mac Se divide por comas y se combina en el array principal.mac.
matching_status Sin asignación Aunque está presente en el registro sin procesar, este campo no se asigna al objeto IDM en la UDM final.
metadata.description security_result.description Se usa si event_type es GENERIC_EVENT.
metadata.event_type metadata.event_type Se establece en función de la lógica con event_type, host_ip y otros campos.
metadata.log_type metadata.log_type Se establece en "CORTEX_XDR".
metadata.product_name metadata.product_name Selecciona "Cortex".
metadata.vendor_name metadata.vendor_name Establece la opción en "Palo Alto Networks".
msg security_result.description Asignación directa
name security_result.summary Asignación directa
PanOSDGHierarchyLevel1 security_result.detection_fields Crea un par clave-valor en security_result.detection_fields con la clave "PanOSDGHierarchyLevel1" y el valor del campo de registro.
PanOSDestinationLocation target.location.country_or_region Asignación directa
PanOSDynamicUserGroupName principal.group.group_display_name Asignación directa si no está vacía o si es “-”.
PanOSSourceLocation principal.location.country_or_region Asignación directa
PanOSThreatCategory security_result.category_details Se fusionó en el campo security_result.category_details.
PanOSThreatID security_result.threat_id Asignación directa
principal.asset.attribute.labels principal.asset.attribute.labels Crea una etiqueta con la clave "Source" y el valor del campo source.
proto network.ip_protocol Se convirtió en mayúsculas. Establece metadata.event_type en NETWORK_CONNECTION.
request network.http.referral_url Asignación directa
rt metadata.event_timestamp Se convirtió en una marca de tiempo.
security_result.severity security_result.severity Se establece en mayúsculas el valor de severity.
severity security_result.severity Se convirtió en mayúsculas.
shost principal.hostname Asignación directa Establece metadata.event_type en STATUS_UPDATE.
shost principal.asset.hostname Asignación directa Establece metadata.event_type en STATUS_UPDATE.
source principal.asset.attribute.labels Se usa como valor de la etiqueta "Fuente".
source security_result.summary Se usa si los filtros not_json y grok coinciden.
sourceTranslatedAddress principal.ip Se fusionó en el array principal.ip.
sourceTranslatedAddress principal.asset.ip Se fusionó en el array principal.asset.ip.
sourceTranslatedPort principal.port Se convierte en un número entero si no está vacío o es -1.
spt principal.port Se convirtió en número entero.
sr_summary security_result.summary Se usa si los filtros not_json y grok coinciden.
src principal.ip Se fusionó en el array principal.ip.
src principal.asset.ip Se fusionó en el array principal.asset.ip.
suser principal.user.user_display_name Asignación directa
tenantCDLid additional.fields Crea un par clave-valor en additional.fields con la clave "tenantCDLid" y el valor de cadena del campo de registro.
tenantname additional.fields Crea un par clave-valor en additional.fields con la clave "tenantname" y el valor de cadena del campo de registro.
users target.user.userid Usa el primer elemento del array users.
xdr_url metadata.url_back_to_product Asignación directa

Cambios

2024-07-05

  • Se asignó "isInteractive" a "security_result.detection_fields".

2024-04-02

  • Se asignó "properties.createdDateTime" a "metadata.event_timestamp".
  • Se asignaron "properties.resourceServicePrincipalId" y "resourceServicePrincipalId" a "target.resource.attribute.labels".
  • Se asignaron "properties.authenticationProcessingDetails", "authenticationProcessingDetails" y "properties.networkLocationDetails" a "additional.fields".
  • Se asignó "properties.userAgent" a "network.http.user_agent" y "network.http.parsed_user_agent".
  • Se asignó "properties.authenticationRequirement" a "additional.fields".

2024-04-17

  • Se asignó "action_local_port" a "principal.port".
  • Se asignó "dst_agent_id" a "principal.ip".
  • Se asignó "action_remote_ip" a "target.ip".
  • Se asignó "action_remote_port" a "target.ip".
  • Se agregó la verificación si "target_device" está presente antes de establecer "metadata.event_type" en "NETWORK_CONNECTION".

2024-03-15

  • Se agregó un Grok para recuperar "source" y "sr_summary" del encabezado del mensaje.
  • Se asignó "sr_summary" a "security_result.summary".

2024-03-11

  • Se agregó compatibilidad con los registros en formato CEF.
  • Se asignó "rt" a "metadata.event_timestamp".
  • Se asignaron "category" y "cat" a "security_result.category_details".
  • Se asignaron "cs2Label", "cs2", "tenantname", "tenantCDLid" y "CSPaccountname" a "additional.fields".
  • Se asignó "shost" a "principal.hostname" y "principal.asset.hostname".
  • Se asignó "spt" a "principal.port".
  • Se asignó "src" a "principal.ip" y "principal.asset.ip".
  • Se asignó "suser" a "principal.user.user_display_name".
  • Se asignó "dpt" a "target.port".
  • Se asignó "dst" a "target.ip" y "target.asset.ip".
  • Se asignó "fileHash" a "target.file.sha256".
  • Se asignó "filePath" a "target.file.full_path".
  • Se asignó "request" a "network.http.referral_url".
  • Se asignó "msg" a "security_result.description".

2024-01-18

  • Se cambió la asignación de "action_file_path" de "target.file.full_path" a "target.resource.attribute.labels".
  • Se asignó "domain" a "target.asset.hostname".
  • Se asignó "destinationTranslatedAddress" a "target.asset.ip".
  • Se asignó "host_name" a "principal.asset.hostname".
  • Se asignó "dvchost" a "principal.asset.hostname".
  • Se asignó "ip" a "principal.asset.ip".
  • Se asignó "sourceTranslatedAddress" a "principal.asset.ip".

2023-11-10

  • Cuando "event_type" es "RPC Call", se asigna "metadata.event_type" a "STATUS_UPDATE".
  • Se asignó "events.action_country" a "security_result.about.location.country_or_region".
  • Se asignó "events.actor_process_command_line" a "target.process.command_line".
  • Se asignó "events.actor_process_image_md5" a "target.file.md5".
  • Se asignó "events.actor_process_image_path" a "target.file.full_path".
  • Se asignó "events.actor_process_image_sha256" a "target.file.sha256".
  • Se asignó "events.actor_process_instance_id" a "target.process.pid".
  • Se asignó "events.os_actor_process_command_line" a "principal.process.command_line".
  • Se asignó "events.os_actor_process_image_path" a "principal.file.full_path".
  • Se asignó "events.os_actor_process_image_sha256" a "principal.file.sha256".
  • Se asignó "events.os_actor_process_instance_id" a "principal.process.pid".
  • Se asignó "events.causality_actor_process_command_line" a "intermediary.process.command_line".
  • Se asignó "events.causality_actor_process_image_path" a "intermediary.file.full_path".
  • Se asignó "events.causality_actor_process_image_sha256" a "intermediary.file.sha256".
  • Se asignó "events.causality_actor_process_instance_id" a "intermediary.process.pid".
  • Se asignó "events.causality_actor_process_image_md5" a "intermediary.file.md5".
  • Se asignó "events.event_type" a "metadata.product_event_type".
  • Se asignó "events.user_name" a "principal.user.user_display_name".

2023-10-16

  • Se asignó "source" a "principal.asset.attribute.labels".
  • Establece "metadata.event_type" en "NETWORK_CONNECTION" si "event_type" aparece en "Network Connections" o "Network Event".

2022-11-03

  • Se asignó "PanOSConfigVersion" a "security_result.detection_fields".
  • Se asignó "PanOSContentVersion" a "security_result.detection_fields".
  • Se asignó "PanOSDGHierarchyLevel1" a "security_result.detection_fields".
  • Se asignó "PanOSDestinationLocation" a "target.location.country_or_region".
  • Se asignó "PanOSDynamicUserGroupName" a "principal.group.group_display_name".
  • Se asignó "PanOSSourceLocation" a "principal.location.country_or_region".
  • Se asignó "PanOSThreatCategory" a "security_result.category_details".
  • Se asignó "PanOSThreatID" a "security_result.threat_id".
  • Se asignó "app" a "target.application".
  • Se asignó "cs1" a "additional.fields".
  • Se asignó "cs3" a "additional.fields".
  • Se asignó "cs4" a "additional.fields".
  • Se asignó "cs5" a "additional.fields".
  • Se asignó "cs6" a "additional.fields".
  • Se asignó "cn1" a "additional.fields".
  • Se asignó "sourceTranslatedPort" a "principal.port".
  • Se asignó "sourceTranslatedAddress" a "principal.ip".
  • Se asignó "destinationTranslatedAddress" a "target.ip".
  • Se asignó "destinationTranslatedPort" a "target.port".
  • Se asignó "act" a "security_result.action_details".
  • Se asignó "deviceExternalId" a "security_result.about.asset_id".
  • Se asignó "dvchost" a "principal.hostname".
  • Se asignó "proto" a "network.ip_protocol".
  • Se asignó "fileId" a "target.resource.attribute.labels".