Raccogli i log di Cisco Catalyst Center (in precedenza DNA Center)

Versione parser: 2.0

Supportato in:

Questo documento spiega come importare i log di Cisco Catalyst Center (precedentemente noto come DNA Center) in Google Security Operations utilizzando due approcci diversi. Scegli l'opzione più adatta al tuo ambiente e ai tuoi requisiti.

Cisco Catalyst Center è una piattaforma centralizzata di gestione e automazione della rete per reti aziendali, filiali e IoT. Fornisce networking basato sull'intent, gestione delle policy, provisioning dei dispositivi, analisi di garanzia e rilevamento dei problemi basato sull'AI nell'infrastruttura cablata e wireless. Catalyst Center genera eventi relativi all'integrità della rete, alle modifiche dello stato del dispositivo, alle violazioni delle norme di sicurezza e ai problemi di garanzia.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Accesso con privilegi alla console di gestione di Cisco Catalyst Center.
  • Per l'opzione 1: Windows Server 2016 o versioni successive oppure un host Linux con systemd per l'agente Bindplane.
  • Per l'opzione 2: connettività di rete tra Cisco Catalyst Center e l'endpoint webhook di Google SecOps.

Opzione 1: integrazione Syslog utilizzando l'agente Bindplane

Questa opzione utilizza l'inoltro di syslog da Cisco Catalyst Center all'agente Bindplane, che a sua volta inoltra i log strutturati a Google SecOps.

Recuperare il file di autenticazione dell'importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di Windows

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps

Individua il file di configurazione

  • Individua il file di configurazione sul tuo sistema operativo nel seguente modo:

    • Linux:
    sudo systemctl status observiq-otel-collector
    
    • Windows:
    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/cisco_catalyst_center:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: CISCO_DNAC
            raw_log_field: body
    
    service:
        pipelines:
            logs/cisco_catalyst_center_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/cisco_catalyst_center
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del destinatario:

    • listen_address: l'indirizzo IP e la porta su cui ascoltare. Utilizza 0.0.0.0 per ascoltare su tutte le interfacce. Sostituisci la porta se necessario (ad esempio, 1514 per Linux non root).
  • Configurazione dell'esportatore:

    • creds_file_path: il percorso completo del file di autenticazione dell'acquisizione:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • YOUR_CUSTOMER_ID: il tuo ID cliente Google SecOps.
    • endpoint: URL dell'endpoint regionale:
      • Stati Uniti: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Per l'elenco completo, consulta Endpoint regionali.

Salva il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X.
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

Per riavviare l'agente Bindplane in Linux:

  1. Esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifica che il servizio sia in esecuzione:

    sudo systemctl status observiq-otel-collector
    
  3. Controlla i log per individuare eventuali errori:

    sudo journalctl -u observiq-otel-collector -f
    

Per riavviare l'agente Bindplane in Windows:

  1. Scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Console dei servizi:
      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
  2. Verifica che il servizio sia in esecuzione:

    sc query observiq-otel-collector
    
  3. Controlla i log per individuare eventuali errori:

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

Configurare l'inoltro di syslog su Cisco Catalyst Center

  1. Accedi a Cisco Catalyst Center.
  2. Vai a Sistema > Impostazioni > Servizi esterni > Destinazioni > Syslog.
  3. Fai clic sull'icona Aggiungi (+) per creare una nuova destinazione syslog.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Google SecOps-Bindplane).
    • Descrizione: inserisci una breve descrizione (ad esempio, Syslog forwarding to Google SecOps via Bindplane).
    • Nome host/indirizzo IP: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
    • Porta: inserisci 514 (o la porta configurata nell'agente Bindplane).
    • Protocollo: seleziona UDP o TCP a seconda della configurazione di Bindplane.
  5. Fai clic su Salva.

Opzione 2: integrazione webhook

Questa opzione utilizza le funzionalità webhook native di Cisco Catalyst Center per inviare eventi JSON strutturati direttamente a Google SecOps in tempo reale.

Crea un feed webhook in Google SecOps

Creare il feed

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Cisco Catalyst Center Webhook).
  5. Seleziona Webhook come Tipo di origine.
  6. Seleziona Cisco Catalyst Center come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • (Facoltativo) Delimitatore di divisione: inserisci \n per gli eventi delimitati da un carattere di nuova riga.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  9. Fai clic su Avanti.
  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Genera e salva la chiave segreta

