Collecter les journaux NetApp ONTAP

Compatible avec:

Ce document explique comment collecter les journaux NetApp ONTAP via Syslog. L'analyseur extrait les champs des messages syslog à l'aide d'expressions régulières. Il mappe ensuite les champs extraits sur les champs UDM (Unified Data Model) correspondants, convertissant ainsi efficacement les données de journaux brutes dans un format structuré pour l'analyse de sécurité.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google Security Operations.
  • Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec systemd.
  • Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
  • Assurez-vous de disposer d'un accès administrateur au cluster NetApp ONTAP.
  • Assurez-vous qu'ONTAP peut communiquer avec le serveur Syslog (Bindplane).

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel BindPlane sera installé.

Obtenir le numéro client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.

Installer l'agent BindPlane

Installation de Windows

  1. Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

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

Installation de Linux

  1. Ouvrez un terminal avec des droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Autres ressources d'installation

Configurer l'agent BindPlane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration:

    • Recherchez le fichier config.yaml. En règle générale, il se trouve dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (nano, vi ou Bloc-notes, par exemple).
  2. Modifiez le fichier config.yaml comme suit :

    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. Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.

  4. Remplacez <customer_id> par le numéro client réel.

  5. Remplacez /path/to/ingestion-authentication-file.json par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'ingestion Google SecOps.

Redémarrez l'agent BindPlane pour appliquer les modifications

  • Sous Linux, pour redémarrer l'agent BindPlane, exécutez la commande suivante:

    sudo systemctl restart bindplane-agent
    
  • Sous Windows, pour redémarrer l'agent BindPlane, vous pouvez utiliser la console Services ou saisir la commande suivante:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer une destination Syslog dans ONTAP

  1. Accédez au cluster ONTAP à l'aide de SSH, puis remplacez <ontap-cluster-ip> par l'adresse IP de gestion de votre cluster ONTAP:

    ssh admin@<ontap-cluster-ip>
    
  2. Vérifiez les filtres et notifications d'événements existants:

    event filter show
    event notification show
    
  3. Créez une destination Syslog, puis remplacez <syslog-server-ip> et <syslog-server-port> par les informations de votre serveur Syslog (Bindplane):

    event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
    
  4. Autres options pour -syslog-transport:

    • udp-unencrypted (par défaut)
    • tcp-non-chiffré
    • tcp-encrypted (pour TLS).
  5. Vérifiez la destination du syslog:

    event notification destination show
    

Configurer des filtres d'événements existants

  • Associez les filtres par défaut à la destination Syslog:

    event notification create -filter-name no-info-debug-events -destinations syslog-ems
    event notification create -filter-name default-trap-events -destinations syslog-ems
    

(Facultatif) Créer et configurer des filtres personnalisés

  1. Filtre des événements d'authentification (connexions/déconnexions): capture les journaux dont la description correspond à "Connexion" ou "Déconnexion":

    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. Filtre des champs de détection de la sécurité: capture les journaux liés à nmsdk_language, nmsdk_platform, nmsdk_version et 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. Filtre des journaux basé sur la gravité: capture les journaux dont la gravité est informative:

    event filter create -filter-name severity_info
    event filter rule add -filter-name severity_info -type include -message-name * -severity info
    
  4. Filtre d'activité réseau: capture les journaux avec src_ip et 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. Filtre des journaux de cible d'URL: capture les journaux avec des informations sur l'URL:

    event filter create -filter-name url_target
    event filter rule add -filter-name url_target -type include -message-name *url* -severity info
    
  6. Appliquer chaque filtre à la destination 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. Vérifiez les notifications:

    event notification show
    

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
code Non mappé
description metadata.description Extrait du message de journal à l'aide d'un modèle Grok. Présente uniquement lorsque la description est "Déconnexion" ou "Connexion".
intermediary_host intermediary.hostname Extrait du message de journal à l'aide d'un modèle Grok.
nmsdk_language security_result.detection_fields.value Extrait du message de journal à l'aide d'un modèle Grok. Cette valeur est ajoutée en tant que "valeur" à un objet detection_fields avec "key" = "nmsdk_language".
nmsdk_platform security_result.detection_fields.value Extrait du message de journal à l'aide d'un modèle Grok. Cette valeur est ajoutée en tant que "valeur" à un objet "detection_fields" avec "key" = "nmsdk_platform".
nmsdk_version security_result.detection_fields.value Extrait du message de journal à l'aide d'un modèle Grok. Cette valeur est ajoutée en tant que "valeur" à un objet detection_fields avec "key" = "nmsdk_version".
netapp_version security_result.detection_fields.value Extrait du message de journal à l'aide d'un modèle Grok. Cette valeur est ajoutée en tant que "valeur" à un objet detection_fields avec "key" = "netapp_version".
product_event_type metadata.product_event_type Extrait du message de journal à l'aide d'un modèle Grok.
security_result.summary security_result.summary Extrait du message de journal à l'aide d'un modèle Grok.
de gravité, security_result.severity Définissez la valeur sur "INFORMATIONAL" si la gravité est "info" (majuscules et minuscules sont prises en compte).
src_ip principal.ip Extrait du message de journal à l'aide d'un modèle Grok.
src_port principal.port Extrait du message de journal à l'aide d'un modèle Grok.
état security_result.summary Extrait du message de journal à l'aide d'un modèle Grok.
ts metadata.event_timestamp.seconds Extrait du message de journal à l'aide d'un modèle Grok et converti en code temporel.
url target.url Extrait du message de journal à l'aide d'un modèle Grok.
utilisateur target.user.userid Extrait du message de journal à l'aide d'un modèle Grok.
extensions.auth.type Définissez cette valeur sur "AUTHTYPE_UNSPECIFIED" si la description est "Déconnexion" ou "Connexion".
metadata.event_type Définissez ce paramètre sur "USER_LOGIN" si la description est "Connexion".
metadata.event_type Définissez ce paramètre sur "USER_LOGOUT" si la description est "Déconnexion".
metadata.event_type Définissez cette valeur sur "SCAN_UNCATEGORIZED" si la description ne correspond pas à "Se connecter" ou "Se déconnecter".
metadata.log_type Définissez-le sur "NETAPP_ONTAP".
metadata.product_name Définissez-le sur "NETAPP_ONTAP".
metadata.vendor_name Définissez-le sur "NETAPP_ONTAP".
target.platform Définissez ce paramètre sur "WINDOWS" si nmsdk_platform contient "windows" (insensible à la casse).

Modifications

2023-04-03

  • Analyseur nouvellement créé.