Recopila registros de NetApp ONTAP

Compatible con:

En este documento, se explica cómo transferir registros de NetApp ONTAP a Google Security Operations con el agente de Bindplane.

NetApp ONTAP es un sistema operativo de almacenamiento que genera mensajes de syslog para eventos de autenticación, estado del sistema, actividad de red y operaciones relacionadas con la seguridad. El analizador extrae campos de los mensajes de syslog con expresiones regulares y los asigna al modelo de datos unificado (UDM).

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Windows Server 2016 o versiones posteriores, o host de Linux con systemd
  • Conectividad de red entre el agente de Bindplane y el clúster de NetApp ONTAP
  • Si se ejecuta 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 de administrador al clúster de NetApp ONTAP a través de SSH

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. Descarga el archivo de autenticación de transferencia.
  4. Guarda el archivo de forma segura en el sistema en el que se instalará el agente de BindPlane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. 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

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sc query observiq-otel-collector
    

    El servicio debería mostrarse como RUNNING.

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sudo systemctl status observiq-otel-collector
    

    El servicio debería mostrarse como activo (en ejecución).

Recursos de instalación adicionales

Para obtener más opciones de instalación y solucionar problemas, consulta la guía de instalación del agente de Bindplane.

Configura el agente de BindPlane para transferir registros de Syslog y enviarlos a Google SecOps

Ubica el archivo de configuración

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edita el archivo de configuración

  • Reemplaza todo el contenido de config.yaml con la siguiente configuración:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/netapp_ontap:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: NETAPP_ONTAP
            raw_log_field: body
    
    service:
        pipelines:
            logs/netapp_ontap_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/netapp_ontap
    

Parámetros de configuración

Reemplaza los marcadores de posición que se indican más abajo:

  • Configuración del receptor:

    • listen_address: Dirección IP y puerto que se escucharán:
      • 0.0.0.0 para escuchar en todas las interfaces (recomendado)
      • El puerto 514 es el puerto estándar de syslog (requiere acceso raíz en Linux; usa 1514 para acceso no raíz).
  • Configuración del exportador:

    • creds_file_path: Ruta de acceso completa al archivo de autenticación de la transferencia:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID de cliente copiado de la consola de Google SecOps
    • endpoint: URL del extremo regional:
      • EE.UU.: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Consulta Extremos regionales para obtener la lista completa.

Guarda el archivo de configuración

  • Después de editarlo, guarda el archivo:
    • Linux: Presiona Ctrl+O, luego Enter y, después, Ctrl+X.
    • Windows: Haz clic en Archivo > Guardar

Reinicia el agente de Bindplane para aplicar los cambios

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica que el servicio esté en ejecución:

      sudo systemctl status observiq-otel-collector
      
    2. Revisa los registros en busca de errores:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:

    • Símbolo del sistema o PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Consola de Servicios:

      1. Presiona Win+R, escribe services.msc y presiona Intro.
      2. Busca observIQ OpenTelemetry Collector.
      3. Haz clic con el botón derecho y selecciona Reiniciar.
      4. Verifica que el servicio esté en ejecución:

        sc query observiq-otel-collector
        
      5. Revisa los registros en busca de errores:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura un destino syslog en ONTAP

  1. Accede al clúster de ONTAP con SSH:

    ssh admin@<ontap-cluster-ip>
    
    • Reemplaza <ontap-cluster-ip> por la IP de administración de tu clúster de ONTAP.
  2. Verifica los filtros de eventos y las notificaciones existentes:

    event filter show
    event notification show
    
  3. Crea un destino de syslog. Reemplaza <syslog-server-ip> y <syslog-server-port> por los detalles de tu Bindplane:

    event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
    

    Otras opciones para -syslog-transport:

    • udp-unencrypted (predeterminada)
    • tcp-unencrypted
    • tcp-encrypted (para TLS)
  4. Verifica el destino de syslog:

    event notification destination show
    

