Recopila registros de Vectra Detect

Se admite en los siguientes sistemas operativos:

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

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un host de Windows 2016 o posterior, o Linux con systemd
  • Si ejecutas el agente detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de BindPlane.
  • Acceso con privilegios a la IU de Vectra

Obtén el archivo de autenticación de transferencia de Google SecOps

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

Obtén el ID de cliente de Google SecOps

  1. Accede a 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.

Instala el agente de BindPlane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

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

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

Instalación en Linux

  1. Abre una terminal con privilegios de administrador o sudo.
  2. Ejecuta el comando siguiente:

    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

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. Ubica el archivo config.yaml. Por lo general, 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 de Servicios o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura Vectra Detect para enviar Syslog

  1. Accede a la IU de Vectra Detect.
  2. Ve a Configuración > Notificaciones.
  3. Ve a la sección Syslog.
  4. Haz clic en Editar para agregar o editar la configuración de Syslog.
    • Destino: Ingresa la dirección IP del agente de BindPlane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane.
    • Protocolo: Selecciona UDP o TCP según la configuración real del agente de Bindplane.
    • Formato: Selecciona JSON.
    • Tipos de registros: Selecciona los registros que deseas enviar a Google SecOps.
    • Selecciona la casilla de verificación Incluir detalles mejorados.
  5. En el lado derecho, puedes ver tres botones de activación para la configuración adicional:
    • Incluir detecciones clasificadas: Cuando esta opción está desactivada, no se envían mensajes de syslog cuando se crean o actualizan detecciones clasificadas.
    • Incluir detecciones en la categoría Info: Cuando esta opción está desactivada, no se envían mensajes de syslog cuando se crean o actualizan detecciones en la categoría Info.
    • Incluir disminuciones en la puntuación de la cuenta o del host: Cuando esta opción está desactivada, no se envían mensajes de syslog cuando las puntuaciones de certeza y amenaza disminuyen o permanecen iguales.
  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 los eventos de auditoría.
