Recopila registros de eventos de Cortex XDR de Palo Alto

Compatible con:

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

  1. Accede a la consola de Google Cloud .
  2. Ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  3. Haz clic en Crear.

  4. 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:

  5. 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.
    
  6. 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.
    
  7. 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.

  8. 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.

  9. 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.

  10. Haz clic en Crear.

Configura el reenvío de eventos de Cortex XDR

  1. Accede a la IU web de Cortex XDR.
  2. Ve a Configuración > Configuraciones > Administración de datos > Reenvío de eventos.
  3. Activa las licencias en la sección Activación.
  4. Habilita GB Event Forwarding para exportar los registros analizados de Cortex XDR Pro por GB a un SIEM externo para su almacenamiento.
  5. Habilita Endpoints Event Forwarding para exportar datos de extremos sin procesar para Cortex XDR Pro EP y Cloud Endpoints.
  6. Guarda la selección.
  7. Copia la ruta de almacenamiento que se muestra.
  8. Genera y descarga el token web JSON de la cuenta de servicio, que contiene la clave de acceso.
  9. Guárdala en una ubicación segura.

Configura Google Cloud Secret Manager

  1. Accede a GCP.
  2. Ve a la página de Secret Manager.
  3. Si es la primera vez que lo haces, se te pedirá que habilite la API de Secret Manager.
  4. 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:

  1. Ve a SIEM Settings > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de eventos de Cortex XDR de PANW).
  5. Selecciona Google Cloud Storage como el Tipo de fuente.
  6. Selecciona Palo Alto Cortex XDR Events como el Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio como la Cuenta de servicio de Chronicle.
  8. Haz clic en Siguiente.
  9. 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.
  10. Haz clic en Siguiente.

  11. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

  12. 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.

  13. 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

  1. Accede a GCP.
  2. Ve a la página de Secret Manager.
  3. Selecciona el secreto EVENT_FRWD_CRTX_KEY.
  4. Ve a la pestaña Permisos.
  5. 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

  1. Ve a IAM y administración > IAM.
  2. Ubica la cuenta de servicio de Chronicle.
  3. 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

  1. En Google Cloud, ve a APIs y servicios > Biblioteca.
  2. Habilita las APIs de Cloud Run y Artifact Registry.
  3. Para abrir Cloud Shell, haz clic en el ícono de la barra de navegación superior.
  4. Descarga un código personalizado con el siguiente comando:

    git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
    
  5. Ejecuta el siguiente comando para ir al directorio:

    cd google-cloud-cortex-chronicle/
    
  6. Abre el archivo env.properties con un editor como vi.

  7. 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
    
  8. Otorga los permisos necesarios al script de deploy.sh:

    chmod 744 deploy.sh
    
  9. Ejecuta la secuencia de comandos deploy.sh:

    ./deploy.sh
    
  10. Identifica la cuenta de servicio de Cloud Job utilizada en el resultado del script.

  11. 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).

  12. Ve a Secret Manager > EVENT_FRWD_CRTX_KEY (secreto) > Permisos.

  13. 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.