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 Palo Alto Networks Cortex XDR. Normaliza los datos en el Modelo de datos unificado (UDM) asignando campos, convirtiendo tipos de datos y enriqueciendo 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 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 permisos adecuados
- Acceso privilegiado a Palo Alto Cortex XDR
Crea un Google Cloud bucket de Storage
- 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 nombres de bucket (por ejemplo, cortex-xdr-events-googlesecops). * 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.
Note: You can't enable hierarchical namespace in an existing bucket. * To add a bucket label, click the expander arrow to expand the **Labels** section. * Click **Add label** and specify a key and a value for your label.
En la sección Elige 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.
Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox. * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
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 selecciona 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 el reenvío de eventos de Cortex XDR
- Accede a la IU web de Cortex XDR.
- Ve a Configuración > Configuraciones > Administración de datos > Reenvío de eventos.
- Activa las licencias en la sección Activación.
- Habilita GB Event Forwarding para exportar los registros analizados de Cortex XDR Pro por GB a un SIEM externo para su almacenamiento.
- Habilita Endpoints Event Forwarding para exportar datos de extremos sin procesar para Cortex XDR Pro EP y Cloud Endpoints.
- Guarda la selección.
- Copia la ruta 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 GCP.
- Ve a la página de Secret Manager.
- Si es la primera vez que lo haces, se te pedirá que habilite la API de Secret Manager.
- Crea un secreto llamado EVENT_FRWD_CRTX_KEY y copia el contenido del archivo JSON xdr_sa_key.json que descargaste como el valor del secreto.
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 en Configuración del SIEM > Feeds
Para configurar un 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 eventos de Cortex XDR de PANW).
- Selecciona Google Cloud Storage como el Tipo de fuente.
- Selecciona Palo Alto Cortex XDR Events 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:URL del bucket de almacenamiento Google Cloud (por ejemplo,
gs://cortex-xdr-events-chronicle
) - URI Is A: Selecciona Directory which includes subdirectories.
- Opciones de eliminación de la fuente: Selecciona una opción de eliminación según tu preferencia.
- URI del bucket de almacenamiento:URL del bucket de almacenamiento Google Cloud (por ejemplo,
Haz clic en Siguiente.
Revisa la nueva configuración del feed 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 a la derecha de la línea.
Selecciona Inhabilitar feed.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- URI del bucket de almacenamiento:URL del bucket de almacenamiento Google Cloud (por ejemplo,
gs://cortex-xdr-events-chronicle
) - URI Is A: Selecciona Directory which includes subdirectories.
Opciones de eliminación de la fuente: Selecciona una opción de eliminación según tu preferencia.
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 activo: Es el espacio de nombres asociado con el feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Configura el acceso JSON secreto a Cloud Storage
- Accede a 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 Storage y lector de depósitos heredados de Storage al bucket cortex-xdr-events-chronicle creado 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 acceso de Visualizador de objetos de almacenamiento (roles/storage.objectViewer) al bucket cortex-xdr-events-chronicle creado anteriormente.
Configura la transferencia de registros de eventos de PANW Cortex XDR a 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.git
Ejecuta el siguiente comando para ir al directorio:
cd google-cloud-cortex-chronicle/
Abre el archivo
env.properties
con 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-chronicle # 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=30
Otorga los permisos necesarios al script de
deploy.sh
:chmod 744 deploy.sh
Ejecuta la secuencia de comandos
deploy.sh
:./deploy.sh
Identifica la cuenta de servicio de Cloud Job utilizada en el resultado del script.
Otorga a la cuenta de servicio de Cloud Job permiso de Secret Manager Secret Ancestor 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 SecOps de Google, ve a Configuración del SIEM > 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 |
Asignado directamente |
action_file_size |
target.file.size |
Se asigna y convierte directamente a un número entero sin signo. |
action_local_ip |
principal.ip |
Se asignan y se combinan directamente con otras direcciones IP. |
action_local_port |
principal.port |
Se asigna y convierte directamente en un número entero |
action_module_path |
target.process.file.full_path |
Asignado directamente |
action_network_connection_id |
network.session_id |
Asignado 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 |
Asignado directamente |
action_process_image_md5 |
target.process.file.md5 |
Asignado directamente |
action_process_image_path |
target.process.file.full_path |
Asignado directamente |
action_process_image_sha256 |
target.process.file.sha256 |
Asignado directamente |
action_process_os_pid |
target.process.pid |
Se asigna y convierte directamente en una cadena |
action_process_user_sid |
target.user.windows_sid |
Asignado directamente |
action_process_username |
target.user.userid , target.administrative_domain |
Se convierten a minúsculas, se analizan para determinar el dominio y el usuario, y se asignan según corresponda. |
action_registry_data |
target.registry.registry_value_data |
Asignado directamente |
action_registry_key_name |
target.registry.registry_key |
Asignado directamente |
action_registry_value_name |
target.registry.registry_value_name |
Asignado directamente |
action_remote_ip |
target.ip |
Se asignan y se combinan directamente con otras direcciones IP. |
action_remote_port |
target.port |
Se asigna y convierte directamente en un número entero |
action_total_download |
network.received_bytes |
Se asigna y convierte directamente a un número entero sin signo. |
action_total_upload |
network.sent_bytes |
Se asigna y convierte directamente a un número entero sin signo. |
agent_hostname |
principal.hostname , observer.hostname |
En minúsculas y asignado |
agent_ip_addresses |
observer.ip |
Se analizan como JSON, se dividen en IPs individuales y se combinan. |
agent_os_sub_type |
target.platform_version |
Asignado directamente |
event_id |
metadata.product_log_id |
Asignado directamente |
event_sub_type |
metadata.product_event_type |
Se convirtió en una cadena y se usó para la asignación condicional de metadata.event_type y metadata.product_event_type . |
event_timestamp |
metadata.event_timestamp , timestamp |
Se convierte en una cadena, se analiza como una marca de tiempo UNIX_MS y se asigna. |
event_type |
metadata.event_type |
Se convirtió en una cadena y se usó para la asignación condicional de metadata.event_type y metadata.product_event_type . |
os_actor_process_command_line |
principal.process.command_line |
Asignado directamente |
os_actor_process_image_md5 |
principal.process.file.md5 |
Asignado directamente |
os_actor_process_image_path |
principal.process.file.full_path |
Asignado directamente |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
Asignado directamente |
os_actor_process_instance_id |
principal.process.product_specific_process_id |
Tiene el prefijo "PAN:" y se asigna. |
os_actor_process_os_pid |
principal.process.pid |
Se convirtió en una cadena y se asignó |
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 convierten a minúsculas, se analizan para determinar el dominio y el usuario, y se asignan según corresponda. |
_action |
security_result.action |
Se combinó en _security_result y, luego, se asignó |
metadata.log_type |
metadata.log_type |
Está codificado como "PAN_CORTEX_XDR_EVENTS". |
metadata.product_name |
metadata.product_name |
Se codificó de forma rígida como "Cortex XDR". |
metadata.vendor_name |
metadata.vendor_name |
Codificado de forma rígida como "PAN" |
target.platform |
target.platform |
Se establece en "WINDOWS" si agent_os_sub_type contiene "Windows". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.