Collecter les journaux de commutateur Cisco
Ce document explique comment ingérer des journaux de commutateurs Cisco dans Google Security Operations à l'aide d'un agent Bindplane. L'analyseur extrait les champs des messages SYSLOG et les mappe à un modèle de données unifié (UDM) en fonction des modèles et des mots clés identifiés. Il gère un large éventail d'événements, y compris les événements DHCP, SSH, les tentatives de connexion, le trafic réseau et les mises à jour de l'état du système. Il les catégorise et enrichit les données avec des informations de sécurité pertinentes.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec
systemd
. - Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié à un commutateur Cisco.
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 l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
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 les 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 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 (par exemple,
nano
,vi
ou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme 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: '/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: CISCO_SWITCH 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 selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.Mettez à jour
/path/to/ingestion-authentication-file.json
en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.
Redémarrez l'agent Bindplane pour appliquer les modifications.
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :
sudo systemctl restart bindplane-agent
Pour 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 sur un commutateur Cisco
- Connectez-vous au commutateur Cisco.
Élevez les privilèges en saisissant la commande
enable
:Switch> enable Switch#
Passez en mode configuration en saisissant la commande
conf t
:Switch# conf t Switch(config)#
Saisissez les commandes suivantes :
logging host <bindplane-server-ip> transport <tcp/udp> port <port-number> logging source-interface <interface>
- Remplacez
<bindplane-server-ip>
par l'adresse IP de l'agent Bindplane et<port-number>
par le port configuré. - Remplacez
<tcp/udp>
par le protocole d'écoute configuré sur l'agent Bindplane. (par exemple,udp
). - Remplacez
<interface>
par l'ID de l'interface Cisco.
- Remplacez
Définissez le niveau de priorité en saisissant la commande suivante :
logging trap Informational logging console Informational logging severity Informational
Définissez la fonctionnalité syslog :
logging facility local6
Activez les codes temporels en saisissant la commande suivante :
service timestamps log datetime
Enregistrez la modification et quittez l'éditeur.
Configurez les paramètres pour qu'ils soient conservés après le redémarrage en saisissant la commande suivante :
copy running-config startup-config
Table de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
action | security_result.action_details | La valeur de ce champ est dérivée du champ action du journal brut. |
day | ||
description | metadata.description | La valeur de ce champ est dérivée du champ description du journal brut. |
description | security_result.description | La valeur de ce champ est dérivée du champ description du journal brut. |
destination_ip | target.asset.ip | La valeur de ce champ est dérivée du champ destination_ip du journal brut. |
destination_ip | target.ip | La valeur de ce champ est dérivée du champ destination_ip du journal brut. |
destination_port | target.port | La valeur de ce champ est dérivée du champ destination_port du journal brut. |
appareil | principal.asset.hostname | La valeur de ce champ est dérivée du champ device du journal brut. |
appareil | principal.hostname | La valeur de ce champ est dérivée du champ device du journal brut. |
appareil | target.asset.hostname | La valeur de ce champ est dérivée du champ device du journal brut. |
appareil | target.hostname | La valeur de ce champ est dérivée du champ device du journal brut. |
device_ip | principal.asset.ip | La valeur de ce champ est dérivée du champ device_ip du journal brut. |
device_ip | principal.ip | La valeur de ce champ est dérivée du champ device_ip du journal brut. |
device_ip | target.asset.ip | La valeur de ce champ est dérivée du champ device_ip du journal brut. |
device_ip | target.ip | La valeur de ce champ est dérivée du champ device_ip du journal brut. |
établissement | principal.resource.type | La valeur de ce champ est dérivée du champ facility du journal brut. |
header_data | metadata.product_log_id | La valeur de ce champ est dérivée du champ header_data du journal brut. |
header_data | target.asset.ip | La valeur de ce champ est dérivée du champ header_data du journal brut. |
header_data | target.ip | La valeur de ce champ est dérivée du champ header_data du journal brut. |
nom d'hôte | principal.asset.hostname | La valeur de ce champ est dérivée du champ hostname du journal brut. |
nom d'hôte | principal.hostname | La valeur de ce champ est dérivée du champ hostname du journal brut. |
ip | principal.asset.ip | La valeur de ce champ est dérivée du champ ip du journal brut. |
ip | principal.ip | La valeur de ce champ est dérivée du champ ip du journal brut. |
ip_address | principal.asset.ip | La valeur de ce champ est dérivée du champ ip_address du journal brut. |
ip_address | principal.ip | La valeur de ce champ est dérivée du champ ip_address du journal brut. |
ip_protocol | network.ip_protocol | La valeur de ce champ est dérivée du champ ip_protocol du journal brut. |
mac | principal.mac | La valeur de ce champ est dérivée du champ mac du journal brut. |
mnémonique | network.dhcp.opcode | La valeur de ce champ est dérivée du champ mnemonic du journal brut. |
mnémonique | metadata.product_event_type | La valeur de ce champ est dérivée du champ mnemonic du journal brut. |
mois | ||
p_ip | principal.asset.ip | La valeur de ce champ est dérivée du champ p_ip du journal brut. |
p_ip | principal.ip | La valeur de ce champ est dérivée du champ p_ip du journal brut. |
port | target.port | La valeur de ce champ est dérivée du champ port du journal brut. |
priorité | ||
protocol | network.ip_protocol | La valeur de ce champ est dérivée du champ protocol du journal brut. |
reason | ||
règle | security_result.rule_id | La valeur de ce champ est dérivée du champ rule du journal brut. |
sec_result_action | security_result.action | La valeur de ce champ est dérivée du champ sec_result_action du journal brut. |
de gravité, | ||
source | principal.asset.ip | La valeur de ce champ est dérivée du champ source du journal brut. |
source | principal.ip | La valeur de ce champ est dérivée du champ source du journal brut. |
source_ip | network.dhcp.ciaddr | La valeur de ce champ est dérivée du champ source_ip du journal brut. |
source_ip | principal.asset.ip | La valeur de ce champ est dérivée du champ source_ip du journal brut. |
source_ip | principal.ip | La valeur de ce champ est dérivée du champ source_ip du journal brut. |
source_mac | network.dhcp.chaddr | La valeur de ce champ est dérivée du champ source_mac du journal brut. |
source_port | principal.port | La valeur de ce champ est dérivée du champ source_port du journal brut. |
résumé | security_result.summary | La valeur de ce champ est dérivée du champ summary du journal brut. |
temps | ||
timezone | ||
utilisateur | principal.user.userid | La valeur de ce champ est dérivée du champ user du journal brut. |
utilisateur | target.user.userid | La valeur de ce champ est dérivée du champ user du journal brut. |
date | ||
an | ||
extensions.auth.type | MACHINE | |
metadata.log_type | CISCO_SWITCH | |
metadata.vendor_name | Cisco | |
metadata.product_name | Commutateur Cisco | |
network.application_protocol | DHCP | |
network.dhcp.type | DEMANDER |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.