Collecter les journaux Dell EMC Data Domain
Version de l'analyseur : 2.0
Ce document explique comment ingérer des journaux Dell EMC Data Domain dans Google Security Operations à l'aide de Bindplane. Le code de l'analyseur Logstash extrait d'abord les champs clés des journaux bruts DELL_EMC_DATA_DOMAIN à l'aide de modèles grok basés sur le format des messages de journal. Ensuite, il mappe les champs extraits aux champs correspondants dans le schéma UDM (Unified Data Model), en enrichissant les données avec un contexte supplémentaire, comme le type d'événement et le résultat de sécurité.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Windows 2016 ou version ultérieure, ou hôte Linux avec
systemd - Si vous exécutez l'application derrière un proxy, les ports de pare-feu sont ouverts.
- Accès privilégié à Dell EMC Data Domain
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à SIEM Settings > Collection Agents (Paramètres 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 où Bindplane sera installé.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- Copiez l'ID client dans la section Organization Details (Informations sur l'organisation) et enregistrez-le.
Installer l'agent Bindplane
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
Installation de fenêtres
- Ouvrez l'invite de commandes 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
Ressources d'installation supplémentaires
Pour plus d'options d'installation, consultez le 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. Il se trouve généralement 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 (par exemple,
nano,viou Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme suit :receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: 'DELL_EMC_DATA_DOMAIN' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsRemplacez le port et l'adresse IP selon les besoins de votre infrastructure.
Remplacez
<customer_id>par l'ID client réel.Mettez à jour
/path/to/ingestion-authentication-file.jsonavec 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émarrer l'agent Bindplane pour appliquer les modifications
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :
sudo systemctl restart bindplane-agentPour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer Syslog pour Dell EMC Data Domain
- Connectez-vous à Dell EMC Data Domain à l'aide de la CLI.
Affichez la configuration actuelle :
log host showActivez l'envoi de messages de journal à d'autres systèmes :
log host enableAjoutez l'adresse IP de l'agent Bindplane à Syslog à l'aide de la commande suivante, en remplaçant
<bindplane-ip>par l'adresse IP réelle de l'agent Bindplane.log host add <bindplane-ip>Ajoutez le port de l'agent Bindplane à Syslog à l'aide de la commande suivante, en remplaçant
<bindplane-port>par le numéro de port réel de l'agent Bindplane.log server-port set <bindplane-port>
Exemples de journaux Dell EMC Data Domain compatibles
SYSLOG + KV
<174>ddsh: {epoch=1649171401;id='AUDIT-DDSH-00001';desc='DDSH CLI command';level=3;user='dummy_user';role='se';app='ddsh';host='dd-host-1';detail='cmd=cifs show detailed-stats';}SYSLOG
<38>sshd[13244]: Accepted publickey for dd-admin from 192.0.2.1 port 57656 ssh2: RSA SHA256:+BWDxlMYuJgfC0LhzacEAUpFHlAZlNOYXAKKJ4SAipQ- JSON
{ "Timestamp": "2024-09-05T13:25:14Z", "EventName": "Participant left session", "EventType": "Session", "Username": "user_9999", "EventDetails": [ { "OldValue": "", "NewValue": "1352719861", "PolicyEnforcementNewValue": null, "PolicyEnforcementOldValue": null, "PropertyName": "ID of affected participant", "PropertyCategory": "AffectedParticipant" }, { "OldValue": "", "NewValue": "User Name 1", "PolicyEnforcementNewValue": null, "PolicyEnforcementOldValue": null, "PropertyName": "Name of affected participant", "PropertyCategory": "AffectedParticipant" } ], "Computer": "HOST-PC-400", "EventId": 35139395 }SYSLOG + XML
<21>1 2024-08-01T12:31:40.791267+02:00 VEEM-HOST-01 Veeam_ONE_Server 7172 - [origin enterpriseId="31023"] Operation:"SendEmail" Email has been sent Data:<data><recipient>recipient@example.com</recipient><subject>VM resetting Information for Virtual Machine "VM_RESTORED_2024"</subject></data>
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| application | read_only_udm.target.application | La valeur est extraite du champ "app" par le premier analyseur grok. |
| cmd | read_only_udm.target.process.command_line | La valeur est extraite du champ "cmd" par le premier analyseur grok, ou du champ "detail" si le champ "cmd" est vide. |
| décroiss. | read_only_udm.metadata.description | La valeur est extraite du champ "desc" par le premier analyseur grok. |
| epoch | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ "epoch" et convertie en un code temporel à l'aide du filtre "date". |
| hôte | read_only_udm.principal.hostname | La valeur est extraite du champ "host" par le premier analyseur grok. |
| id | read_only_udm.metadata.product_event_type | La valeur est extraite du champ "id" par le premier analyseur grok. |
| Pid | read_only_udm.target.process.pid | La valeur est extraite du champ "pid" par le premier analyseur grok. |
| reason | read_only_udm.security_result.description | La valeur est extraite du champ "reason" par le premier analyseur grok. |
| rôle | read_only_udm.principal.user.attribute.roles.name | La valeur est extraite du champ "role" par le premier analyseur grok. |
| session_id | read_only_udm.network.session_id | La valeur est extraite du champ "session_id" par le premier analyseur grok. |
| src_ip | read_only_udm.principal.ip | La valeur est extraite du champ "src_ip" par le deuxième analyseur grok. |
| src_port | read_only_udm.principal.port | La valeur est extraite du champ "src_port" par le deuxième analyseur grok et convertie en entier. |
| timestamp.nanos | read_only_udm.metadata.event_timestamp.nanos | La valeur est extraite du champ "timestamp.nanos" du journal brut. |
| timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ "timestamp.seconds" du journal brut. |
| utilisateur | read_only_udm.target.user.userid | La valeur est extraite du champ "user" par le premier ou le deuxième analyseur grok. |
| read_only_udm.extensions.auth.mechanism | La valeur est définie sur "USERNAME_PASSWORD" si le champ "desc" correspond à des modèles spécifiques liés aux événements de connexion ou de déconnexion de l'utilisateur. | |
| read_only_udm.metadata.event_type | La valeur est déterminée par une série d'instructions conditionnelles basées sur les valeurs d'autres champs, principalement "desc", "src_ip" et "host". | |
| read_only_udm.metadata.log_type | Codé en dur sur "DELL_EMC_DATA_DOMAIN". | |
| read_only_udm.metadata.product_name | Codé en dur sur "DELL_EMC_DATA_DOMAIN". | |
| read_only_udm.metadata.vendor_name | Codé en dur sur "DELL". | |
| read_only_udm.network.http.method | La valeur est extraite du champ "method" par le filtre KV. | |
| read_only_udm.network.http.response_code | La valeur est extraite du champ "response_code" par le filtre KV et convertie en entier. | |
| read_only_udm.network.ip_protocol | La valeur est dérivée du champ « protocol_number_src » à l’aide d’un tableau de conversion et de la configuration « parse_ip_protocol.include ». | |
| read_only_udm.security_result.severity | La valeur est définie sur "MEDIUM" si le champ "message" contient la chaîne "NOTICE". | |
| read_only_udm.target.file.sha256 | La valeur est extraite du champ "sha256" par le deuxième analyseur grok, convertie en minuscules et validée en tant que chaîne hexadécimale. | |
| read_only_udm.target.process.file.full_path | La valeur est extraite du champ "path" ou "file", selon celui qui n'est pas vide. | |
| read_only_udm.target.url | La valeur est extraite du champ "uri" par le filtre KV. | |
host |
event.idm.read_only_udm.principal.ip |
Mappé à partir du journal des modifications |
host |
event.idm.read_only_udm.principal.asset.ip |
Mappé à partir du journal des modifications |
inter_host |
event.idm.read_only_udm.intermediary.hostname |
Mappé à partir du journal des modifications |
msg |
event.idm.read_only_udm.security_result.description |
Mappé à partir du journal des modifications |
Journal des modifications
Consulter le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.