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,viou le 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: '/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_labelsRemplacez 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.jsonen 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-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 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 InformationalDéfinissez la fonctionnalité syslog :
logging facility local6Activez les codes temporels en saisissant la commande suivante :
service timestamps log datetimeEnregistrez 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.