Recoger registros de Vectra Detect

Disponible en:

En este documento se explica cómo ingerir registros de Vectra Detect en Google Security Operations mediante Bindplane. El analizador transforma los registros de los formatos SYSLOG, JSON y CEF en un modelo de datos unificado (UDM). Primero, normaliza los datos eliminando los caracteres y campos innecesarios. Después, usa patrones grok para extraer información de diferentes formatos de registro y, por último, asigna los campos extraídos a los atributos de UDM correspondientes.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un host Windows 2016 o posterior, o Linux con systemd
  • Si se ejecuta a través de un proxy, asegúrese de que los puertos del cortafuegos estén abiertos según los requisitos del agente BindPlane.
  • Acceso con privilegios a la interfaz de usuario de Vectra

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 Bindplane en tu sistema operativo Windows o Linux siguiendo las instrucciones que se indican a continuación.

Instalación de Windows

  1. Abre la petición de comando 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 root 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_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: 'VECTRA_DETECT'
        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
    

Configurar Vectra Detect para enviar Syslog

  1. Inicia sesión en la interfaz de usuario de Vectra Detect.
  2. Ve a Ajustes > Notificaciones.
  3. Ve a la sección Syslog.
  4. Haz clic en Editar para añadir o editar la configuración de Syslog.
    • Destino: introduce la dirección IP del agente de Bindplane.
    • Puerto: introduce el número de puerto del agente de Bindplane.
    • Protocolo: selecciona UDP o TCP en función de la configuración real del agente de Bindplane.
    • Formato: selecciona JSON.
    • Tipos de registro: selecciona los registros que quieras enviar a Google SecOps.
    • Marca la casilla Incluir detalles mejorados.
  5. En la parte derecha, verás tres botones para configurar opciones adicionales:
    • Incluir detecciones clasificadas: si esta opción está desactivada, no se enviarán mensajes syslog cuando se creen o actualicen detecciones clasificadas.
    • Incluir detecciones en la categoría Información: si esta opción está desactivada, no se enviarán mensajes syslog cuando se creen o actualicen detecciones en la categoría Información.
    • Incluir disminuciones de la puntuación de host o de cuenta: si esta opción está desactivada, los mensajes syslog no se enviarán cuando las puntuaciones de amenaza y certeza disminuyan o se mantengan.
  6. Haz clic en Guardar.
  7. Haz clic en Probar para probar la configuración.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
