Recopila registros de eventos de Cortex XDR de Palo Alto
En este documento, se explica cómo transferir registros de eventos de Palo Alto Cortex XDR a
Google Security Operations con Google Cloud Storage. El analizador extrae
datos de eventos de seguridad de los registros JSON de Cortex XDR de Palo Alto Networks. Normaliza
los datos en el modelo de datos unificado (UDM) asignando campos, convirtiendo tipos de datos
y enriqueciendo los eventos con metadatos, como el proveedor, el producto y los tipos de eventos, según la lógica condicional vinculada a los campos event_type y event_sub_type. También controla las conexiones de red, las operaciones de archivos y registros, la información de los procesos y la actividad del usuario.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Google Cloud El almacenamiento está configurado y activo en tu entorno de Google Cloud
- Acceso con privilegios a Google Cloud y los permisos adecuados
- Acceso con privilegios a Cortex XDR de Palo Alto
Crea un bucket de almacenamiento de Google Cloud
- Accede a la consola de Google Cloud .
Ve a la página Buckets de Cloud Storage.
Haz clic en Crear.
En la página Crear un bucket, ingresa la información de tu bucket. Después de cada uno de los siguientes pasos, haz clic en Continuar para avanzar al siguiente paso:
En la sección Primeros pasos, haz lo siguiente:
- Ingresa un nombre único que cumpla con los requisitos de nombre del bucket (por ejemplo, cortex-xdr-events-secops).
Para habilitar el espacio de nombres jerárquico, haz clic en la flecha de expansión para expandir la sección Optimizar las cargas de trabajo orientadas a archivos y con uso intensivo de datos y, luego, selecciona Habilitar el espacio de nombres jerárquico en este bucket.
Para agregar una etiqueta de bucket, haz clic en la flecha de expansión para expandir la sección Etiquetas.
Haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.
En la sección Eligir dónde almacenar tus datos, haz lo siguiente:
- Selecciona un tipo de ubicación
Usa el menú del tipo de ubicación para seleccionar una Ubicación en la que se almacenarán de forma permanente los datos de objetos de tu bucket.
Para configurar la replicación entre bucket, expande la sección Configura la bucket entre buckets.
En la sección Elige una clase de almacenamiento para tus datos, selecciona una clase de almacenamiento predeterminada para el bucket o selecciona Autoclass para la administración automática de clases de almacenamiento de los datos de tu bucket.
En la sección Elige cómo controlar el acceso a los objetos, selecciona no para aplicar la prevención del acceso público y elige un modelo de control de acceso para los objetos del bucket.
En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:
- Selecciona cualquiera de las opciones de Protección de datos que desees configurar para tu bucket.
- Para elegir cómo se encriptarán los datos de tus objetos, haz clic en la flecha desplegable Encriptación de datos y selecciona un método de encriptación de datos.
Haz clic en Crear.
Configura una regla de administración del ciclo de vida de los objetos en el bucket de destino recién creado para borrar objetos después de 7 días:
- En la lista Buckets de Cloud Storage, haz clic en el nombre de tu bucket.
- Selecciona la pestaña Ciclo de vida y, luego, haz clic en Agregar una regla.
- En la sección Selecciona una acción, elige Borrar objeto.
- En la sección Seleccionar condiciones de objetos, selecciona Antigüedad y establece el
valor en
7días. - Haz clic en Guardar.
Configura el reenvío de eventos de Cortex XDR
- Accede a la IU web de Cortex XDR.
- Ve a Configuración > Parámetros de configuración > Administración de datos > Reenvío de eventos.
- Activa las licencias en la sección Activación.
- Habilita el reenvío de eventos de GB para exportar registros analizados de Cortex XDR Pro por GB a un SIEM externo para su almacenamiento.
- Habilita el reenvío de eventos de extremos para exportar datos de extremos sin procesar para Cortex XDR Pro EP y Cloud Endpoints.
- Guarda la selección.
- Copia la ruta de acceso de almacenamiento que se muestra.
- Genera y descarga el TOKEN WEB JSON de la cuenta de servicio, que contiene la clave de acceso.
- Guárdala en una ubicación segura.
Configura Google Cloud Secret Manager
- Accede a tu GCP.
- Ve a la página de Secret Manager.
- Si es la primera vez que lo haces, se te pedirá que habilites la API de Secret Manager.
- Crea un Secret llamado EVENT_FRWD_CRTX_KEY y copia el contenido del archivo JSON xdr_sa_key.json que descargaste como el valor del Secret.
Configura feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > Feeds.
- Haz clic en Agregar feed nuevo.
- En la página siguiente, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de eventos de PANW Cortex XDR).
- Selecciona Google Cloud Storage V2 como el Tipo de fuente.
- Selecciona Eventos de Palo Alto Cortex XDR como el Tipo de registro.
- Haz clic en Obtener cuenta de servicio como la cuenta de servicio de Chronicle.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- URI del bucket de almacenamiento: Google Cloud URL del bucket de almacenamiento (por ejemplo,
gs://cortex-xdr-events-secops/). Esta URL debe terminar con una barra diagonal (/). Opciones de eliminación de fuentes: Selecciona No borrar los archivos transferidos.
Antigüedad máxima del archivo: Incluye los archivos modificados en la última cantidad de días. El valor predeterminado es 180 días.
- URI del bucket de almacenamiento: Google Cloud URL del bucket de almacenamiento (por ejemplo,
Haz clic en Siguiente.
Revisa la configuración de tu feed de noticias nuevo en la pantalla Finalizar y, luego, haz clic en Enviar.
Después de crear el feed, búscalo en la lista Feeds y haz clic en los tres puntos de acción que se encuentran en el lado derecho de la línea.
Selecciona Inhabilitar feed.
Configura el acceso de JSON de Secret a Cloud Storage
- Accede a tu GCP.
- Ve a la página de Secret Manager.
- Selecciona el secreto EVENT_FRWD_CRTX_KEY.
- Ve a la pestaña Permisos.
- Proporciona acceso de Administrador de objetos de almacenamiento y Lector de buckets heredados de almacenamiento al bucket cortex-xdr-events-secops que creaste anteriormente.
Configura los permisos de Google SecOps para Cloud Storage
- Ve a IAM y administración > IAM.
- Ubica la cuenta de servicio de Chronicle.
- Otorga el acceso de Visualizador de objetos de Storage (roles/storage.objectViewer) al bucket cortex-xdr-events-secops creado anteriormente.
Configura la transferencia de registros de eventos de PANW Cortex XDR al Cloud Storage del proyecto
- En Google Cloud, ve a APIs y servicios > Biblioteca.
- Habilita las APIs de Cloud Run y Artifact Registry.
- Para abrir Cloud Shell, haz clic en el ícono de la barra de navegación superior.
Descarga un código personalizado con el siguiente comando:
git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.gitPara ir al directorio, ejecuta el siguiente comando:
cd google-cloud-cortex-chronicle/Abre el archivo
env.propertiescon un editor comovi.Proporciona los siguientes detalles de configuración:
REGION=us-central1 # Update according to your project region REPO_NAME=panw-chronicle IMAGE_NAME=sync_cortex_bucket GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name ROJECT_NUMBER=80xxxxx9 # Update according to your project number # JOB ENV VARIABLES SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name DEST_BUCKET=cortex-xdr-events-secops # Update with the GCS name of the bucket you created SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created JOB_SCHEDULE_MINS=30Proporciona los permisos necesarios a la secuencia de comandos
deploy.sh:chmod 744 deploy.shEjecuta la secuencia de comandos
deploy.sh:./deploy.shIdentifica la cuenta de servicio de Cloud Job que se usó en el resultado de la secuencia de comandos.
Otorga a la cuenta de servicio de Cloud Job el permiso de ancestro de Secret de Secret Manager para acceder al Secret que creaste antes (como en nuestro ejemplo, EVENT_FRWD_CRTX_KEY).
Ve a Secret Manager > EVENT_FRWD_CRTX_KEY (secreto) > Permisos.
En la plataforma de Google SecOps, ve a Configuración > Administración de datos > Feeds > Nombre del feed de eventos de XDR > Habilitar feed.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
action_file_path |
target.file.full_path |
Asignada directamente |
action_file_size |
target.file.size |
Se asigna y convierte directamente en un número entero sin firma |
action_local_ip |
principal.ip |
Asignadas directamente y combinadas con otras direcciones IP |
action_local_port |
principal.port |
Se asigna directamente y se convierte en un número entero |
action_module_path |
target.process.file.full_path |
Asignada directamente |
action_network_connection_id |
network.session_id |
Asignada directamente |
action_network_protocol |
network.ip_protocol |
Se cambió el nombre a protocol_number_src, se analizó con parse_ip_protocol.include y se asignó a network.ip_protocol |
action_process_image_command_line |
target.process.command_line |
Asignada directamente |
action_process_image_md5 |
target.process.file.md5 |
Asignada directamente |
action_process_image_path |
target.process.file.full_path |
Asignada directamente |
action_process_image_sha256 |
target.process.file.sha256 |
Asignada directamente |
action_process_os_pid |
target.process.pid |
Se asigna directamente y se convierte en cadena |
action_process_user_sid |
target.user.windows_sid |
Asignada directamente |
action_process_username |
target.user.userid, target.administrative_domain |
Se convierte a minúsculas, se analiza para el dominio y el usuario, y se asigna según corresponda. |
action_registry_data |
target.registry.registry_value_data |
Asignada directamente |
action_registry_key_name |
target.registry.registry_key |
Asignada directamente |
action_registry_value_name |
target.registry.registry_value_name |
Asignada directamente |
action_remote_ip |
target.ip |
Asignadas directamente y combinadas con otras direcciones IP |
action_remote_port |
target.port |
Se asigna directamente y se convierte en un número entero |
action_total_download |
network.received_bytes |
Se asigna y convierte directamente en un número entero sin firma |
action_total_upload |
network.sent_bytes |
Se asigna y convierte directamente en un número entero sin firma |
agent_hostname |
principal.hostname, observer.hostname |
Se convierte en minúsculas y se asigna |
agent_ip_addresses |
observer.ip |
Se analiza como JSON, se divide en IPs individuales y se combina |
agent_os_sub_type |
target.platform_version |
Asignada directamente |
event_id |
metadata.product_log_id |
Asignada directamente |
event_sub_type |
metadata.product_event_type |
Se convierte en cadena y se usa para la asignación condicional de metadata.event_type y metadata.product_event_type |
event_timestamp |
metadata.event_timestamp, timestamp |
Se convierte en cadena, se analiza como marca de tiempo UNIX_MS y se asigna |
event_type |
metadata.event_type |
Se convierte en cadena y se usa para la asignación condicional de metadata.event_type y metadata.product_event_type |
os_actor_process_command_line |
principal.process.command_line |
Asignada directamente |
os_actor_process_image_md5 |
principal.process.file.md5 |
Asignada directamente |
os_actor_process_image_path |
principal.process.file.full_path |
Asignada directamente |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
Asignada directamente |
os_actor_process_instance_id |
principal.process.product_specific_process_id |
Con el prefijo "PAN:" y asignado |
os_actor_process_os_pid |
principal.process.pid |
Se convierte en cadena y se asigna |
os_actor_primary_user_sid |
principal.user.windows_sid |
Se asigna si comienza con "S-" o "s-" |
os_actor_primary_username |
principal.user.userid, principal.administrative_domain |
Se convierte a minúsculas, se analiza para el dominio y el usuario, y se asigna según corresponda. |
_action |
security_result.action |
Se combinó con _security_result y, luego, se asignó |
metadata.log_type |
metadata.log_type |
Se codifica como "PAN_CORTEX_XDR_EVENTS" |
metadata.product_name |
metadata.product_name |
Está codificado como "Cortex XDR". |
metadata.vendor_name |
metadata.vendor_name |
Está codificado como "PAN". |
target.platform |
target.platform |
Se establece en "WINDOWS" si agent_os_sub_type contiene "Windows". |
action_user_session_id |
event.idm.read_only_udm.network.session_id |
Asignado desde el registro de cambios |
action_username |
event.idm.read_only_udm.principal.user.user_display_name |
Asignado desde el registro de cambios |
agent_ip_addresses |
event.idm.read_only_udm.principal.ip y event.idm.read_only_udm.principal.asset.ip |
Asignado desde el registro de cambios |
agent_os_sub_type |
event.idm.read_only_udm.principal.platform_version |
Asignado desde el registro de cambios |
agent_id |
event.idm.read_only_udm.principal.asset.asset_id y event.idm.read_only_udm.principal.asset_id |
Asignado desde el registro de cambios |
agent_os_type |
event.idm.read_only_udm.principal.platform |
Asignado desde el registro de cambios |
action_process_token |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_process_fds |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_process_termination_date |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_process_termination_code |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_network_stats_is_last |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_user_is_local_session |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_user_status |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
event_version |
event.idm.read_only_udm.metadata.product_version |
Asignado desde el registro de cambios |
action_file_previous_file_path |
event.idm.read_only_udm.principal.file.full_path |
Asignado desde el registro de cambios |
agent_interface_map.ipv4 |
event.idm.read_only_udm.observer.ip |
Asignado desde el registro de cambios |
agent_interface_map.mac |
event.idm.read_only_udm.observer.mac |
Asignado desde el registro de cambios |
action_file_last_writer_actor |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_file_device_type |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_file_previous_file_name |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_file_name |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
agent_id |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
agent_version |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
agent_os_type |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
os_actor_thread_thread_id |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_file_type |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_file_prev_type |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
os_actor_process_signature_status |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
os_actor_process_logon_id |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
agent_content_version |
event.idm.read_only_udm.additional.fields |
Asignado desde el registro de cambios |
action_module_image_size |
event.idm.read_only_udm.target.file.size |
Asignado desde el registro de cambios |
action_file_md5 |
event.idm.read_only_udm.target.file.md5 |
Asignado desde el registro de cambios |
action_file_sha256 |
event.idm.read_only_udm.target.file.sha256 |
Asignado desde el registro de cambios |
action_module_md5 |
target.process.file.md5 |
Asignado desde el registro de cambios |
action_module_sha256 |
target.process.file.sha256 |
Asignado desde el registro de cambios |
metadata.event_type |
GENERIC_EVENT. |
Asignado desde el registro de cambios |
Registro de cambios
Consulta el registro de cambios de este analizador
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.