Collecter les journaux NetApp ONTAP
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.
Installer l'agent BindPlane
Installation de Windows
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec des droits root ou sudo.
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
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent BindPlane pour ingérer Syslog et l'envoyer à Google SecOps
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).
- Recherchez le fichier
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
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.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
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>
Vérifiez les filtres et notifications d'événements existants:
event filter show event notification show
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
Autres options pour -syslog-transport:
- udp-unencrypted (par défaut)
- tcp-non-chiffré
- tcp-encrypted (pour TLS).
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
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
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
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
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
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
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
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éé.