Recopila registros de alertas de Palo Alto Cortex XDR
En este documento, se describe cómo 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 en formato UDM estructurado. 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 las alertas de Palo Alto Cortex XDR, completa las siguientes tareas:
- Obtén la clave de API de las alertas de Palo Alto Cortex XDR.
- Obtén el ID de la clave de la API de alertas de Palo Alto Cortex XDR.
- Obtén el nombre de dominio completamente calificado (FQDN).
Obtén la clave de API de las alertas de Cortex XDR de Palo Alto
- Accede al portal de Cortex XDR.
- En el menú Configuración, haz clic en Configuración.
- Selecciona + Nueva clave.
- En la sección Nivel de seguridad, selecciona Avanzado.
- En la sección Roles, selecciona Visualizador.
- Haz clic en Generar.
- Copia la clave de API y, luego, haz clic en Listo. La clave de API representa tu clave de autorización única y se muestra solo en el momento de la creación. Es obligatorio cuando configuras el feed de Google Security Operations.
Obtén el ID de la clave de API de alertas de Palo Alto Cortex XDR
En la sección Configurations, navega a API keys > ID. Toma nota del número de ID correspondiente, que representa el token de x-xdr-auth-id:{key_id}
.
Obtén el FQDN
- Navega a Claves de API.
- Haz clic en Copiar URL. Guarda la URL, que es obligatoria cuando configuras el feed de Google Security Operations.
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 desde Configuración del SIEM > Feeds
Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.
Para configurar un solo feed, sigue estos pasos:
- Ve a SIEM Settings > 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, Registros de alertas de Cortex XDR de Palo Alto.
- Selecciona API de terceros como el Tipo de fuente.
- Selecciona Palo Alto Cortex XDR Alerts como el Tipo de registro.
- Haz clic en Siguiente.
- Configura los siguientes parámetros de entrada obligatorios:
- Encabezados HTTP de autenticación: Proporciona la clave de autorización y el ID de la clave de autorización que obtuviste anteriormente.
- Nombre de host de la API: Proporciona la URL que obtuviste anteriormente.
- Extremo: Especifica el extremo.
- 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.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- Encabezados HTTP de autenticación: Proporciona la clave de autorización y el ID de la clave de autorización que obtuviste anteriormente.
- Nombre de host de la API: Proporciona la URL que obtuviste anteriormente.
- Extremo: Especifica el extremo.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del recurso: Espacio de nombres asociado al feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Referencia de la asignación de campos
Este analizador extrae registros de seguridad de Cortex XDR de Palo Alto Networks en formato JSON o SYSLOG (clave-valor), normaliza los campos y los asigna al UDM. Maneja los formatos JSON y de clave-valor, realiza la extracción de fechas, enriquece los datos con metadatos y estructura el resultado para su transferencia a Google SecOps.
Habilita las solicitudes de 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:
- Accede a la consola de administración de Cortex XDR.
- Ve a Configuración.
- Accede a Claves de API.
- Genera una clave nueva.
- Proporciona un nombre de clave (por ejemplo, "Integración de SecOps").
- 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.
- Almacena la clave de API de forma segura. Lo necesitarás para la configuración del feed de Google SecOps. Esta es la única vez que verás la clave completa, así que asegúrate de copiarla ahora.
- (Opcional) Configura una fecha de vencimiento para la clave de API y, así, 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:
- Ve a SIEM Settings > Feeds.
- Haz clic en Agregar nueva.
- Selecciona API de terceros como el Tipo de origen.
- Selecciona el tipo de registro requerido que corresponde a los datos que deseas transferir desde Cortex XDR.
- Haz clic en Siguiente.
- Configura los siguientes parámetros de entrada:
- Extremo de la API: Ingresa la URL base de la API de Cortex XDR. Puedes encontrarlo 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 específica de Cortex XDR que utilices, 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 detalles.
- 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 de manera adecuada para evitar superar estos límites.
- Control de errores: Implementa 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 muestre 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", se debe establecer en "BLOCK". |
action |
security_result.action_details |
Si act no está vacío, es nulo o 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 |
Se convierte a minúsculas. |
action_local_port |
principal.port |
Convierte a número entero. |
action_remote_ip |
target.ip |
Se combinó en el array target.ip . |
action_remote_ip |
target.asset.ip |
Se combinó 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, es nulo o es "none". |
agent_data_collection_status |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
agent_device_domain |
target.administrative_domain |
Asignación directa |
agent_fqdn |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
agent_install_type |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
agent_is_vdi |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
agent_os_sub_type |
target.platform_version |
Asignación directa |
agent_os_type |
target.platform |
Si es "Windows", se debe establecer en "WINDOWS". |
agent_version |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
alert_id |
security_result.rule_id |
Asignación directa |
app |
target.application |
Asignación directa |
cat |
security_result.category_details |
Se combinó en el campo security_result.category_details . |
category |
security_result.category |
Si es "Malware", se debe establecer como "SOFTWARE_MALICIOUS". |
category |
security_result.category_details |
Se combinó en el campo security_result.category_details . |
cn1 |
network.session_id |
Asignación directa |
cn1Label |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
contains_featured_host |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
contains_featured_ip |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
contains_featured_user |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
creation_time |
metadata.event_timestamp |
Se convirtió en marca de tiempo. |
cs1 |
security_result.rule_name |
Se concatena con cs1Label para formar el security_result.rule_name . |
cs1Label |
security_result.rule_name |
Se concatena con cs1 para formar el 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 combinó en el array target.ip . |
destinationTranslatedAddress |
target.asset.ip |
Se combinó 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 |
Debe tener 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 combinó en el array target.ip . |
dst |
target.asset.ip |
Se combinó en el array target.asset.ip . |
dst_agent_id |
target.ip |
Se convierte en 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 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 asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
event_sub_type |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
event_timestamp |
metadata.event_timestamp |
Se convirtió en marca de tiempo. También se usa en el campo events anidado. |
event_type |
metadata.event_type |
Se asigna a un tipo de evento del UDM 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 UDM correspondientes dentro de los objetos events anidados. Consulta las asignaciones de campos individuales para obtener más detalles. |
external_id |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el 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ó a 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 asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_app_id |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_app_subcategory |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_app_technology |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_device_name |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_email_recipient |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_email_sender |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_email_subject |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_interface_from |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_interface_to |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_is_phishing |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_misc |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_rule |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_rule_id |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_serial_number |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_url_domain |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_vsys |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
fw_xff |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
host_ip |
principal.ip |
Se dividen por comas y se combinan en el array principal.ip . |
host_ip |
principal.asset.ip |
Se dividen por comas y se combinan 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 del usuario del primer elemento del array hosts . |
incident_id |
metadata.product_log_id |
Asignación directa |
is_whitelisted |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
local_insert_ts |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
mac |
principal.mac |
Se dividen por comas y se combinan en el array principal.mac . |
matching_status |
Sin asignar | Si bien está presente en el registro sin procesar, este campo no se asigna al objeto IDM en el UDM final. |
metadata.description |
security_result.description |
Se usa si event_type es GENERIC_EVENT. |
metadata.event_type |
metadata.event_type |
Se establece según 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 |
Se debe establecer en "Cortex". |
metadata.vendor_name |
metadata.vendor_name |
Se debe establecer 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 |
Es la asignación directa si no está vacío o es "-". |
PanOSSourceLocation |
principal.location.country_or_region |
Asignación directa |
PanOSThreatCategory |
security_result.category_details |
Se combinó 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ó a mayúsculas. Establece metadata.event_type en NETWORK_CONNECTION. |
request |
network.http.referral_url |
Asignación directa |
rt |
metadata.event_timestamp |
Se convirtió en marca de tiempo. |
security_result.severity |
security_result.severity |
Se establece en el valor en mayúsculas de severity . |
severity |
security_result.severity |
Se convirtió a 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 el valor de la etiqueta "Fuente". |
source |
security_result.summary |
Se usa si coinciden los filtros not_json y grok . |
sourceTranslatedAddress |
principal.ip |
Se combinó en el array principal.ip . |
sourceTranslatedAddress |
principal.asset.ip |
Se combinó 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 un número entero. |
sr_summary |
security_result.summary |
Se usa si coinciden los filtros not_json y grok . |
src |
principal.ip |
Se combinó en el array principal.ip . |
src |
principal.asset.ip |
Se combinó 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 |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.