Recoger registros de BOTsink de Attivo Networks
En este documento se explica cómo ingerir registros de BOTsink de Attivo Networks en Google Security Operations mediante Bindplane. El analizador primero intenta analizar los mensajes de registro entrantes como JSON. Si no funciona, usa una serie de patrones Grok para extraer campos de mensajes con formato CEF, gestionando varios formatos y posibles errores. Por último, asigna los campos extraídos al esquema del modelo de datos unificado (UDM), lo que enriquece los datos con contexto adicional y estandariza el resultado.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Windows 2016 o versiones posteriores, o un host Linux con
systemd
- Si se ejecuta a través de un proxy, los puertos del cortafuegos están abiertos
- Acceso privilegiado a Attivo Networks
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- 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
- Inicia sesión en 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.
Instalar el agente de Bindplane
Instalación de ventanas
- 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 un terminal con privilegios de superusuario 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 ver más opciones de instalación, consulta la guía de instalación.
Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps
- Accede al archivo de configuración:
- 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. - Abre el archivo con un editor de texto (por ejemplo,
nano
,vi
o Bloc de notas).
- Busca 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
Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
Sustituye
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión 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 Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar Syslog en Attivo Networks BOTsink
- Inicia sesión en la interfaz web de Attiva Networks.
- Ve a Administración > Gestión > Syslog.
- Haga clic en Añadir para crear un perfil de Syslog.
- Proporciona un nombre descriptivo para el perfil.
- En Reenvío de eventos, selecciona Habilitado.
- Proporcione la configuración de los 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 Añadir nueva conexión en la sección del perfil.
- Proporcione los siguientes detalles de configuración:
- Nombre del servidor: introduzca un nombre descriptivo que le ayude a identificar Google SecOps.
- Nombre del perfil: selecciona el perfil syslog de CEF que has creado anteriormente.
- Dirección IP: introduzca la dirección IP del agente de Bindplane.
- Puerto: introduce el número de puerto del agente Bindplane (por ejemplo,
514
para UDP). - Protocolo: selecciona UDP.
- Haz clic en Probar conexión y comprueba que recibes los datos de prueba en el agente de Bindplane y en Google SecOps.
- Haz clic en Aceptar.
Tabla de asignación de 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 intermediario en función de 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 |
|
protocolo | read_only_udm.network.ip_protocol | El valor se toma del campo protocol si es TCP o UDP . |
result | 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 de 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 principal o a la IP en función de la disponibilidad y el formato de estos campos. |
smac | read_only_udm.principal.mac | El valor se toma del campo smac . |
fuente | 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. |
umbral | 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 |
|
nombredeusuario | 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 uno de los siguientes: SCAN_NETWORK , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.