Recopilar registros de eventos de Cortex XDR de Palo Alto

Disponible en:

En este documento se explica cómo ingerir registros de eventos de Palo Alto Cortex XDR en Google Security Operations mediante 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 evento en función de la lógica condicional vinculada a los campos event_type y event_sub_type. También gestiona las conexiones de red, las operaciones de archivos y registros, la información de los procesos y la actividad de los usuarios.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Google Cloud El almacenamiento está configurado y activo en tu Google Cloud entorno
  • Acceso privilegiado a Google Cloud y permisos adecuados
  • Acceso privilegiado a Cortex XDR de Palo Alto

Crea un Google Cloud segmento de almacenamiento

  1. Inicia sesión en la Google Cloud consola.
  2. Ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  3. Haz clic en Crear.

  4. En la página Crear un segmento, introduce la información del segmento. Después de cada uno de los pasos siguientes, haga clic en Continuar para pasar al siguiente:

  5. En la sección Empezar, haz lo siguiente: * Introduce un nombre único que cumpla los requisitos de los nombres de los contenedores (por ejemplo, cortex-xdr-events-googlesecops). * Para habilitar el espacio de nombres jerárquico, haga clic en la flecha para desplegar la sección Optimizar para cargas de trabajo orientadas a archivos y con gran cantidad de datos y, a continuación, seleccione Habilitar espacio de nombres jerárquico en este contenedor.

    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 donde se almacenarán permanentemente los datos de los objetos de tu segmento.

    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 segmento o Autoclass para gestionar automáticamente la clase de almacenamiento de los datos del segmento.

  8. En la sección Elige cómo quieres 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 segmento.

  9. En la sección Elige cómo proteger los datos de los objetos, haz lo siguiente: * Selecciona cualquiera de las opciones de Protección de datos que quieras definir para tu cubo. * Para elegir cómo se cifrarán los datos de los objetos, haz clic en la flecha del desplegable Cifrado de datos y selecciona un Método de cifrado de datos.

  10. Haz clic en Crear.

Configurar el reenvío de eventos de Cortex XDR

  1. Inicia sesión en la interfaz web de Cortex XDR.
  2. Ve a Configuración > Configuraciones > Gestión de datos > Reenvío de eventos.
  3. Activa las licencias en la sección Activación.
  4. Habilita Reenvío de eventos por GB para exportar registros analizados de Cortex XDR Pro por GB a un SIEM externo para almacenarlos.
  5. Habilita Reenvío de eventos de Endpoints para exportar datos de endpoints sin procesar a 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árdalo en un lugar seguro.

Configurar Google Cloud Secret Manager

  1. Inicia sesión en GCP.
  2. Ve a la página Secret Manager.
  3. Si es la primera vez que lo haces, se te pedirá que habilite la API Secret Manager.
  4. Crea un secreto llamado EVENT_FRWD_CRTX_KEY y copia el contenido del archivo JSON xdr_sa_key.json que has descargado como valor del secreto.

