Recoger registros de Palo Alto Networks Traps

Disponible en:

En este documento se explica cómo recoger los registros de Palo Alto Networks Traps en Google Security Operations mediante Bindplane. El analizador gestiona los registros en formatos CSV y de clave-valor, y los transforma en UDM. Utiliza el análisis de grok y CSV para extraer campos, aplica lógica condicional basada en mensajes de registro o valores de campo específicos para asignar campos de UDM y gestiona varios tipos de eventos, como actualizaciones de estado, análisis de redes y creaciones de procesos.

Antes de empezar

  • Asegúrate de que tienes una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con systemd.
  • Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
  • Asegúrate de que tienes acceso con privilegios a Cortex XDR.

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

Instalación de ventanas

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. Ejecuta el siguiente comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalación adicionales

Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. Busca el archivo config.yaml. Normalmente, se encuentra en el directorio /etc/bindplane-agent/ en Linux o en el directorio de instalación en Windows.
    2. Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. Edita el archivo config.yaml de la siguiente manera:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: PAN_EDR
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Sustituye <customer_id> por el ID de cliente real.

  5. Actualiza /path/to/ingestion-authentication-file.json a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión de Google SecOps.

Reinicia el agente de Bindplane para aplicar los cambios

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Servicios o introducir el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar Palo Alto Networks Traps

  1. Inicia sesión en la consola de Cortex XDR ESM.
  2. Selecciona Configuración > ESM > Syslog.
  3. Selecciona la casilla Habilitar syslog.
  4. Proporcione los siguientes detalles de configuración:
    • Servidor Syslog: introduce la dirección IP del agente de Bindplane.
    • Puerto Syslog: introduce el número de puerto configurado en Bindplane. Por ejemplo, 514.
    • Protocolo Syslog: selecciona CEF.
    • Asigna el valor 0 a Tiempo de espera de Keep-Alive.
    • Protocolo de comunicación: selecciona UDP.
  5. En la sección Actividad relacionada con la seguridad, marca las siguientes casillas:
    • Evento de prevención
    • Evento de notificación
    • Evento de detección posterior
  6. Haz clic en Comprobar conectividad > Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