acción read_only_udm.security_result.action Valor tomado del campo "action" si [result] es "true" o "failure" en Audit Events.
category read_only_udm.security_result.category_details Valor tomado del campo "category".
certeza read_only_udm.security_result.confidence Si [certeza] está entre 0 y 35, asigna el valor "LOW_CONFIDENCE". Si [certainty] está entre 35 y 70, asigna el valor "MEDIUM_CONFIDENCE". Si [certeza] está entre 70 y 100, se asigna el valor "HIGH_CONFIDENCE".
dd_bytes_rcvd read_only_udm.network.received_bytes Valor tomado del campo "dd_bytes_rcvd".
dd_bytes_sent read_only_udm.network.sent_bytes Valor tomado del campo "dd_bytes_sent".
dd_dst_dns read_only_udm.target.hostname Valor tomado del campo "dd_dst_dns".
dd_dst_dns read_only_udm.target.asset.hostname Valor tomado del campo "dd_dst_dns".
dd_dst_ip read_only_udm.target.asset.ip Valor tomado del campo "dd_dst_ip".
dd_dst_ip read_only_udm.target.ip Valor tomado del campo "dd_dst_ip".
dd_dst_port read_only_udm.target.port Valor tomado del campo "dd_dst_port".
detection_id read_only_udm.metadata.product_log_id Valor tomado del campo "detection_id".
detection_profile.name read_only_udm.security_result.detection_fields La clave es "detection_profile name" y el valor se toma del campo "detection_profile.name".
detection_profile.scoringDetections read_only_udm.security_result.detection_fields La clave es "detectionprofile scoringDetections{index}" y el valor se toma de cada elemento de la matriz "detection_profile.scoringDetections".
detection_profile.vname read_only_udm.security_result.detection_fields La clave es "detection_profile vname" y el valor se toma del campo "detection_profile.vname".
dest_ip read_only_udm.target.asset.ip Valor tomado del campo "dest_ip" de los eventos de campañas.
dest_ip read_only_udm.target.ip Valor tomado del campo "dest_ip" de los eventos de campañas.
dest_name read_only_udm.target.asset.hostname Valor tomado del campo "dest_name" de los eventos de campañas.
dest_name read_only_udm.target.hostname Valor tomado del campo "dest_name" de los eventos de campañas.
d_type read_only_udm.additional.fields La clave es "d_type" y el valor se toma del campo "d_type".
d_type_vname read_only_udm.additional.fields La clave es "d_type_vname" y el valor se toma del campo "d_type_vname".
dvchost read_only_udm.observer.hostname Valor tomado del campo "dvchost".
dvchost read_only_udm.principal.asset.hostname Valor tomado del campo "dvchost" si [host_name] está vacío en los eventos HOST.
dvchost read_only_udm.principal.hostname Valor tomado del campo "dvchost" si [host_name] está vacío en los eventos HOST.
headend_addr read_only_udm.observer.ip Valor tomado del campo "headend_addr".
headend_addr read_only_udm.principal.asset.ip Valor tomado del campo "headend_addr" si [host_ip] está vacío en Detections Events.
headend_addr read_only_udm.principal.ip Valor tomado del campo "headend_addr" si [host_ip] está vacío en Detections Events.
href read_only_udm.target.url Valor tomado del campo "href".
host_id read_only_udm.target.asset_id El valor es "VectraAI.DETECT:{host_id}" en los eventos HOST.
host_ip read_only_udm.principal.asset.ip Valor tomado del campo "host_ip" de los eventos HOST y Detections.
host_ip read_only_udm.principal.ip Valor tomado del campo "host_ip" de los eventos HOST y Detections.
host_name read_only_udm.principal.asset.hostname Valor tomado del campo "host_name".
host_name read_only_udm.principal.hostname Valor tomado del campo "host_name".
msg_data read_only_udm.security_result.summary Valor tomado del campo "msg_data" de los eventos de auditoría y de estado.
cuadrante read_only_udm.security_result.priority_details Valor tomado del campo "quadrant".
result read_only_udm.security_result.action Si [result] es "true", se asigna el valor "ALLOW". Si [result] es "failure", asigna el valor "BLOCK" en Audit Events.
result read_only_udm.security_result.detection_fields La clave es "result" y el valor se toma del campo "result" de los eventos de auditoría y de estado.
role read_only_udm.target.user.attribute.roles.name Valor tomado del campo "role" de los eventos de auditoría.
gravedad read_only_udm.security_result.severity Si [threat] está entre 0 y 20, asigna el valor "INFORMATIONAL". Si [amenaza] está entre 20 y 40, asigna el valor "BAJO". Si [amenaza] está entre 40 y 60, asigna el valor "MEDIO". Si [amenaza] está entre 60 y 80, asigna el valor "ALTO". Si [amenaza] está entre 80 y 100, se define como "CRÍTICA".
gravedad read_only_udm.security_result.severity_details Valor tomado del campo "severity".
source_ip read_only_udm.principal.asset.ip Valor tomado del campo "source_ip" de los eventos de auditoría y de estado.
source_ip read_only_udm.principal.ip Valor tomado del campo "source_ip" de los eventos de auditoría y de estado.
src read_only_udm.principal.asset.ip Valor tomado del campo "src" de los eventos CEF.
src read_only_udm.principal.ip Valor tomado del campo "src" de los eventos CEF.
src_ip read_only_udm.principal.asset.ip Valor tomado del campo "src_ip" de los eventos de campañas.
src_ip read_only_udm.principal.ip Valor tomado del campo "src_ip" de los eventos de campañas.
src_name read_only_udm.principal.asset.hostname Valor tomado del campo "src_name" si [host_name] y [dvchost] están vacíos.
src_name read_only_udm.principal.hostname Valor tomado del campo "src_name" si [host_name] y [dvchost] están vacíos.
amenaza read_only_udm.security_result.severity Si [threat] está entre 0 y 20, asigna el valor "INFORMATIONAL". Si [amenaza] está entre 20 y 40, asigna el valor "BAJO". Si [amenaza] está entre 40 y 60, asigna el valor "MEDIO". Si [amenaza] está entre 60 y 80, asigna el valor "ALTO". Si [amenaza] está entre 80 y 100, se define como "CRÍTICA".
Evaluado read_only_udm.additional.fields La clave es "triaged" y el valor se toma del campo "triaged".
tipo read_only_udm.metadata.product_event_type Valor tomado del campo "type" de los eventos de salud.
usuario read_only_udm.target.user.userid Valor tomado del campo "user" de los eventos de auditoría.
vectra_timestamp read_only_udm.metadata.event_timestamp Valor tomado del campo "vectra_timestamp".
version read_only_udm.metadata.product_version Valor tomado del campo "version".
read_only_udm.metadata.event_type Se asigna el valor "USER_LOGIN" si [msg_data] contiene "log in" y [user] no está vacío en Audit Events.
read_only_udm.metadata.event_type Se define como "SCAN_HOST" en Eventos de HOST.
read_only_udm.metadata.event_type Se asigna el valor "NETWORK_HTTP" si [host_ip] no está vacío, [principal_present] es true y [target_present] es true en Detections Events.
read_only_udm.metadata.event_type Asigna el valor "STATUS_UPDATE" si [principal_present] es true en Detections Events.
read_only_udm.metadata.event_type Se asigna el valor "NETWORK_CONNECTION" si [principal_present] y [target_present] son verdaderos en los eventos de detección.
read_only_udm.metadata.event_type Se define como "NETWORK_CONNECTION" si [event_type] es "GENERIC_EVENT", [principal_present] es true y [target_present] es true.
read_only_udm.metadata.event_type Se asigna el valor "STATUS_UPDATE" si [event_type] es "GENERIC_EVENT" y [principal_present] es true.
read_only_udm.metadata.log_type Se ha definido como "VECTRA_DETECT".
read_only_udm.metadata.vendor_name Selecciona "Vectra.AI".
read_only_udm.metadata.product_name Selecciona "DETECT".
read_only_udm.network.application_protocol Se define como "HTTP" si [dd_dst_port] es 80.
read_only_udm.network.application_protocol Se define como "HTTPS" si [dd_dst_port] es 443.
read_only_udm.network.application_protocol Se asigna el valor "UNKNOWN_APPLICATION_PROTOCOL" si [principal_present] es true y [target_present] es true en los eventos de detección.
read_only_udm.network.http.method Se ha asignado el valor "METHOD_OTHER".
read_only_udm.extensions.auth.type Se define como "AUTHTYPE_UNSPECIFIED" si [msg_data] contiene "log in" en Audit Events.
is_alert Se asigna el valor "true" si [triaged] es true.

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