Configura filtros de eventos existentes

  • Vincula los filtros predeterminados al destino de 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: Crea y configura filtros personalizados

  1. Filtro de eventos de autenticación (accesos y cierres de sesión):

    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
    
  2. Filtro de campos de detección de seguridad:

    event filter create -filter-name security_fields
    event filter rule add -filter-name security_fields -type include -message-name *nmsdk_language* -severity info
    
  3. Aplica cada filtro al destino de syslog:

    event notification create -filter-name auth_events -destinations syslog-ems
    event notification create -filter-name security_fields -destinations syslog-ems
    
  4. Verifica las notificaciones:

    event notification show
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
code Sin asignar
description metadata.description Se extrae del mensaje de registro con un patrón de grok. Solo está presente cuando la descripción es "Logging out" o "Logging in".
intermediary_host intermediary.hostname Se extrae del mensaje de registro con un patrón de grok.
nmsdk_language security_result.detection_fields.value Se extrae del mensaje de registro con un patrón de grok. Este valor se agrega como un "valor" a un objeto detection_fields con "key" = "nmsdk_language".
nmsdk_platform security_result.detection_fields.value Se extrae del mensaje de registro con un patrón de grok. Este valor se agrega como un "valor" a un objeto detection_fields con "key" = "nmsdk_platform".
nmsdk_version security_result.detection_fields.value Se extrae del mensaje de registro con un patrón de grok. Este valor se agrega como un "valor" a un objeto detection_fields con "key" = "nmsdk_version".
netapp_version security_result.detection_fields.value Se extrae del mensaje de registro con un patrón de grok. Este valor se agrega como un "valor" a un objeto detection_fields con "key" = "netapp_version".
product_event_type metadata.product_event_type Se extrae del mensaje de registro con un patrón de grok.
security_result.summary security_result.summary Se extrae del mensaje de registro con un patrón de grok.
severity security_result.severity Se establece en "INFORMATIONAL" si la gravedad es "info" (no distingue mayúsculas de minúsculas).
src_ip principal.ip Se extrae del mensaje de registro con un patrón de grok.
src_port principal.port Se extrae del mensaje de registro con un patrón de grok.
status security_result.summary Se extrae del mensaje de registro con un patrón de grok.
ts metadata.event_timestamp.seconds Se extrae del mensaje de registro con un patrón de grok y se convierte en una marca de tiempo.
url target.url Se extrae del mensaje de registro con un patrón de grok.
user target.user.userid Se extrae del mensaje de registro con un patrón de grok.
extensions.auth.type Se establece en "AUTHTYPE_UNSPECIFIED" si la descripción es "Cerrando sesión" o "Iniciando sesión".
metadata.event_type Se establece en "USER_LOGIN" si la descripción es "Logging in".
metadata.event_type Se establece en "USER_LOGOUT" si la descripción es "Cerrando sesión".
metadata.event_type Se establece en "SCAN_UNCATEGORIZED" si la descripción no es "Logging in" o "Logging out".
metadata.log_type Se establece en "NETAPP_ONTAP".
metadata.product_name Se establece en "NETAPP_ONTAP".
metadata.vendor_name Se establece en "NETAPP_ONTAP".
target.platform Se establece en "WINDOWS" si nmsdk_platform contiene "windows" (no distingue mayúsculas de minúsculas).
accessLocation event.idm.read_only_udm.principal.ip Se asignó desde el registro de cambios
accessLocation event.idm.read_only_udm.principal.asset.ip Se asignó desde el registro de cambios
deviceId event.idm.read_only_udm.principal.asset_id Se asignó desde el registro de cambios
deviceId event.idm.read_only_udm.principal.asset.asset_id Se asignó desde el registro de cambios
deviceName event.idm.read_only_udm.principal.hostname Se asignó desde el registro de cambios
deviceName event.idm.read_only_udm.principal.asset.hostname Se asignó desde el registro de cambios
domain event.idm.read_only_udm.principal.administarative_domain Se asignó desde el registro de cambios
entityName event.idm.read_only_udm.target.file.names Se asignó desde el registro de cambios
entityPath event.idm.read_only_udm.target.file.full_path Se asignó desde el registro de cambios
entityType event.idm.read_only_udm.target.resource.attribute.labels Se asignó desde el registro de cambios
extension event.idm.read_only_udm.target.resource.attribute.labels Se asignó desde el registro de cambios
entityAccessedTime event.idm.read_only_udm.metadata.event_timestamp Se asignó desde el registro de cambios
alertTimestamp event.idm.read_only_udm.metadata.event_timestamp Se asignó desde el registro de cambios
id event.idm.read_only_udm.metadata.product_log_id Se asignó desde el registro de cambios
userDisplayName event.idm.read_only_udm.principal.user.user_display_name Se asignó desde el registro de cambios
userId event.idm.read_only_udm.principal.user.userid Se asignó desde el registro de cambios
volumeId event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
volumeName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
alertType event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
attributes.dataDestructionDetectedEntityCount event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
attributes.changePercentage event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
severity security_result.severity_details Se asignó desde el registro de cambios
file_extn security_result.detection_fields Se asignó desde el registro de cambios
uid metadata.product_log_id Se asignó desde el registro de cambios
product_name principal.hostname Se asignó desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.