Configurar feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. En la página siguiente, haga clic en Configurar un solo feed.
  4. En el campo Nombre del feed, escriba un nombre para el feed (por ejemplo, Registros de eventos de PANW Cortex XDR).
  5. Selecciona Google Cloud Storage V2 como Tipo de origen.
  6. Selecciona Palo Alto Cortex XDR Events (Eventos de Cortex XDR de Palo Alto) como Log type (Tipo de registro).
  7. Haz clic en Obtener cuenta de servicio en Cuenta de servicio de Chronicle.
  8. Haz clic en Siguiente.
  9. Especifique los valores de los siguientes parámetros de entrada:

    • URI de segmento de almacenamiento: Google Cloud URL del segmento de almacenamiento (por ejemplo, gs://cortex-xdr-events-chronicle/). Esta URL debe terminar con una barra inclinada (/).
    • Opciones de eliminación de la fuente: selecciona la opción que prefieras.
  10. Haz clic en Siguiente.

  11. Revise la configuración de la nueva fuente en la pantalla Finalizar y, a continuación, haga clic en Enviar.

  12. Una vez creado el feed, búscalo en la lista Feeds y haz clic en los tres puntos de acción situados a la derecha de la línea.

  13. Selecciona Inhabilitar feed.

Configurar el acceso JSON secreto a Cloud Storage

  1. Inicia sesión en GCP.
  2. Ve a la página Secret Manager.
  3. Selecciona el secreto EVENT_FRWD_CRTX_KEY.
  4. Ve a la pestaña Permisos.
  5. Proporciona acceso Administrador de objetos de Storage y Lector de segmentos heredados de Storage al segmento cortex-xdr-events-chronicle creado anteriormente.

Configurar los permisos de Google SecOps para Cloud Storage

  1. Ve a IAM y administración > IAM.
  2. Busca la cuenta de servicio de Chronicle.
  3. Concede el acceso Visor de objetos de Storage (roles/storage.objectViewer) al segmento cortex-xdr-events-chronicle que has creado anteriormente.

Configurar la ingestión de registros de eventos de PANW Cortex XDR en Project Cloud Storage

  1. En Google Cloud, vaya a APIs y servicios > Biblioteca.
  2. Habilita las APIs Cloud Run y Artifact Registry.
  3. Abre Cloud Shell haciendo clic en el icono 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. Ve al directorio ejecutando el siguiente comando:

    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. Proporciona los permisos necesarios a la secuencia de comandos 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 que se ha usado en la salida de la secuencia de comandos.

  11. Concede a la cuenta de servicio Cloud Job el permiso Ancestro de secreto de Secret Manager para acceder al secreto que has creado antes (en nuestro ejemplo, EVENT_FRWD_CRTX_KEY).

  12. Ve a Secret Manager > EVENT_FRWD_CRTX_KEY (secreto) > Permissions (Gestor de secretos > EVENT_FRWD_CRTX_KEY [secreto] > Permisos).

  13. En la plataforma Google SecOps, vaya a Configuración de 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 Asignación directa
action_file_size target.file.size Asignado directamente y convertido en un entero sin signo
action_local_ip principal.ip Asignadas y combinadas directamente con otras direcciones IP
action_local_port principal.port Se asigna y se convierte directamente en un número entero.
action_module_path target.process.file.full_path Asignación directa
action_network_connection_id network.session_id Asignación directa
action_network_protocol network.ip_protocol Se ha cambiado el nombre a protocol_number_src, se ha analizado con parse_ip_protocol.include y se ha asignado a network.ip_protocol
action_process_image_command_line target.process.command_line Asignación directa
action_process_image_md5 target.process.file.md5 Asignación directa
action_process_image_path target.process.file.full_path Asignación directa
action_process_image_sha256 target.process.file.sha256 Asignación directa
action_process_os_pid target.process.pid Se asignan directamente y se convierten en una cadena.
action_process_user_sid target.user.windows_sid Asignación directa
action_process_username target.user.userid, target.administrative_domain Se convierte a minúsculas, se analiza para obtener el dominio y el usuario, y se asigna en consecuencia.
action_registry_data target.registry.registry_value_data Asignación directa
action_registry_key_name target.registry.registry_key Asignación directa
action_registry_value_name target.registry.registry_value_name Asignación directa
action_remote_ip target.ip Asignadas y combinadas directamente con otras direcciones IP
action_remote_port target.port Se asigna y se convierte directamente en un número entero.
action_total_download network.received_bytes Asignado directamente y convertido en un entero sin signo
action_total_upload network.sent_bytes Asignado directamente y convertido en un entero sin signo
agent_hostname principal.hostname, observer.hostname En minúsculas y asignado
agent_ip_addresses observer.ip Analizadas como JSON, divididas en IPs individuales y combinadas
agent_os_sub_type target.platform_version Asignación directa
event_id metadata.product_log_id Asignación directa
event_sub_type metadata.product_event_type Se ha convertido en una cadena y se ha usado para la asignación condicional de metadata.event_type y metadata.product_event_type.
event_timestamp metadata.event_timestamp, timestamp Se ha convertido en una cadena, se ha analizado como una marca de tiempo UNIX_MS y se ha asignado.
event_type metadata.event_type Se ha convertido en una cadena y se ha usado para la asignación condicional de metadata.event_type y metadata.product_event_type.
os_actor_process_command_line principal.process.command_line Asignación directa
os_actor_process_image_md5 principal.process.file.md5 Asignación directa
os_actor_process_image_path principal.process.file.full_path Asignación directa
os_actor_process_image_sha256 principal.process.file.sha256 Asignación directa
os_actor_process_instance_id principal.process.product_specific_process_id Prefijado con "PAN:" y asignado
os_actor_process_os_pid principal.process.pid Convertido en cadena y asignado
os_actor_primary_user_sid principal.user.windows_sid Se asigna si empieza por "S-" o "s-".
os_actor_primary_username principal.user.userid, principal.administrative_domain Se convierte a minúsculas, se analiza para obtener el dominio y el usuario, y se asigna en consecuencia.
_action security_result.action Se ha combinado en _security_result y, a continuación, se ha asignado
metadata.log_type metadata.log_type Codificado como "PAN_CORTEX_XDR_EVENTS"
metadata.product_name metadata.product_name Codificado como "Cortex XDR"
metadata.vendor_name metadata.vendor_name Codificado como "PAN"
target.platform target.platform Se asigna el valor "WINDOWS" si agent_os_sub_type contiene "Windows".

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.