Dopo aver creato il feed, devi generare una chiave segreta per l'autenticazione:

  1. Nella pagina dei dettagli del feed, fai clic su Genera chiave segreta.
  2. Una finestra di dialogo mostra la chiave segreta.
  3. Copia e salva la chiave segreta in modo sicuro.

Recuperare l'URL dell'endpoint del feed

  1. Vai alla scheda Dettagli del feed.
  2. Nella sezione Endpoint Information (Informazioni sull'endpoint), copia l'URL dell'endpoint del feed.
  3. Salva questo URL per i passaggi successivi.
  4. Fai clic su Fine.

Creare una chiave API Google Cloud

Google SecOps richiede una chiave API per l'autenticazione. Crea una chiave API con limitazioni nella Google Cloud Console.

Creare la chiave API

  1. Vai alla pagina Credenziali della console Google Cloud.
  2. Seleziona il tuo progetto (quello associato alla tua istanza Google SecOps).
  3. Fai clic su Crea credenziali > Chiave API.
  4. Viene creata una chiave API e visualizzata in una finestra di dialogo.
  5. Fai clic su Modifica chiave API per limitare la chiave.

Limitare la chiave API

  1. Nella pagina delle impostazioni Chiave API:
    • Nome: inserisci un nome descrittivo (ad esempio, Chronicle Webhook API Key).
  2. In Limitazioni API:
    1. Seleziona Limita chiave.
    2. Nel menu a discesa Seleziona API, cerca e seleziona API Chronicle.
  3. Fai clic su Salva.
  4. Copia il valore della chiave API dal campo Chiave API nella parte superiore della pagina.
  5. Salva la chiave API in modo sicuro.

Configura la destinazione webhook in Cisco Catalyst Center

  1. Accedi a Cisco Catalyst Center.
  2. Vai a Sistema > Impostazioni > Servizi esterni > Destinazioni > Webhook.
  3. Fai clic sull'icona Aggiungi (+) per creare una nuova destinazione webhook.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Google SecOps-Webhook).
    • Descrizione: inserisci una breve descrizione (ad esempio, Webhook to Google SecOps).
    • URL: incolla l'URL dell'endpoint webhook di Google SecOps.
    • Metodo: seleziona POST.
    • Autenticazione: seleziona Nessuna autenticazione.
    • Considera attendibile il certificato: seleziona Sì.
    • Intestazioni: fai clic su Aggiungi intestazione e aggiungi le seguenti intestazioni:
      • Nome: Content-Type, Valore: application/json
      • Nome: X-goog-api-key, Valore: la tua chiave API Google Cloud
      • Name: X-Webhook-Access-Key, Value: la chiave segreta del feed Google SecOps
  5. Fai clic su Salva.

Iscrivere gli eventi alle notifiche webhook

  1. In Cisco Catalyst Center, vai a Platform > Developer Toolkit > Event Notifications.
  2. Nella scheda Notifiche, fai clic su Crea nuova notifica.
  3. Nel passaggio 1 (Seleziona sito ed eventi), seleziona i siti e gli eventi che vuoi monitorare:
    • Eventi di rete: dispositivo non raggiungibile, interfaccia non funzionante, modifiche alla configurazione.
    • Eventi di sicurezza: violazioni delle policy di sicurezza, errori di autenticazione.
    • Eventi di sistema: eventi della piattaforma, aggiornamenti software, manutenzione.
    • Eventi di garanzia: degrado delle prestazioni, problemi di connettività.
  4. Fai clic su Avanti.
  5. Nel passaggio 2 (Seleziona canali), seleziona REST come canale di notifica.
  6. Nel menu a discesa Endpoint, seleziona la destinazione webhook creata nella sezione precedente (ad esempio, Google SecOps-Webhook).
  7. Fai clic su Avanti.
  8. Nel passaggio 3 (Riepilogo), esamina la configurazione delle notifiche.
  9. Inserisci un Nome per l'abbonamento (ad esempio, Google SecOps Events).
  10. Fai clic su Fine.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
category security_result.severity_details Il valore di category del log non elaborato viene mappato al campo security_result.severity_details.
ciscoDnaEventLink target.url Il valore di ciscoDnaEventLink del log non elaborato viene mappato al campo target.url.
date_time metadata.event_timestamp Estratto dal messaggio di log non elaborato utilizzando il pattern grok e convertito nel formato timestamp.
details.Assurance_Issue_Category security_result.about.resource.attribute.labels[].value Il valore di details.Assurance_Issue_Category del log non elaborato è mappato con la chiave "Assurance_Issue_Category".
details.Assurance_Issue_Details security_result.summary Il valore di details.Assurance_Issue_Details del log non elaborato viene mappato al campo security_result.summary.
details.Assurance_Issue_Name security_result.about.resource.attribute.labels[].value Il valore di details.Assurance_Issue_Name del log non elaborato viene mappato con la chiave "Assurance_Issue_Name".
details.Assurance_Issue_Priority security_result.about.resource.attribute.labels[].value Il valore di details.Assurance_Issue_Priority del log non elaborato viene mappato con la chiave "Assurance_Issue_Priority".
details.Assurance_Issue_Status security_result.about.resource.attribute.labels[].value Il valore di details.Assurance_Issue_Status del log non elaborato viene mappato con la chiave "Assurance_Issue_Status".
details.Device target.ip, target.hostname Se il valore è un indirizzo IP, viene mappato a target.ip, altrimenti a target.hostname.
dnacIp target.ip Il valore di dnacIp del log non elaborato viene mappato a target.ip se è un indirizzo IP valido.
domain additional.fields[].value.string_value Il valore di domain del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "domain".
eventId metadata.product_event_type Il valore di eventId del log non elaborato viene mappato al campo metadata.product_event_type.
instanceId target.resource.product_object_id Il valore di instanceId del log non elaborato viene mappato al campo target.resource.product_object_id.
name target.resource.attribute.labels[].value Il valore di name del log non elaborato viene mappato con la chiave "name".
namespace target.namespace Il valore di namespace del log non elaborato viene mappato al campo target.namespace.
network.deviceId target.asset.asset_id Il valore di network.deviceId del log non elaborato è preceduto da "deviceId: " e mappato a target.asset.asset_id.
note additional.fields[].value.string_value Il valore di note del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "note".
severity security_result.severity Utilizzato per determinare il valore di security_result.severity, is_alert e is_significant.
source target.resource.attribute.labels[].value Il valore di source del log non elaborato viene mappato con la chiave "source".
src_ip principal.ip Estratto dal messaggio di log non elaborato utilizzando il pattern grok e mappato a principal.ip.
subDomain additional.fields[].value.string_value Il valore di subDomain del log non elaborato viene aggiunto come coppia chiave-valore a additional.fields con la chiave "subDomain".
tntId target.resource.attribute.labels[].value Il valore di tntId del log non elaborato è mappato con la chiave "tntId".
type target.resource.attribute.labels[].value Il valore di type del log non elaborato viene mappato con la chiave "type".
userId target.user.userid Il valore di userId del log non elaborato viene mappato al campo target.user.userid.
version metadata.product_version Il valore di version del log non elaborato viene mappato al campo metadata.product_version.
N/D metadata.event_type Impostato in base alla presenza e ai valori dei campi has_principal, has_target e userId. Valori possibili: NETWORK_CONNECTION, USER_UNCATEGORIZED, STATUS_UPDATE, GENERIC_EVENT.
N/D is_alert Impostato su true se la gravità è 0 o 1, altrimenti su false.
N/D is_significant Impostato su true se la gravità è 0 o 1, altrimenti su false.
correlationId event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
isSimulated event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
startTime event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_start_time Mappato dal log delle modifiche
details.wlcIp event.idm.read_only_udm.intermediary.ip Mappato dal log delle modifiche
details.detectingApName event.idm.read_only_udm.observer.hostname Mappato dal log delle modifiche
details.detectingApLocation event.idm.read_only_udm.observer.location.name Mappato dal log delle modifiche
details.detectingApMacAddress event.idm.read_only_udm.observer.mac Mappato dal log delle modifiche
network.siteId event.idm.read_only_udm.observer.resource.attribute.labels Mappato dal log delle modifiche
src_ip event.idm.read_only_udm.principal.hostname Mappato dal log delle modifiche
details event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
details.threatType event.idm.read_only_udm.security_result.threat_name Mappato dal log delle modifiche
tenantId event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.