agentId event.idm.read_only_udm.additional.fields.value.string_value El valor de agentId del registro sin procesar se asigna al campo string_value de una estructura anidada en additional.fields. El key de este campo es Agent ID.
agentIp event.idm.read_only_udm.target.ip El valor de agentIp del registro sin procesar se asigna al campo target.ip.
cat event.idm.read_only_udm.security_result.rule_name El valor de cat del registro sin procesar se asigna al campo security_result.rule_name.
class event.idm.read_only_udm.security_result.category_details Se usa junto con subClass para rellenar security_result.category_details con el formato class: subClass.
cs1 event.idm.read_only_udm.principal.application, event.idm.read_only_udm.principal.user.email_addresses Si cs1Label es email y cs1 es una dirección de correo válida, se asigna a principal.user.email_addresses. Si cs1Label es Initiated by, se asigna a principal.application.
cs2 event.idm.read_only_udm.principal.process.command_line, event.idm.read_only_udm.security_result.description Si cs2Label es subtype, se asigna a security_result.description. Si cs2Label es Initiator CMD, se asigna a principal.process.command_line.
cs3 event.idm.read_only_udm.security_result.action_details Si cs3Label es result, se asigna a security_result.action_details.
customerId event.idm.read_only_udm.additional.fields.value.string_value El valor de customerId del registro sin procesar se asigna al campo string_value de una estructura anidada en additional.fields. El key de este campo es Customer ID.
date_time event.idm.read_only_udm.metadata.event_timestamp.seconds Se analiza y se convierte en una marca de tiempo, que se asigna a metadata.event_timestamp.seconds.
desc event.idm.read_only_udm.metadata.description El valor de desc del registro sin procesar se asigna al campo metadata.description.
deviceName event.idm.read_only_udm.target.hostname El valor de deviceName del registro sin procesar se asigna al campo target.hostname.
email_receiver event.idm.read_only_udm.network.email.to Se extrae del campo msg si contiene una dirección de correo electrónico y se asigna a network.email.to.
endpoint_desc event.idm.read_only_udm.target.resource.attribute.labels.value Derivada de isEndpoint: Yes, host is an endpoint. si isEndpoint es 1, No, host is not an endpoint si isEndpoint es 0. El valor de key es Is Endpoint.
eventType event.idm.read_only_udm.metadata.product_event_type, event.idm.read_only_udm.metadata.event_type El valor de eventType del registro sin procesar se asigna al campo metadata.product_event_type. También se usa para derivar metadata.event_type en función de su valor (por ejemplo, Management Audit Logs da como resultado EMAIL_TRANSACTION, XDR Analytics BIOC o Behavioral Threat da como resultado SCAN_NETWORK).
facility event.idm.read_only_udm.additional.fields.value.string_value El valor de facility del registro sin procesar se asigna al campo string_value de una estructura anidada en additional.fields. El key de este campo es Facility.
fileHash event.idm.read_only_udm.principal.process.file.sha256 El valor de fileHash del registro sin procesar, convertido a minúsculas, se asigna al campo principal.process.file.sha256.
filePath event.idm.read_only_udm.principal.process.file.full_path El valor de filePath del registro sin procesar se asigna al campo principal.process.file.full_path.
friendlyName event.idm.read_only_udm.metadata.description El valor de friendlyName del registro sin procesar se asigna al campo metadata.description.
interm_ip event.idm.read_only_udm.intermediary.ip El valor de interm_ip del registro sin procesar se asigna al campo intermediary.ip.
isEndpoint event.idm.read_only_udm.target.resource.attribute.labels.value Se usa para derivar target.resource.attribute.labels.value.
isVdi event.idm.read_only_udm.target.resource.resource_type Si isVdi es 1, target.resource.resource_type se establece en VIRTUAL_MACHINE.
msg event.idm.read_only_udm.security_result.summary El valor de msg del registro sin procesar se asigna al campo security_result.summary. También se usa para extraer email_receiver.
msgTextEn event.idm.read_only_udm.security_result.description El valor de msgTextEn del registro sin procesar se asigna al campo security_result.description.
osType event.idm.read_only_udm.target.platform, event.idm.read_only_udm.target.resource.attribute.labels.value Si osType es 1, target.platform se establece en WINDOWS. Si osType es 2, target.platform se asigna a MAC. Si osType es 4, target.platform se asigna a LINUX. Si osType es 3, su valor se asigna a target.resource.attribute.labels.value con el key OS.
osVersion event.idm.read_only_udm.target.platform_version El valor de osVersion del registro sin procesar se asigna al campo target.platform_version.
product_version event.idm.read_only_udm.metadata.product_version El valor de product_version del registro sin procesar se asigna al campo metadata.product_version.
proto event.idm.read_only_udm.network.ip_protocol Si proto es udp, network.ip_protocol se define como UDP.
recordType event.idm.read_only_udm.additional.fields.value.string_value El valor de recordType del registro sin procesar se asigna al campo string_value de una estructura anidada en additional.fields. El key de este campo es Record Type.
regionId event.idm.read_only_udm.principal.location.country_or_region Si regionId es 10, principal.location.country_or_region se establece en Americas (N. Virginia). Si regionId es 70, principal.location.country_or_region se establece en EMEA (Frankfurt).
request event.idm.read_only_udm.target.url El valor de request del registro sin procesar se asigna al campo target.url.
sec_category_details event.idm.read_only_udm.security_result.category_details El valor de sec_category_details del registro sin procesar se asigna al campo security_result.category_details.
sec_desc event.idm.read_only_udm.security_result.description El valor de sec_desc del registro sin procesar se asigna al campo security_result.description.
serverHost event.idm.read_only_udm.principal.hostname El valor de serverHost del registro sin procesar se asigna al campo principal.hostname.
severity event.idm.read_only_udm.security_result.severity Se asigna a security_result.severity con la siguiente lógica: 2 -> CRÍTICO, 3 -> ERROR, 4 -> MEDIO, 5 -> BAJO y 6 -> INFORMATIVO.
severity_val event.idm.read_only_udm.security_result.severity, event.idm.read_only_udm.security_result.severity_details Si severity_val es 0, security_result.severity_details se asigna a UNKNOWN_SEVERITY. De lo contrario, se asigna a security_result.severity con la siguiente lógica: 6 -> BAJO, 8 -> MEDIO y 9 -> ALTO.
shost event.idm.read_only_udm.principal.hostname El valor de shost del registro sin procesar se asigna al campo principal.hostname.
src_ip event.idm.read_only_udm.principal.ip El valor de src_ip del registro sin procesar se asigna al campo principal.ip.
subClass event.idm.read_only_udm.security_result.category_details Se usa junto con class para rellenar security_result.category_details.
suser event.idm.read_only_udm.principal.user.user_display_name El valor de suser del registro sin procesar, con los corchetes, las barras diagonales inversas y las comillas simples eliminados, se asigna al campo principal.user.user_display_name.
targetprocesscmd event.idm.read_only_udm.target.process.command_line El valor de targetprocesscmd del registro sin procesar se asigna al campo target.process.command_line.
targetprocessname event.idm.read_only_udm.target.application El valor de targetprocessname del registro sin procesar se asigna al campo target.application.
targetprocesssha256 event.idm.read_only_udm.target.process.file.sha256 El valor de targetprocesssha256 del registro sin procesar, convertido a minúsculas, se asigna al campo target.process.file.sha256.
tenantname event.idm.read_only_udm.target.resource.attribute.labels.value El valor de tenantname del registro sin procesar se asigna al campo value de una estructura anidada en target.resource.attribute.labels. El key de este campo es Tenant name.
event.idm.read_only_udm.metadata.event_type El valor predeterminado es STATUS_UPDATE. Se ha cambiado a EMAIL_TRANSACTION si eventType es Management Audit Logs. Se ha cambiado a SCAN_NETWORK si eventType es XDR Analytics BIOC o Behavioral Threat, o si desc es Behavioral Threat. Se ha cambiado a SCAN_PROCESS si desc es Suspicious Process Creation. Su valor debe ser Palo Alto Networks. Su valor debe ser Cortex XDR. Su valor debe ser PAN_EDR. Asigna el valor NETWORK_SUSPICIOUS si eventType es XDR Analytics BIOC o Behavioral Threat, o si desc es Behavioral Threat.

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