Collecter les journaux de commutateur Cisco

Version de l'analyseur : 27.0

Compatible avec :

Ce document explique comment ingérer les journaux de commutateur Cisco dans Google Security Operations à l'aide de l'agent Bindplane.

Les commutateurs Cisco génèrent des messages syslog pour les changements d'état des ports, les événements spanning tree, les correspondances ACL, l'authentification et les opérations système. L'analyseur extrait les champs à l'aide de modèles Grok et les mappe au modèle de données unifié (UDM).

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et le commutateur Cisco
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • Accès privilégié à l'interface de ligne de commande du commutateur Cisco

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.
  4. Enregistrez le fichier de manière sécurisée sur le système sur lequel l'agent Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

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

  1. Ouvrez l'invite de commandes 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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

Installation de Linux

  1. Ouvrez un terminal avec les 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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Ressources d'installation supplémentaires

Pour obtenir d'autres options d'installation et de dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/cisco_switch:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: CISCO_SWITCH
            raw_log_field: body
    
    service:
        pipelines:
            logs/cisco_switch_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/cisco_switch
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • listen_address : adresse IP et port à écouter :
      • 0.0.0.0 pour écouter sur toutes les interfaces (recommandé)
      • Le port 514 est le port syslog standard (nécessite la racine sous Linux ; utilisez 1514 pour les utilisateurs non root).
  • Configuration de l'exportateur :

    • creds_file_path : chemin d'accès complet au fichier d'authentification de l'ingestion :
      • Linux : /etc/bindplane-agent/ingestion-auth.json
      • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id : ID client copié depuis la console Google SecOps
    • endpoint : URL du point de terminaison régional :
      • États-Unis : malachiteingestion-pa.googleapis.com
      • Europe : europe-malachiteingestion-pa.googleapis.com
      • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
      • Pour obtenir la liste complète, consultez Points de terminaison régionaux.

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
    • Windows : cliquez sur Fichier > Enregistrer.

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 observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      ```bash
      sudo systemctl status observiq-otel-collector
      ```
      
    2. Recherchez les erreurs dans les journaux :

      ```bash
      sudo journalctl -u observiq-otel-collector -f
      ```
      
  • Pour redémarrer l'agent Bindplane dans Windows, choisissez l'une des options suivantes :

    • Invite de commande ou PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Localisez le collecteur observIQ OpenTelemetry.
      3. Effectuez un clic droit, puis sélectionnez Redémarrer.
      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurer syslog sur un commutateur Cisco

  1. Connectez-vous au commutateur Cisco.
  2. Élever les privilèges :

    enable
    
  3. Passez en mode configuration :

    conf t
    
  4. Configurer syslog :

    logging host <BINDPLANE_IP> transport <tcp/udp> port <PORT>
    logging source-interface <INTERFACE>
    
    • Remplacez <BINDPLANE_IP> par l'adresse IP de l'agent Bindplane.
    • Remplacez <tcp/udp> par le protocole d'écoute configuré (par exemple, udp).
    • Remplacez <INTERFACE> par l'ID de l'interface Cisco.
  5. Définissez le niveau de priorité :

    logging trap Informational
    logging console Informational
    logging severity Informational
    
  6. Définissez le niveau syslog :

    logging facility local6
    
  7. Activez les codes temporels :

    service timestamps log datetime
    
  8. Enregistrez la modification et quittez l'éditeur.

  9. Enregistrez la configuration pour qu'elle soit conservée au redémarrage :

    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.
