Recopila registros de NetApp ONTAP

Compatible con:

En este documento, se describe cómo puedes recopilar los registros de NetApp ONTAP a través de Syslog. El analizador extrae campos de los mensajes de syslog con expresiones regulares. Luego, asigna los campos extraídos a los campos del UDM (modelo de datos unificado) correspondientes, lo que convierte, de manera eficaz, los datos de registro sin procesar en un formato estructurado para el análisis de seguridad.

Antes de comenzar

  • Asegúrate de tener una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con systemd.
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
  • Asegúrate de tener acceso de administrador al clúster de NetApp ONTAP.
  • Asegúrate de que ONTAP pueda comunicarse con el servidor Syslog (Bindplane).

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. Guarda el archivo de forma segura en el sistema en el que se instalará 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

Instalación de Windows

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. 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

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

  1. 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).
  2. 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
    
  3. Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Reemplaza <customer_id> por el ID de cliente real.

  5. 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.

  • 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 Services o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura un destino de Syslog en ONTAP

  1. Accede al clúster de ONTAP con SSH y reemplaza <ontap-cluster-ip> por la IP de administración de tu clúster de ONTAP:

    ssh admin@<ontap-cluster-ip>
    
  2. Verifica los filtros y las notificaciones de eventos existentes:

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

    event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
    
  4. Otras opciones para -syslog-transport:

    • udp-unencrypted (predeterminado)
    • tcp-unencrypted
    • tcp-encrypted (para TLS).
  5. Verifica el destino de Syslog:

    event notification destination show
    

Configura los 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 salidas): Captura registros en los que la descripción coincide con "Acceso" o "Salida":

    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: Captura registros 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
    
  3. Filtro de registros basados en la gravedad: Captura registros en los que la gravedad es informativa:

    event filter create -filter-name severity_info
    event filter rule add -filter-name severity_info -type include -message-name * -severity info
    
  4. 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
    
  5. Filtro de registros de objetivos 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
    
  6. 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
    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
    
  7. Verifica las notificaciones:

    event notification show
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
código Sin asignación
descripción metadata.description Se extrae del mensaje de registro con un patrón de grok. Presente solo cuando la descripción sea "Salir" o "Acceder".
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 "valor" a un objeto detection_fields con "clave" = "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 "clave" = "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 "valor" a un objeto detection_fields con "clave" = "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 "valor" a un objeto detection_fields con "clave" = "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.
gravedad, security_result.severity Establece el valor 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.
estado 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.
usuario target.user.userid Se extrae del mensaje de registro con un patrón de grok.
extensions.auth.type Establece el valor en "AUTHTYPE_UNSPECIFIED" si la descripción es "Salir" o "Acceder".
metadata.event_type Establece el valor en "USER_LOGIN" si la descripción es "Acceder".
metadata.event_type Establece el valor en "USER_LOGOUT" si la descripción es "Salir".
metadata.event_type Establece el valor en "SCAN_UNCATEGORIZED" si la descripción no es "Acceder" o "Salir".
metadata.log_type Establece el valor en “NETAPP_ONTAP”.
metadata.product_name Establece el valor en “NETAPP_ONTAP”.
metadata.vendor_name Establece el valor en “NETAPP_ONTAP”.
target.platform Establece el valor en "WINDOWS" si nmsdk_platform contiene "windows" (sin distinción entre mayúsculas y minúsculas).

Cambios

2023-04-03

  • Sin embargo, el analizador se creó recientemente.