Recoger registros CEF de ArcSight

Disponible en:

En este documento se explica cómo ingerir registros CEF (Common Event Format) de ArcSight en Google Security Operations mediante Bindplane. El analizador transforma los datos sin procesar en un formato estructurado de modelo de datos unificado (UDM). Extrae campos de los encabezados y las extensiones de CEF, los asigna a campos de UDM y aplica una lógica específica para clasificar eventos como inicios de sesión de usuarios, conexiones de red y accesos a recursos en función de la información extraída.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Un host Windows 2016 o posterior, o un host Linux con systemd
  • Si se ejecuta a través de un proxy, los puertos del cortafuegos están abiertos
  • ArcSight SmartConnector 8.4 (o una versión posterior) instalado en un host con acceso de red al agente de Bindplane
  • Acceso privilegiado al portal de OpenText

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

Instala el agente de Bindplane en tu sistema operativo Windows o Linux siguiendo las instrucciones que se indican a continuación.

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

Para ver más opciones de instalación, consulta la guía de instalación.

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

  1. Accede al archivo de configuración:
    • 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.
    • 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_file_path: '/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
            log_type: 'ARCSIGHT_CEF'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

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
    

Descargar ArcSight SmartConnector

  1. Inicia sesión en el portal de asistencia de OpenText.
  2. Busca y descarga el SmartConnector de ArcSight más reciente para Linux.
  3. Nombre de archivo de ejemplo: ArcSight-Connector-Linux64-8.4.0.8499.0.bin.

Instalar ArcSight SmartConnector

  1. Sube el archivo .bin al servidor de Smart Connector:

    scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
    
  2. Inicia sesión en el servidor SmartConnector mediante SSH y ejecuta el siguiente comando:

    cd /tmp
    chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    ./ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    
  3. Sigue el instalador interactivo:

    • Selecciona el directorio de instalación (por ejemplo, /opt/arcsight/connectors/current).
    • Acepta la licencia.
    • Seleccione Instalar conector cuando se le solicite.