jour
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.
heure
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
intermediary_ip event.idm.read_only_udm.intermediary.ip et event.idm.read_only_udm.intermediary.asset.ip Mappé à partir du journal des modifications
priority event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
product_log_id event.idm.read_only_udm.metadata.product_log_id Mappé à partir du journal des modifications
_time event.idm.read_only_udm.metadata.collected_timestamp Mappé à partir du journal des modifications
vlan_data event.idm.read_only_udm.intermediary.resource.attribute.labels Mappé à partir du journal des modifications
intermediary_ip event.idm.read_only_udm.intermediary.ip Mappé à partir du journal des modifications
intermediary_ip event.idm.read_only_udm.intermediary.asset.ip Mappé à partir du journal des modifications
time_stamp event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
process_name event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
switch_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
log_seq_num event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
log_seq_num_2 event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
p_interface event.idm.read_only_udm.principal.resource.name Mappé à partir du journal des modifications
audit_session_id event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
mac event.idm.read_only_udm.principal.mac Mappé à partir du journal des modifications
packets event.idm.read_only_udm.network.sent_packets Mappé à partir du journal des modifications
facility event.idm.read_only_udm.principal.resource.resource_subtype Mappé à partir du journal des modifications
seq_num event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
device_hostname event.idm.read_only_udm.principal.hostname et event.idm.read_only_udm.principal.asset.hostname Mappé à partir du journal des modifications
id event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications
seq_num event.idm.read_only_udm.target.user.userid Mappé à partir du journal des modifications
log_message event.idm.read_only_udm.metadata.description Mappé à partir du journal des modifications
syslog_tag event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
syslog_pri event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
appcat event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
applist event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
dstintf event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
dstintfrole event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
mastersrcmac event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
osname event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
poluuid event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
service event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
srchwvendor event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
srcintf event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
srcintfrole event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
srcserver event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
transport event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
trandisp event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
vd event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
vwlid event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
devid event.idm.read_only_udm.intermediary.asset.product_object_id Mappé à partir du journal des modifications
devname event.idm.read_only_udm.intermediary.hostname Mappé à partir du journal des modifications
logid event.idm.read_only_udm.metadata.product_log_id Mappé à partir du journal des modifications
subtype event.idm.read_only_udm.network.direction Mappé à partir du journal des modifications
proto event.idm.read_only_udm.network.ip_protocol Mappé à partir du journal des modifications
rcvdbyte event.idm.read_only_udm.network.received_bytes Mappé à partir du journal des modifications
sentbyte event.idm.read_only_udm.network.sent_bytes Mappé à partir du journal des modifications
sentpkt event.idm.read_only_udm.network.sent_packets Mappé à partir du journal des modifications
duration event.idm.read_only_udm.network.session_duration.seconds Mappé à partir du journal des modifications
sessionid event.idm.read_only_udm.network.session_id Mappé à partir du journal des modifications
srcname event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.principal.hostname Mappé à partir du journal des modifications
srcip event.idm.read_only_udm.principal.asset.ip, event.idm.read_only_udm.principal.ip Mappé à partir du journal des modifications
srcmac event.idm.read_only_udm.principal.asset.mac, event.idm.read_only_udm.principal.mac Mappé à partir du journal des modifications
osname event.idm.read_only_udm.principal.asset.platform_software.platform Mappé à partir du journal des modifications
srcswversion event.idm.read_only_udm.principal.asset.platform_software.platform_version Mappé à partir du journal des modifications
srccountry event.idm.read_only_udm.principal.location.country_or_region Mappé à partir du journal des modifications
transip event.idm.read_only_udm.principal.nat_ip Mappé à partir du journal des modifications
srcport event.idm.read_only_udm.principal.port Mappé à partir du journal des modifications
action event.idm.read_only_udm.security_result.action Mappé à partir du journal des modifications
policyid event.idm.read_only_udm.security_result.rule_id Mappé à partir du journal des modifications
policyname event.idm.read_only_udm.security_result.rule_name Mappé à partir du journal des modifications
policytype event.idm.read_only_udm.security_result.rule_type Mappé à partir du journal des modifications
level event.idm.read_only_udm.security_result.severity Mappé à partir du journal des modifications
action event.idm.read_only_udm.security_result.summary Mappé à partir du journal des modifications
dstip event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.target.ip Mappé à partir du journal des modifications
dstcountry event.idm.read_only_udm.target.location.country_or_region Mappé à partir du journal des modifications
dstport event.idm.read_only_udm.target.port Mappé à partir du journal des modifications
device principle.hostname Mappé à partir du journal des modifications
username3 principal.user.userid Mappé à partir du journal des modifications
login_status security_result.summary Mappé à partir du journal des modifications
ecs.version metadata.product_version Mappé à partir du journal des modifications
fileset.name", "flow.locality", "flow.id", "input.type", "netflow.exporter.source_id", and "netflow.exporter.uptime_millis additional.fields Mappé à partir du journal des modifications
network.transport network.ip_protocol Mappé à partir du journal des modifications
netflow.post_nat_source_ipv4_address principal.ip Mappé à partir du journal des modifications
netflow.source_transport_port principal.port Mappé à partir du journal des modifications
network.direction network.direction Mappé à partir du journal des modifications
intermediary_ip intermediary.ip Mappé à partir du journal des modifications
intermediary_hostname intermediary.hostname Mappé à partir du journal des modifications
principal_host principal.hostname Mappé à partir du journal des modifications
src_mac principal.mac Mappé à partir du journal des modifications
eventSummary metadata.product_event_type Mappé à partir du journal des modifications
error_msg security_result.detection_fields Mappé à partir du journal des modifications
pid principal.process.pid Mappé à partir du journal des modifications
srcPort principal.port Mappé à partir du journal des modifications
srcUser principal.user.userid Mappé à partir du journal des modifications
username1 target.user.userid Mappé à partir du journal des modifications
command target.process.command_line Mappé à partir du journal des modifications
PWD target.process.file.full_path Mappé à partir du journal des modifications
node_id", "cluster_id", "exception", "UniqueId", and "app_id additional.fields Mappé à partir du journal des modifications
DEVICE principal.mac Mappé à partir du journal des modifications
SRC principal.ip Mappé à partir du journal des modifications
SPT principal.port Mappé à partir du journal des modifications
DST target.ip Mappé à partir du journal des modifications
DPT target.port Mappé à partir du journal des modifications
ID network.session_id Mappé à partir du journal des modifications
LEN network.session_duration.seconds Mappé à partir du journal des modifications
PROTO network.ip_protocol Mappé à partir du journal des modifications
IN", "OUT", "PHYSIN", "WINDOW", "RES, "TOS", "PREC", "TTL" ,"URGP", "MAC", "radio", "vap", "auth_type", "sugg_band", "ssid_id", "ssid_profile_name" and "protocol additional.fields Mappé à partir du journal des modifications
client_mac principal.mac Mappé à partir du journal des modifications
aid network.session_id Mappé à partir du journal des modifications
rssi intermediary.asset.product_object_id Mappé à partir du journal des modifications
channel security_result.detection_fields Mappé à partir du journal des modifications
eventSummary", "dhcp_ip", "client_mac", "aid" and "ip_src metadata.product_event_type Mappé à partir du journal des modifications
mac", "src", "sport", "dst", "dport", "action", "protocol", "url" and "signature principal.mac Mappé à partir du journal des modifications
metadata.event_type" and "extensions.auth.type USER_LOGIN Mappé à partir du journal des modifications
eventSummary", "aid", "rssi", "channel", "last_known_client_ip" and "event_type security_result.summary Mappé à partir du journal des modifications
pid target.process.pid Mappé à partir du journal des modifications
app_name target.application Mappé à partir du journal des modifications

Journal des modifications

Afficher le journal des modifications pour ce parseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.