Recopila registros de BOTsink de Attivo Networks
En este documento, se explica cómo transferir los registros de BOTsink de Attivo Networks a Google Security Operations con Bindplane. Primero, el analizador intenta analizar los mensajes de registro entrantes como JSON. Si eso falla, usa una serie de patrones de Grok para extraer campos de mensajes con formato de Common Event Format (CEF) y controlar varios formatos y posibles errores. Por último, asigna los campos extraídos al esquema del modelo de datos unificado (UDM), enriquece los datos con contexto adicional y estandariza el resultado.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Windows 2016 o versiones posteriores, o un host de Linux con
systemd
- Si se ejecuta detrás de un proxy, los puertos del firewall están abiertos.
- Acceso con privilegios a Attivo Networks
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
Instalación de Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación de Linux
- Abre una terminal con privilegios de raíz o sudo.
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 obtener más opciones de instalación, consulta la 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
,vi
o Bloc de notas).
- Ubica el archivo
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: '/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 ingestion_labels: log_type: 'ATTIVO' raw_log_field: body 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.json
a 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 transferencia 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-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Services o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura Syslog en BOTsink de Attivo Networks
- Accede a la IU web de Attiva Networks.
- Ve a Administración > Administración > Syslog.
- Haz clic en Agregar para crear un nuevo perfil de Syslog.
- Proporciona un nombre descriptivo para el perfil.
- En Reenvío de eventos, selecciona Habilitado.
- Proporciona la configuración de estándares de BOTsink:
- Muy bajo: Selecciona Informativo.
- Bajo: Selecciona Advertencia.
- Medio: Selecciona Alerta.
- Alto: Selecciona Crítico.
- Muy alto: Selecciona Emergencia.
- En Formato de mensaje, selecciona CEF.
- Selecciona Agregar nueva conexión en la sección del perfil.
- Proporciona los siguientes detalles de configuración:
- Nombre del servidor: Ingresa un nombre descriptivo que te ayude a identificar Google SecOps.
- Nombre del perfil: Selecciona el perfil de syslog de CEF que creaste antes.
- Dirección IP: Ingresa la dirección IP del agente de Bindplane.
- Puerto: Ingresa el número de puerto del agente de Bindplane (por ejemplo, ingresa
514
para UDP). - Protocolo: Selecciona UDP.
- Haz clic en Probar conexión y verifica que recibas los datos de prueba en el agente de Bindplane y Google SecOps.
- Haz clic en Aceptar.
Tabla de asignación de la UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
alertID | read_only_udm.metadata.product_log_id | El valor se toma del campo alertID . |
gato | read_only_udm.security_result.action_details | El valor se toma del campo cat . |
CEFDeviceProduct | read_only_udm.metadata.product_name | El valor se toma del campo CEFDeviceProduct . |
CEFDeviceVendor | read_only_udm.metadata.vendor_name | El valor se toma del campo CEFDeviceVendor . |
CEFDeviceVersion | read_only_udm.metadata.product_version | El valor se toma del campo CEFDeviceVersion . |
CEFName | Se usa para extraer los campos operation , result , module y descrip . |
|
CEFSeverity | read_only_udm.security_result.severity | Se asigna desde el campo CEFSeverity según estas reglas:: error o warning : HIGH : (?i)critical : CRITICAL : (?i)notice o (?i)MEDIUM : MEDIUM : information , info , Very-Low o Low : LOW |
CEFSignatureID | read_only_udm.security_result.rule_id | El valor se toma del campo CEFSignatureID . |
cef_version | read_only_udm.additional.fields.value.string_value | El valor se toma del campo cef_version . |
read_only_udm.additional.fields.key | Valor estático: CEFVersion |
|
descrip | read_only_udm.metadata.description | El valor se toma del campo descrip . |
dest_domain | read_only_udm.target.domain.name | El valor se toma del campo dest_domain . |
dhost | read_only_udm.target.hostname | El valor se toma del campo dhost si service es NETBIOS . |
dIPDomain | read_only_udm.target.domain.name | El valor se toma del campo dIPDomain si dest_domain está vacío. |
DST | read_only_udm.target.ip | El valor se toma del campo dst . |
dst_os | read_only_udm.target.asset.platform_software.platform_version | El valor se toma del campo dst_os . |
dpt | read_only_udm.target.port | El valor se toma del campo dpt y se convierte en un número entero. |
dvc | read_only_udm.principal.hostname, read_only_udm.target.ip, read_only_udm.intermediary.hostname | La lógica depende de los valores de los campos dvc , src y sip . Se puede asignar al nombre de host principal, a la IP de destino o al nombre de host intermedio según la disponibilidad y el formato de estos campos. |
intf | read_only_udm.additional.fields.value.string_value | El valor se toma del campo intf y se convierte en una cadena. |
read_only_udm.additional.fields.key | Valor estático: intf |
|
mitreTacticName | read_only_udm.security_result.rule_name | El valor se toma del campo mitreTacticName . |
mitreTechniqueId | read_only_udm.security_result.detection_fields.value | El valor se toma del campo mitreTechniqueId . |
read_only_udm.security_result.detection_fields.key | Valor estático: Technique name |
|
mitreTechniqueName | read_only_udm.security_result.detection_fields.value | El valor se toma del campo mitreTechniqueName . |
read_only_udm.security_result.detection_fields.key | Valor estático: Technique name |
|
module | read_only_udm.additional.fields.value.string_value | El valor se toma del campo module . |
read_only_udm.additional.fields.key | Valor estático: module |
|
msg | read_only_udm.metadata.description | El valor se toma del campo msg después de extraer el campo protocol . |
operación | read_only_udm.additional.fields.value.string_value | El valor se toma del campo operation . |
read_only_udm.additional.fields.key | Valor estático: operation |
|
protocol | read_only_udm.network.ip_protocol | El valor se toma del campo protocol si es TCP o UDP . |
Resultado | read_only_udm.security_result.action | Se asigna desde el campo result según estas reglas:: (?i)SUCCESS o (?i)ALLOW : ALLOW : CHALLENGE : CHALLENGE : FAILURE , DENY , SKIPPED o RATE_LIMIT : BLOCK |
rt | read_only_udm.metadata.event_timestamp | El valor se toma del campo rt y se analiza como una marca de tiempo UNIX en milisegundos. |
shost | read_only_udm.principal.hostname | El valor se toma del campo shost . |
sip | read_only_udm.principal.hostname, read_only_udm.principal.ip | La lógica depende de los valores de los campos dvc y sip . Se puede asignar al nombre de host o la IP principal según la disponibilidad y el formato de estos campos. |
smac | read_only_udm.principal.mac | El valor se toma del campo smac . |
source | read_only_udm.principal.hostname | El valor se toma del campo source . |
source_domain | read_only_udm.principal.domain.name | El valor se toma del campo source_domain . |
src | read_only_udm.principal.ip | El valor se toma del campo src . |
subscriberName | read_only_udm.additional.fields.value.string_value | El valor se toma del campo subscriberName . |
read_only_udm.additional.fields.key | Valor estático: Subscriber Name |
|
suser | read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name | El valor se toma del campo suser después de extraer el nombre de usuario. |
threshold | read_only_udm.additional.fields.value.string_value | El valor se toma del campo threshold . |
read_only_udm.additional.fields.key | Valor estático: arp-scan-threshold |
|
usrname | read_only_udm.principal.user.email_addresses | El valor se toma del campo usrname si no está vacío o es N/A . |
vlan | read_only_udm.principal.labels.value | El valor se toma del campo vlan . |
read_only_udm.principal.labels.key | Valor estático: vlan |
|
read_only_udm.metadata.event_type | Se determina en función de los valores de los campos src , smac , shost , dst , protocol , dvc y service . Puede ser una de las siguientes opciones: SCAN_NETWORK , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.