Raccogliere i log della piattaforma Cisco DNA Center

Supportato in:

Questo documento spiega come importare i log della piattaforma Cisco DNA Center in Google Security Operations utilizzando due approcci diversi. Scegli l'opzione più adatta al tuo ambiente e ai tuoi requisiti. Il parser trasforma i log SYSLOG+JSON di Cisco DNA Center in un modello UDM (Unified Data Model). Estrae i campi dal messaggio di log non elaborato e dal payload JSON, li mappa agli attributi UDM corrispondenti e arricchisce i dati con etichette e contesto di sicurezza in base alle caratteristiche dell'evento, come gravità ed entità coinvolte.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Accesso privilegiato alla console di gestione della piattaforma Cisco DNA Center
  • Scegli il metodo di integrazione che preferisci:
    • Per l'opzione 2: connettività di rete tra Cisco DNA Center e l'endpoint webhook di Google SecOps
    • Per l'opzione 1: Windows 2016 o versioni successive oppure un host Linux con systemd per l'installazione dell'agente Bindplane

Opzione 1: integrazione Syslog utilizzando l'agente Bindplane

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

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione. 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 il 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
    

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
    

Risorse aggiuntive per l'installazione

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:

    1. Individua il file config.yaml. In genere, si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    2. Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    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: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CISCO_DNAC'
        raw_log_field: body
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
    • Sostituisci <YOUR_CUSTOMER_ID> con l'ID cliente effettivo.
    • Aggiorna /path/to/ingestion-authentication-file.json al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.
    • Questa configurazione utilizza il ricevitore Syslog (UDP) dell'agente Bindplane per raccogliere i messaggi syslog strutturati da DNA Center.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare l'inoltro di Syslog sulla piattaforma Cisco DNA Center

  1. Accedi alla piattaforma Cisco DNA Center.
  2. Vai a Sistema > Impostazioni > Servizi esterni > Destinazioni > Syslog.
  3. Fai clic su + Aggiungi per creare una nuova destinazione syslog.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Google SecOps BindPlane).
    • Host: inserisci l'indirizzo IP dell'agente BindPlane.
    • Porta: inserisci 514 (o la porta configurata in BindPlane).
    • Protocollo: seleziona UDP o TCP a seconda della configurazione di BindPlane.
    • Struttura: seleziona la struttura appropriata (ad esempio Local0).
    • Gravità: seleziona Informazioni per acquisire tutti i livelli di eventi.
  5. Fai clic su Salva.

Opzione 2: integrazione webhook in tempo reale

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

Panoramica

Cisco DNA Center supporta in modo nativo le notifiche webhook per la distribuzione di eventi in tempo reale. Questa opzione fornisce payload JSON strutturati con un contesto di eventi avanzato, inviando gli eventi direttamente a Google SecOps senza richiedere Bindplane come intermediario.

