Recoger registros de la plataforma de servicios de archivos de Nasuni
En este documento se explica cómo ingerir registros de la plataforma de servicios de archivos de Nasuni en Google Security Operations mediante un agente de Bindplane. El analizador extrae campos de los registros SYSLOG y JSON. Utiliza patrones grok para analizar el mensaje inicial y, a continuación, aprovecha un filtro JSON para los datos JSON insertados, asignando los campos extraídos al modelo de datos unificado, gestionando varios tipos de eventos (como lecturas de archivos, modificaciones y eventos genéricos) y enriqueciendo los datos con información del proveedor y del producto. También realiza una lógica condicional basada en los campos extraídos para categorizar eventos y rellenar metadatos de UDM.
Antes de empezar
- Asegúrate de que tienes una instancia de Google SecOps.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con
systemd
. - Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso con privilegios a Claroty CTD.
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 otras opciones de instalación, consulta esta 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: NASUNI_FILE_SERVICES 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 la plataforma Nasuni File Service
- Inicia sesión en la interfaz de usuario web de Nasuni Console.
- Ve a Configuración de la consola > Exportaciones de Syslog.
- En la sección Red, introduce los siguientes detalles de configuración:
- Nombre de host: introduzca un nombre único y descriptivo (por ejemplo, syslog de Google SecOps).
- Dirección IP: introduce la dirección IP de Bindplane.
- Puerto: introduce el número de puerto de configuración de Bindplane (por ejemplo, 514 para UDP).
- Protocolo: selecciona UDP (también puedes seleccionar TCP, en función de tu configuración de Bindplane).
- Formato: selecciona SYSLOG+JSON.
- Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
application |
target.application |
Se rellena cuando el campo msg existe y no es JSON, y el campo application no está vacío. |
event_type |
metadata.product_event_type |
Se asigna directamente desde el campo event_type del registro sin procesar. |
gid |
target.group.product_object_id |
Se asigna directamente desde el campo gid del registro sin procesar y se convierte en una cadena. |
groupname |
target.group.group_display_name |
Se asigna directamente desde el campo groupname del registro sin procesar. |
host |
principal.hostname |
Se asigna directamente desde el campo host del registro sin procesar. |
ipaddr |
principal.ip |
Se asigna directamente desde el campo ipaddr del registro sin procesar. |
is_dir |
additional.fields.value.string_value (donde la clave es is_dir ) |
Se asigna directamente desde el campo is_dir del registro sin procesar y se convierte en una cadena. Se ha añadido como campo adicional. |
msg |
metadata.description |
Se rellena cuando el campo msg existe, no es JSON y no se extraen ipaddr ni prin_port de él. También se usa para eventos STATUS_UPDATE. |
newpath |
additional.fields.value.string_value (donde la clave es newpath ) |
Se asigna directamente desde el campo newpath del registro sin procesar. Se ha añadido como campo adicional. |
offset |
additional.fields.value.string_value (donde la clave es offset ) |
Se asigna directamente desde el campo offset del registro sin procesar y se convierte en una cadena. Se ha añadido como campo adicional. |
path |
target.file.full_path |
Se asigna directamente desde el campo path del registro sin procesar. |
pid |
target.process.pid |
Se asigna directamente desde el campo pid del registro sin procesar y se convierte en una cadena. |
prin_port |
principal.port |
Se extrae del campo msg mediante grok cuando msg no es JSON y se convierte en un número entero. |
proc_id |
principal.process.pid |
Se asigna directamente desde el campo proc_id del registro sin procesar. |
product_log_id |
metadata.product_log_id |
Se asigna directamente desde el campo product_log_id del registro sin procesar. |
proto |
metadata.description |
Se asigna directamente desde el campo proto del registro sin procesar. |
resource |
target.resource.resource_subtype |
Se asigna directamente desde el campo resource del registro sin procesar. |
sequence |
additional.fields.value.string_value (donde la clave es sequence ) |
Se asigna directamente desde el campo sequence del registro sin procesar y se convierte en una cadena. Se ha añadido como campo adicional. |
sid |
principal.user.windows_sid |
Se asigna directamente desde el campo sid del registro sin procesar. |
tid |
target.resource.product_object_id |
Se asigna directamente desde el campo tid del registro sin procesar y se convierte en una cadena. |
time |
metadata.event_timestamp.seconds , timestamp.seconds |
La parte de los segundos de la marca de tiempo se extrae del campo time y se usa para rellenar tanto metadata.event_timestamp como timestamp de nivel superior. Se determina mediante una lógica basada en los valores de ipaddr , path y event_type . Puede ser FILE_READ , FILE_MODIFICATION , FILE_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . Valor fijo establecido en el código fuente NASUNI_FILE_SERVICES . Valor fijo establecido en el código fuente Nasuni File Services Platform . Valor fijo establecido en el código fuente Nasuni . |
uid |
additional.fields.value.string_value (donde la clave es uid ) |
Se asigna directamente desde el campo uid del registro sin procesar y se convierte en una cadena. Se ha añadido como campo adicional. |
username |
principal.user.user_display_name |
Se asigna directamente desde el campo username del registro sin procesar. |
volume |
additional.fields.value.string_value (donde la clave es volume ) |
Se asigna directamente desde el campo volume del registro sin procesar. Se ha añadido como campo adicional. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.