Recopila registros de Vectra Detect
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
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- 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
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- 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
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el comando siguiente:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación en Linux
- Abre una terminal con privilegios de administrador o sudo.
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
- Para obtener más opciones de instalación, consulta esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- 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. - Abre el archivo con un editor de texto (por ejemplo,
nano,vio Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yamlde 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- Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
- Reemplaza
<CUSTOMER_ID>por el ID de cliente real. - Actualiza
/path/to/ingestion-authentication-file.jsona la ruta de acceso en la que se guardó el archivo de autenticación en la sección Obtén el archivo de autenticación de la transferencia de datos 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-agentPara 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
- Accede a la IU de Vectra Detect.
- Ve a Configuración > Notificaciones.
- Ve a la sección Syslog.
- 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.
- 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.
- Haz clic en Guardar.
- 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.