category read_only_udm.security_result.category_details Valor tomado del campo "categoría".
certeza read_only_udm.security_result.confidence Si [certeza] está entre 0 y 35, se establece en "LOW_CONFIDENCE". Si [certeza] está entre 35 y 70, se debe establecer en "MEDIUM_CONFIDENCE". Si [certeza] está entre 70 y 100, se debe establecer en "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 Es el valor que se toma del campo "detection_id".
detection_profile.name read_only_udm.security_result.detection_fields La clave es "nombre del perfil de detección" 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 del array "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 Es el valor que se toma del campo "dest_ip" en los eventos de las campañas.
dest_ip read_only_udm.target.ip Es el valor que se toma del campo "dest_ip" en los eventos de las campañas.
dest_name read_only_udm.target.asset.hostname Es el valor que se toma del campo "dest_name" en los eventos de campañas.
dest_name read_only_udm.target.hostname Es el valor que se toma del campo "dest_name" en 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 El valor se toma del campo "dvchost" si [host_name] está vacío en los eventos de HOST.
dvchost read_only_udm.principal.hostname El valor se toma del campo "dvchost" si [host_name] está vacío en los eventos de 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 los eventos de detección.
headend_addr read_only_udm.principal.ip Valor tomado del campo "headend_addr" si [host_ip] está vacío en los eventos de detección.
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 de HOST.
host_ip read_only_udm.principal.asset.ip Valor tomado del campo "host_ip" en los eventos de HOST y Detections.
host_ip read_only_udm.principal.ip Valor tomado del campo "host_ip" en los eventos de 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" en los eventos de auditoría y estado.
cuadrante read_only_udm.security_result.priority_details Valor tomado del campo "cuadrante".
result read_only_udm.security_result.action Si [result] es "true", se establece como "ALLOW". Si [result] es "failure", se establece en "BLOCK" en Audit Events.
result read_only_udm.security_result.detection_fields La clave es "result" y el valor se toma del campo "result" en Audit and Health Events.
rol read_only_udm.target.user.attribute.roles.name Valor tomado del campo "role" en los eventos de auditoría.
gravedad, read_only_udm.security_result.severity Si [amenaza] está entre 0 y 20, se establece en "INFORMATIONAL". Si [amenaza] está entre 20 y 40, se establece en "BAJA". Si [threat] está entre 40 y 60, se debe establecer en "MEDIUM". Si [threat] está entre 60 y 80, se debe establecer como "ALTA". Si [threat] está entre 80 y 100, se establece en "CRÍTICA".
gravedad, read_only_udm.security_result.severity_details Valor tomado del campo "gravedad".
source_ip read_only_udm.principal.asset.ip Valor tomado del campo "source_ip" en los eventos de auditoría y estado.
source_ip read_only_udm.principal.ip Valor tomado del campo "source_ip" en los eventos de auditoría y estado.
src read_only_udm.principal.asset.ip Valor tomado del campo "src" en los eventos de CEF.
src read_only_udm.principal.ip Valor tomado del campo "src" en los eventos de CEF.
src_ip read_only_udm.principal.asset.ip Es el valor que se toma del campo "src_ip" en los eventos de las campañas.
src_ip read_only_udm.principal.ip Es el valor que se toma del campo "src_ip" en los eventos de las campañas.
src_name read_only_udm.principal.asset.hostname Valor que se toma del campo "src_name" si [host_name] y [dvchost] están vacíos.
src_name read_only_udm.principal.hostname Valor que se toma del campo "src_name" si [host_name] y [dvchost] están vacíos.
amenaza read_only_udm.security_result.severity Si [amenaza] está entre 0 y 20, se establece en "INFORMATIONAL". Si [amenaza] está entre 20 y 40, se establece en "BAJA". Si [threat] está entre 40 y 60, se debe establecer en "MEDIUM". Si [threat] está entre 60 y 80, se debe establecer como "ALTA". Si [threat] está entre 80 y 100, se establece en "CRÍTICA".
Se clasificó 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 Es el valor que se toma del campo "type" en Health Events.
usuario read_only_udm.target.user.userid Valor tomado del campo "user" en 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 "versión".
read_only_udm.metadata.event_type Se establece en "USER_LOGIN" si [msg_data] contiene "acceder" y [user] no está vacío en los registros de auditoría.
read_only_udm.metadata.event_type Se establece en "SCAN_HOST" en los eventos de HOST.
read_only_udm.metadata.event_type Se establece en "NETWORK_HTTP" si [host_ip] no está vacío, [principal_present] es verdadero y [target_present] es verdadero en los eventos de detecciones.
read_only_udm.metadata.event_type Se establece en "STATUS_UPDATE" si [principal_present] es verdadero en los eventos de detección.
read_only_udm.metadata.event_type Se establece en "NETWORK_CONNECTION" si [principal_present] es verdadero y [target_present] es verdadero en los eventos de Detecciones.
read_only_udm.metadata.event_type Se establece en "NETWORK_CONNECTION" si [event_type] es "GENERIC_EVENT", [principal_present] es verdadero y [target_present] es verdadero.
read_only_udm.metadata.event_type Se establece en "STATUS_UPDATE" si [event_type] es "GENERIC_EVENT" y [principal_present] es verdadero.
read_only_udm.metadata.log_type Se establece en "VECTRA_DETECT".
read_only_udm.metadata.vendor_name Se debe establecer en "Vectra.AI".
read_only_udm.metadata.product_name Se establece en "DETECT".
read_only_udm.network.application_protocol Se establece en "HTTP" si [dd_dst_port] es 80.
read_only_udm.network.application_protocol Se establece en "HTTPS" si [dd_dst_port] es 443.
read_only_udm.network.application_protocol Se establece en "UNKNOWN_APPLICATION_PROTOCOL" si [principal_present] es verdadero y [target_present] es verdadero en los eventos de Detections.
read_only_udm.network.http.method Se debe establecer en "METHOD_OTHER".
read_only_udm.extensions.auth.type Se establece en "AUTHTYPE_UNSPECIFIED" si [msg_data] contiene "acceder" en Audit Events.
is_alert Se establece como "true" si [triaged] es verdadero.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.