Configurar ArcSight SmartConnector para enviar CEF a Syslog

  1. En el host de SmartConnector, inicia el asistente de destino:

    cd /opt/arcsight/connectors/current/bin
    ./arcsight connectors
    
  2. En el asistente, haz lo siguiente:

    • Seleccione Añadir destino.
    • Selecciona Syslog de CEF.
  3. Proporciona los siguientes detalles de configuración:

    • Host/IP: introduce la dirección IP del agente de Bindplane.
    • Puerto: introduce el número de puerto de tu agente de Bindplane.
    • Protocolo: selecciona UDP.
  4. Completa la configuración y reinicia el conector:

    ./arcsight agents
    
  5. Ejecuta una comprobación de la conectividad (por ejemplo, busca Successfully connected to syslog: X.X.X.X:514).

    tail -f /opt/arcsight/connectors/current/logs/agent.log
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
actuar security_result.action_details Se asigna directamente desde el campo act.
agt principal.ip Se asigna directamente desde el campo agt.
agt principal.asset.ip Se asigna directamente desde el campo agt.
aplicación network.application_protocol Se asigna directamente desde el campo app.
imagen metadata.event_timestamp.seconds Se asigna directamente desde el campo art.
cs2 additional.fields.value.string_value Se asigna directamente desde el campo cs2 cuando cs2Label es EventlogCategory.
cs2Label additional.fields.key Se asigna directamente desde el campo cs2Label cuando su valor es EventlogCategory.
cs3 additional.fields.value.string_value Se asigna directamente desde el campo cs3 cuando cs3Label es Process ID.
cs3Label additional.fields.key Se asigna directamente desde el campo cs3Label cuando su valor es Process ID.
cs5 additional.fields.value.string_value Se asigna directamente desde el campo cs5 cuando cs5Label es Authentication Package Name.
cs5Label additional.fields.key Se asigna directamente desde el campo cs5Label cuando su valor es Authentication Package Name.
cs6 additional.fields.value.string_value Se asigna directamente desde el campo cs6 cuando cs6Label es Logon GUID.
cs6Label additional.fields.key Se asigna directamente desde el campo cs6Label cuando su valor es Logon GUID.
dhost about.hostname Se asigna directamente desde el campo dhost.
dhost target.hostname Se asigna directamente desde el campo dhost.
dntdom about.administrative_domain Se asigna directamente desde el campo dntdom.
dntdom target.administrative_domain Se asigna directamente desde el campo dntdom.
dproc about.process.command_line Se asigna directamente desde el campo dproc.
dproc target.process.command_line Se asigna directamente desde el campo dproc.
dst principal.ip Se asigna directamente desde el campo dst.
dst principal.asset.ip Se asigna directamente desde el campo dst.
dst target.ip Se asigna directamente desde el campo dst.
duid target.user.userid Se asigna directamente desde el campo duid.
duser target.user.user_display_name Se asigna directamente desde el campo duser.
dvc about.ip Se asigna directamente desde el campo dvc.
dvchost about.hostname Se asigna directamente desde el campo dvchost.
eventId additional.fields.value.string_value Se asigna directamente desde el campo eventId.
externalId metadata.product_log_id Se asigna directamente desde el campo externalId.
fname additional.fields.value.string_value Se asigna directamente desde el campo fname.
msg metadata.description Se asigna directamente desde el campo msg.
proto network.ip_protocol Se asigna directamente desde el campo proto. Traduce los nombres de los protocolos a sus respectivas constantes (por ejemplo, tcp a TCP).
rt metadata.event_timestamp.seconds Se asigna directamente desde el campo rt.
shost about.hostname Se asigna directamente desde el campo shost.
shost principal.hostname Se asigna directamente desde el campo shost.
src principal.ip Se asigna directamente desde el campo src.
src principal.asset.ip Se asigna directamente desde el campo src.
src target.ip Se asigna directamente desde el campo src.
sproc principal.process.command_line Se asigna directamente desde el campo sproc.
spt principal.port Se asigna directamente desde el campo spt.
spt target.port Se asigna directamente desde el campo spt.
additional.EventRecordID additional.fields.value.string_value Se asigna directamente desde el campo ad.EventRecordID.
additional.ThreadID additional.fields.value.string_value Se asigna directamente desde el campo ad.ThreadID.
additional.Opcode additional.fields.value.string_value Se asigna directamente desde el campo ad.Opcode.
additional.ProcessID additional.fields.value.string_value Se asigna directamente desde el campo ad.ProcessID.
additional.TargetDomainName additional.fields.value.string_value Se asigna directamente desde el campo ad.TargetDomainName.
additional.Version additional.fields.value.string_value Se asigna directamente desde el campo ad.Version.
deviceExternalId about.asset.hardware.serial_number Se asigna directamente desde el campo deviceExternalId.
deviceInboundInterface additional.fields.value.string_value Se asigna directamente desde el campo deviceInboundInterface.
deviceOutboundInterface additional.fields.value.string_value Se asigna directamente desde el campo deviceOutboundInterface.
PanOSConfigVersion security_result.detection_fields.value Se asigna directamente desde el campo PanOSConfigVersion.
PanOSContentVersion security_result.detection_fields.value Se asigna directamente desde el campo PanOSContentVersion.
PanOSDGHierarchyLevel1 security_result.detection_fields.value Se asigna directamente desde el campo PanOSDGHierarchyLevel1.
PanOSDestinationLocation target.location.country_or_region Se asigna directamente desde el campo PanOSDestinationLocation.
PanOSRuleUUID metadata.product_log_id Se asigna directamente desde el campo PanOSRuleUUID.
PanOSThreatCategory security_result.category_details Se asigna directamente desde el campo PanOSThreatCategory.
PanOSThreatID security_result.threat_id Se asigna directamente desde el campo PanOSThreatID.
about.asset.asset_id Se genera concatenando Palo Alto Networks., el nombre del proveedor (LF) y el campo deviceExternalId.
extensions.auth.type Asigna el valor AUTHTYPE_UNSPECIFIED si el campo event_name contiene logged on.
metadata.description Si el campo description contiene by seguido de una dirección IP, la dirección IP se extrae y se asigna a principal.ip y principal.asset.ip.
metadata.event_type Se determina en función de una serie de comprobaciones condicionales en varios campos, incluidos event_name, principal_*, target_* y device_event_class_id. La lógica determina el tipo de evento más adecuado en función de la información disponible.
metadata.log_type Su valor debe ser ARCSIGHT_CEF.
metadata.product_event_type Se genera concatenando \[, the device_event_class_id field, \] - y el campo name.
metadata.product_name Se asigna el valor NGFW si el campo product_name es LF.
principal.asset.ip Si el campo description contiene by seguido de una dirección IP, la dirección IP se extrae y se asigna a principal.ip y principal.asset.ip.
principal.ip Si el campo description contiene by seguido de una dirección IP, la dirección IP se extrae y se asigna a principal.ip y principal.asset.ip.
security_result.action Se le asigna el valor ALLOW si el campo act es alert. De lo contrario, se le asigna el valor BLOCK.
security_result.severity Se asigna el valor HIGH si el campo sev es mayor o igual que 7. De lo contrario, se asigna el valor LOW.

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