Configura il feed webhook di Google SecOps

  1. In Google SecOps, vai a Impostazioni SIEM > Feed.
  2. Fai clic su + Aggiungi nuovo feed.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Cisco DNA Center Webhook).
  4. Seleziona Webhook come Tipo di origine.
  5. Seleziona Cisco DNA Center Platform come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione: \n facoltativo.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Rivedi la configurazione del feed e fai clic su Invia.
  10. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  11. Copia e salva la chiave segreta, perché non potrai più visualizzarla.
  12. Vai alla scheda Dettagli.
  13. Copia l'URL dell'endpoint del feed dal campo Endpoint Information (Informazioni sull'endpoint).
  14. Fai clic su Fine.

Crea una chiave API per il feed webhook

  1. Vai alla pagina Credenziali della console Google Cloud.
  2. Fai clic su Crea credenziali e poi seleziona Chiave API.
  3. Limita l'accesso alla chiave API all'API Google SecOps.

Configura la destinazione webhook in Cisco DNA Center

  1. Accedi alla piattaforma Cisco DNA Center.
  2. Vai a Sistema > Impostazioni > Servizi esterni > Destinazioni > Webhook.
  3. Fai clic su + 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 descrizione del webhook.
    • URL: inserisci l'URL dell'endpoint webhook di Google SecOps del passaggio precedente.
    • Metodo: seleziona POST.
    • Certificato attendibile: seleziona No se utilizzi certificati autofirmati.
    • Intestazioni: aggiungi le intestazioni richieste:
      • Tipo di contenuti: application/json
      • X-goog-api-key: la tua Google Cloud chiave API
      • X-Webhook-Access-Key: la chiave segreta del feed Google SecOps
  5. Fai clic su Prova connessione per verificare la connettività.
  6. Fai clic su Salva.

Iscrivere eventi alle notifiche webhook

  1. In Cisco DNA Center, vai a Platform > Developer Toolkit > Event Notifications.
  2. Fai clic su + Abbonati.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome abbonamento: inserisci un nome descrittivo (ad esempio, Google SecOps Events).
    • Tipo di connettore: seleziona Endpoint REST.
    • Destinazione: seleziona la destinazione webhook creata nel passaggio precedente.
  4. Seleziona i tipi di eventi che vuoi monitorare:
    • Eventi di rete: dispositivo non raggiungibile, interfaccia inattiva, modifiche alla configurazione.
    • Eventi di sicurezza: violazioni delle norme di sicurezza, errori di autenticazione.
    • Eventi di sistema: eventi della piattaforma, aggiornamenti software, manutenzione.
    • Eventi di garanzia: degrado delle prestazioni, problemi di connettività.
  5. Configura i filtri eventi, se necessario:
    • Gravità: seleziona il livello di gravità minimo (ad esempio P1, P2).
    • Dominio: filtra in base a domini specifici (ad esempio Connettività, Rendimento).
  6. Fai clic su Abbonati.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
categoria security_result.severity_details Mappato direttamente dal campo category nel log non elaborato.
ciscoDnaEventLink target.url Mappato direttamente dal campo ciscoDnaEventLink nel log non elaborato.
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 Mappato direttamente dal campo details.Assurance_Issue_Category nel log non elaborato. La chiave per questa etichetta è "Assurance_Issue_Category".
details.Assurance_Issue_Details security_result.summary Mappato direttamente dal campo details.Assurance_Issue_Details nel log non elaborato.
details.Assurance_Issue_Name security_result.about.resource.attribute.labels[].value Mappato direttamente dal campo details.Assurance_Issue_Name nel log non elaborato. La chiave per questa etichetta è "Assurance_Issue_Name".
details.Assurance_Issue_Priority security_result.about.resource.attribute.labels[].value Mappato direttamente dal campo details.Assurance_Issue_Priority nel log non elaborato. La chiave per questa etichetta è "Assurance_Issue_Priority".
details.Assurance_Issue_Status security_result.about.resource.attribute.labels[].value Mappato direttamente dal campo details.Assurance_Issue_Status nel log non elaborato. La chiave per questa etichetta è "Assurance_Issue_Status".
details.Device target.ip OR target.hostname Mappato dal campo details.Device nel log non elaborato. Se il valore è un indirizzo IP, viene mappato su target.ip, altrimenti su target.hostname.
dnacIp target.ip Mappato direttamente dal campo dnacIp nel log non elaborato, se si tratta di un indirizzo IP.
dominio additional.fields[].value.string_value Mappato direttamente dal campo domain nel log non elaborato. La chiave per questo campo è "domain".
eventId metadata.product_event_type Mappato direttamente dal campo eventId nel log non elaborato.
instanceId target.resource.product_object_id Mappato direttamente dal campo instanceId nel log non elaborato.
nome target.resource.attribute.labels[].value Mappato direttamente dal campo name nel log non elaborato. La chiave per questa etichetta è "name".
spazio dei nomi target.namespace Mappato direttamente dal campo namespace nel log non elaborato.
network.deviceId target.asset.asset_id Mappato direttamente dal campo network.deviceId nel log non elaborato e con il prefisso "deviceId: ".
nota additional.fields[].value.string_value Mappato direttamente dal campo note nel log non elaborato. La chiave per questo campo è "note".
metadata.event_type Determinato 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.
is_alert True se la gravità è 0 o 1, False in caso contrario.
is_significant True se la gravità è 0 o 1, False in caso contrario.
gravità Utilizzato per determinare il valore di security_result.severity, is_alert e is_significant.
origine target.resource.attribute.labels[].value Mappato direttamente dal campo source nel log non elaborato. La chiave per questa etichetta è "source".
src_ip principal.ip Estratto dal messaggio di log non elaborato utilizzando il pattern grok.
subDomain additional.fields[].value.string_value Mappato direttamente dal campo subDomain nel log non elaborato. La chiave per questo campo è "subDomain".
tntId target.resource.attribute.labels[].value Mappato direttamente dal campo tntId nel log non elaborato. La chiave per questa etichetta è "tntId".
tipo target.resource.attribute.labels[].value Mappato direttamente dal campo type nel log non elaborato. La chiave per questa etichetta è "type".
userId target.user.userid Mappato direttamente dal campo userId nel log non elaborato.
versione metadata.product_version Mappato direttamente dal campo version nel log non elaborato.

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