Recoger registros de Vectra Stream

Disponible en:

En este documento se explica cómo ingerir registros de Vectra Stream en Google Security Operations mediante Bindplane. El analizador extrae pares clave-valor de los registros de Vectra Stream, normaliza varios campos en un modelo de datos unificado (UDM) y asigna tipos de registro a tipos de evento de UDM específicos. Gestiona los registros con formato JSON y syslog, descarta los mensajes con formato incorrecto y enriquece los datos con contexto adicional en función de valores de campo específicos.

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 de 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_STREAM'
        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 Stream para enviar Syslog

  1. Inicia sesión en la interfaz de usuario de Vectra (cerebro).
  2. Ve a Configuración > Notificaciones.
  3. Ve a la sección Syslog.
  4. Haz clic en Editar para añadir o editar la configuración de Syslog.
  5. Proporcione los siguientes detalles de configuración:
    • 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.
  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
AA network.dns.authoritative Se ha convertido en booleano a partir de un valor de cadena.
account_session_id network.session_id Asignación directa.
account_session_time network.session_duration Convertido a marca de tiempo a partir de segundos UNIX.
respuestas network.dns.answers.data Asignación directa.
assigned_ip network.dhcp.yiaddr Asignación directa.
beacon_type metadata.description Asignación directa.
beacon_uid network.session_id Asignación directa.
calling_station_id intermediary.asset.product_object_id Asignación directa.
certificate.issuer network.tls.client.certificate.issuer Asignación directa.
certificate.not_valid_after network.tls.client.certificate.not_after Se ha convertido a una marca de tiempo de UNIX o UNIX_MS en función del formato.
certificate.not_valid_before network.tls.client.certificate.not_before Se ha convertido a una marca de tiempo de UNIX o UNIX_MS en función del formato.
certificate.serial network.tls.client.certificate.serial Asignación directa.
certificate.subject network.tls.client.certificate.subject Asignación directa.
certificate.version network.tls.client.certificate.version Asignación directa.
cifrado network.tls.cipher Asignación directa.
cipher_alg network.tls.cipher Asignación directa.
client principal.application Asignación directa.
client_cipher network.tls.client.supported_ciphers Asignación directa.
community_id network.community_id Asignación directa.
compression_alg additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "compression_alg".
connect_info security_result.description Asignación directa.
conn_state metadata.description Se asigna a una descripción basada en el valor de conn_state.
galleta target.user.userid Asignación directa.
curva network.tls.curve Asignación directa.
dhcp_server_ip network.dhcp.giaddr Asignación directa.
dns_server_ips principal.ip Cada IP de la matriz se añade a la matriz principal.ip.
dominio target.domain.name Asignación directa.
dst_display_name target.hostname, target.asset.hostname Asignación directa.
dst_luid target.asset.product_object_id Asignación directa.
duración network.session_duration.seconds Se ha convertido en un número entero a partir de un valor de cadena.
punto final principal.application Asignación directa.
establecido network.tls.established Se ha convertido en booleano a partir de un valor de cadena.
host target.hostname, target.asset.hostname Nombre de host extraído del campo "host".
host_key additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "host_key".
host_key_alg additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "host_key_alg".
host_multihomed additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "host_multihomed" y el valor "subnet %{host_multihomed}".
nombre de host target.hostname, target.asset.hostname Asignación directa.
id.orig_h principal.ip Asignación directa.
id.orig_p principal.port Se ha convertido en un número entero a partir de un valor de cadena.
id.resp_h target.ip, target.asset.ip Asignación directa.
id.resp_p target.port Se ha convertido en un número entero a partir de un valor de cadena.
issuer network.tls.client.certificate.issuer Asignación directa.
ja3 network.tls.client.ja3 Asignación directa.
ja3s network.tls.server.ja3s Asignación directa.
kex_alg additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "kex_alg".
lease_time network.dhcp.lease_time_seconds Se ha convertido en un número entero sin signo a partir de un valor de cadena.
log_type metadata.log_type Asignación directa.
mac principal.mac Asignación directa.
mac_alg additional.fields.value.string_value Se ha añadido a los campos adicionales con la clave "mac_alg".
mail_from network.email.from Asignación directa.
metadata_type metadata.product_event_type Asignación directa.
método network.http.method Asignación directa.
name target.file.full_path Asignación directa.
nas_identifier target.user.attribute.roles.name Asignación directa.
next_protocol network.tls.next_protocol Asignación directa.
orig_hostname principal.hostname Asignación directa.
orig_ip_bytes network.sent_bytes Se ha convertido en un número entero sin signo a partir de un valor de cadena.
orig_sluid principal.hostname Asignación directa.
ruta target.file.full_path Asignación directa.
proto network.ip_protocol Se asigna al nombre del protocolo IP en función del valor numérico.
proxy principal.ip Si el valor es una dirección IP, se añade a la matriz principal.ip.
qclass network.dns.questions.class Se ha convertido en un número entero sin signo a partir de un valor de cadena.
qclass_name network.dns.questions.name Asignación directa.
query network.dns.questions.name, principal.process.command_line Asignación directa.
qtype network.dns.questions.type Se ha convertido en un número entero sin signo a partir de un valor de cadena.
RA network.dns.recursion_available Se ha convertido en booleano a partir de un valor de cadena.
radius_type metadata.description Asignación directa.
rcode network.dns.response_code Se ha convertido en un número entero sin signo a partir de un valor de cadena.
RD network.dns.recursion_desired Se ha convertido en booleano a partir de un valor de cadena.
rcpt_to network.email.reply_to, network.email.to La primera dirección de correo se asigna a reply_to y el resto se añade al array to.
Referente network.http.referral_url Asignación directa.
resp_domain target.domain.name Asignación directa.
resp_hostname target.hostname, target.asset.hostname Asignación directa.
resp_ip_bytes network.received_bytes Se ha convertido en un número entero sin signo a partir de un valor de cadena.
resp_mime_types target.file.mime_type Asignación directa.
result security_result.description Asignación directa.
result_code security_result.action_details Asignación directa.
rtt network.session_duration.seconds Se ha convertido en un número entero a partir de un valor de cadena.
security_result security_result Se ha combinado con el objeto security_result.
sensor_uid observer.asset_id Tiene el formato "Sensor_UID:%{sensor_uid}".
servidor target.application Asignación directa.
server_name network.tls.client.server_name Asignación directa.
servicio target.application Asignación directa.
src_display_name principal.hostname Asignación directa.
src_luid principal.asset.product_object_id Asignación directa.
status security_result.summary Asignación directa.
status_code network.http.response_code Se ha convertido en un número entero a partir de un valor de cadena.
status_msg security_result.summary Asignación directa.
asunto network.email.subject Asignación directa.
correcto security_result.action Se asigna a "ALLOW" si es true y a "BLOCK" si es false.
TC network.dns.truncated Se ha convertido en booleano a partir de un valor de cadena.
trans_id network.dhcp.transaction_id, network.dns.id Se ha convertido en un número entero sin signo a partir de un valor de cadena.
ts metadata.event_timestamp Se ha convertido a marca de tiempo desde varios formatos.
uid metadata.product_log_id Asignación directa.
uri target.url Asignación directa.
user_agent network.http.user_agent Asignación directa.
nombre de usuario principal.user.userid Asignación directa.
version network.tls.version, principal.platform_version Asignación directa.
version_num network.tls.version_protocol Asignación directa.
metadata.event_type Determinado por la lógica del analizador en función de los tipos de registro y de metadatos.
metadata.vendor_name Valor codificado: "Vectra".
metadata.product_name Valor codificado: "Vectra Stream".

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