Recoger registros de NetApp ONTAP
En este documento se describe cómo puede recoger los registros de NetApp ONTAP a través de Syslog. El analizador extrae campos de los mensajes syslog mediante expresiones regulares. A continuación, asigna los campos extraídos a los campos de UDM (modelo de datos unificado) correspondientes, lo que convierte los datos de registro sin procesar en un formato estructurado para el análisis de seguridad.
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- 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 de administrador al clúster de NetApp ONTAP.
- Asegúrate de que ONTAP pueda comunicarse con el servidor Syslog (Bindplane).
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á el agente de 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 below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: netapp_ontap 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
En Linux, para reiniciar el agente de Bindplane, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
En Windows, para reiniciar el agente de Bindplane, puedes usar la consola Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar un destino Syslog en ONTAP
Accede al clúster de ONTAP mediante SSH y sustituye
<ontap-cluster-ip>
por la IP de gestión de tu clúster de ONTAP:ssh admin@<ontap-cluster-ip>
Consulta los filtros y las notificaciones de eventos actuales:
event filter show event notification show
Crea un destino Syslog y sustituye
<syslog-server-ip>
y<syslog-server-port>
por los detalles de tu servidor Syslog (Bindplane):event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
Otras opciones de -syslog-transport:
- udp-unencrypted (predeterminado)
- tcp-unencrypted
- tcp-encrypted (para TLS).
Verifica el destino de Syslog:
event notification destination show
Configurar filtros de eventos
Vincula los filtros predeterminados al destino Syslog:
event notification create -filter-name no-info-debug-events -destinations syslog-ems event notification create -filter-name default-trap-events -destinations syslog-ems
Opcional: Crear y configurar filtros personalizados
Filtro de eventos de autenticación (inicios y cierres de sesión): registra los eventos en los que la descripción coincide con "Logging in" o "Logging out".
event filter create -filter-name auth_events event filter rule add -filter-name auth_events -type include -message-name *login* -severity info event filter rule add -filter-name auth_events -type include -message-name *logout* -severity info
Filtro de campos de detección de seguridad: registra los datos relacionados con nmsdk_language, nmsdk_platform, nmsdk_version y netapp_version.
event filter create -filter-name security_fields event filter rule add -filter-name security_fields -type include -message-name *nmsdk_language* -severity info event filter rule add -filter-name security_fields -type include -message-name *nmsdk_platform* -severity info event filter rule add -filter-name security_fields -type include -message-name *nmsdk_version* -severity info event filter rule add -filter-name security_fields -type include -message-name *netapp_version* -severity info
Filtro de registros basado en la gravedad: captura los registros cuya gravedad es informativa:
event filter create -filter-name severity_info event filter rule add -filter-name severity_info -type include -message-name * -severity info
Filtro de actividad de red: captura registros con src_ip y src_port:
event filter create -filter-name network_activity event filter rule add -filter-name network_activity -type include -message-name *src_ip* -severity info event filter rule add -filter-name network_activity -type include -message-name *src_port* -severity info
Filtro de registros de destino de URL: captura registros con información de URL.
event filter create -filter-name url_target event filter rule add -filter-name url_target -type include -message-name *url* -severity info
Aplica cada filtro al destino Syslog:
event notification create -filter-name auth_events -destinations syslog-ems event notification create -filter-name security_fields -destinations syslog-ems event notification create -filter-name severity_info -destinations syslog-ems event notification create -filter-name network_activity -destinations syslog-ems event notification create -filter-name url_target -destinations syslog-ems
Verificar notificaciones:
event notification show
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
programación | Sin asignar | |
description | metadata.description | Se extrae del mensaje de registro mediante un patrón grok. Solo se presenta cuando la descripción es "Cerrando sesión" o "Iniciando sesión". |
intermediary_host | intermediary.hostname | Se extrae del mensaje de registro mediante un patrón grok. |
nmsdk_language | security_result.detection_fields.value | Se extrae del mensaje de registro mediante un patrón grok. Este valor se añade como "value" a un objeto detection_fields con "key" = "nmsdk_language". |
nmsdk_platform | security_result.detection_fields.value | Se extrae del mensaje de registro mediante un patrón grok. Este valor se añade como "value" a un objeto detection_fields con "key" = "nmsdk_platform". |
nmsdk_version | security_result.detection_fields.value | Se extrae del mensaje de registro mediante un patrón grok. Este valor se añade como "value" a un objeto detection_fields con "key" = "nmsdk_version". |
netapp_version | security_result.detection_fields.value | Se extrae del mensaje de registro mediante un patrón grok. Este valor se añade como "value" a un objeto detection_fields con "key" = "netapp_version". |
product_event_type | metadata.product_event_type | Se extrae del mensaje de registro mediante un patrón grok. |
security_result.summary | security_result.summary | Se extrae del mensaje de registro mediante un patrón grok. |
gravedad | security_result.severity | Se asigna el valor "INFORMATIONAL" si la gravedad es "info" (sin distinción entre mayúsculas y minúsculas). |
src_ip | principal.ip | Se extrae del mensaje de registro mediante un patrón grok. |
src_port | principal.port | Se extrae del mensaje de registro mediante un patrón grok. |
status | security_result.summary | Se extrae del mensaje de registro mediante un patrón grok. |
ts | metadata.event_timestamp.seconds | Se extrae del mensaje de registro mediante un patrón grok y se convierte en una marca de tiempo. |
url | target.url | Se extrae del mensaje de registro mediante un patrón grok. |
usuario | target.user.userid | Se extrae del mensaje de registro mediante un patrón grok. |
extensions.auth.type | Se define como "AUTHTYPE_UNSPECIFIED" si la descripción es "Logging out" o "Logging in". | |
metadata.event_type | Se define como "USER_LOGIN" si la descripción es "Logging in". | |
metadata.event_type | Se define como "USER_LOGOUT" si la descripción es "Logging out". | |
metadata.event_type | Se define como "SCAN_UNCATEGORIZED" si la descripción no es "Logging in" o "Logging out". | |
metadata.log_type | Asigna el valor "NETAPP_ONTAP". | |
metadata.product_name | Asigna el valor "NETAPP_ONTAP". | |
metadata.vendor_name | Asigna el valor "NETAPP_ONTAP". | |
target.platform | Se define como "WINDOWS" si nmsdk_platform contiene "windows" (sin distinguir entre mayúsculas y minúsculas). |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.