Raccogli i log di Cisco Identity Intelligence

Supportato in:

Questo documento spiega come configurare Cisco Identity Intelligence per inviare log a Google Security Operations utilizzando i webhook.

Cisco Identity Intelligence (in precedenza Oort Security) è una piattaforma di rilevamento e risposta alle minacce all'identità che monitora continuamente il comportamento degli utenti, i pattern di autenticazione, l'utilizzo dei dispositivi e i privilegi di accesso nei vari provider di identità. Rileva minacce basate sull'identità, errori di configurazione e violazioni della conformità analizzando l'attività utente, i controlli di sicurezza non riusciti, i punteggi di attendibilità e i comportamenti rischiosi.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Accesso privilegiato a un tenant Cisco Identity Intelligence
  • Autorizzazioni amministrative per gestire le integrazioni in Cisco Identity Intelligence
  • Accesso alla Google Cloud Console (per la creazione della chiave API)

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 Identity Intelligence Events).
  5. Seleziona Webhook come Tipo di origine.
  6. Seleziona Cisco Identity Intelligence come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione (facoltativo): inserisci \n per dividere gli eventi su più righe.
    • 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. Il formato dell'URL è:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    o

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. Salva questo URL per i passaggi successivi.

  5. Fai clic su Fine.

Creare una chiave API Google Cloud

Chronicle 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 di Chronicle).
  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 Google SecOps (o 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 il webhook Cisco Identity Intelligence

Costruisci l'URL webhook

  • Combina l'URL dell'endpoint Chronicle e la chiave API:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
    • Esempio:

      https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
      

Sostituisci quanto segue:

  • <ENDPOINT_URL>: l'URL dell'endpoint del feed di Chronicle copiato in precedenza
  • <API_KEY>: la chiave API Google Cloud creata in precedenza
  • <SECRET_KEY>: La chiave segreta del webhook di Chronicle generata in precedenza

Crea una destinazione di notifica webhook in Cisco Identity Intelligence

  1. Accedi a Cisco Identity Intelligence.
  2. Vai a Integrazioni.
  3. Fai clic su Aggiungi integrazione.
  4. Scorri verso il basso fino alla sezione Webhook.
  5. Fai clic su Aggiungi target webhook.
  6. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Chronicle SIEM Integration).
    • URL webhook: incolla l'URL dell'endpoint completo con la chiave API e la chiave segreta riportate sopra.
    • Authorization Type (Tipo di autorizzazione): seleziona API Key (Chiave API).
    • Nome chiave API: inserisci un nome per la chiave (ad esempio, x-goog-chronicle-auth).
    • Valore chiave API: inserisci la chiave API Google Cloud.
  7. Espandi la sezione Parametri HTTP di chiamata.
  8. Aggiungi i seguenti parametri con il tipo Intestazione:
    • Chiave: Content-Type, Valore: application/json
    • Chiave: Accept, Valore: application/json
  9. Nella sezione Utilizza questo target per, seleziona Controllo non riuscito per ricevere notifiche quando i controlli dell'identità rilevano risultati non riusciti.
  10. Fai clic su Salva.

Testare la connessione webhook

  1. Nella pagina Integrazioni, trova la destinazione di notifica webhook che hai creato.
  2. Fai clic sul menu con tre puntini sul lato destro della riga.
  3. Seleziona Testa connettività.
  4. Verifica che il messaggio di test venga recapitato correttamente.

Attiva il webhook per i controlli dell'identità

Dopo aver creato la destinazione di notifica webhook, devi attivarla per i controlli dell'identità specifici che vuoi monitorare.

  1. Vai alla pagina dei dettagli del controllo che ti interessa in Cisco Identity Intelligence.
  2. Espandi il menu a discesa nell'angolo in alto a destra della pagina.
  3. Seleziona la casella di controllo relativa alla destinazione di notifica webhook che hai creato.
  4. Ripeti l'operazione per ogni controllo che vuoi inviare a Google SecOps.

Per saperne di più, consulta la documentazione del webhook di Cisco Identity Intelligence.

Riferimento ai metodi di autenticazione

I feed webhook di Chronicle supportano più metodi di autenticazione. Scegli il metodo supportato dal tuo fornitore.

Se il tuo fornitore supporta le intestazioni HTTP personalizzate, utilizza questo metodo per una maggiore sicurezza.

  • Formato della richiesta:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Vantaggi:

  • Chiave API e secret non visibili nell'URL
  • Più sicuro (le intestazioni non vengono registrate nei log di accesso del server web)
  • Metodo preferito quando il fornitore lo supporta

Metodo 2: parametri di query

Se il fornitore non supporta le intestazioni personalizzate, aggiungi le credenziali all'URL.

  • Formato dell'URL:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • Esempio:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
    
  • Formato della richiesta:

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Svantaggi:

  • Credenziali visibili nell'URL
  • Potrebbe essere registrato nei log di accesso del server web
  • Meno sicuri degli header

Metodo 3: ibrido (URL + intestazione)

Alcune configurazioni utilizzano la chiave API nell'URL e la chiave segreta nell'intestazione.

  • Formato della richiesta:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Nomi delle intestazioni di autenticazione

Chronicle accetta i seguenti nomi di intestazione per l'autenticazione:

Per la chiave API:

  • x-goog-chronicle-auth (consigliata)
  • X-Goog-Chronicle-Auth (senza distinzione tra maiuscole e minuscole)

Per la chiave segreta:

  • x-chronicle-auth (consigliata)
  • X-Chronicle-Auth (senza distinzione tra maiuscole e minuscole)

Limiti e best practice per i webhook

Limiti per le richieste

Limite Valore
Dimensioni massime della richiesta 4 MB
QPS max (query al secondo) 15.000
Timeout richieste 30 secondi
Comportamento di ripetizione Automatico con backoff esponenziale

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
account account_label.value Valore copiato direttamente
account account_label.key Impostato su "account"
account_label security_result.detection_fields Unito a detection_fields
additional_detaildescription.key additional_detaildescription.key Impostato su "descrizione dettagliata"
detaildescription additional_detaildescription.value.list_value.values Unito da detaildescription
additional_detaildescription event.idm.read_only_udm.additional.fields Unito a additional.fields
additional_recommendedaction.key additional_recommendedaction.key Impostato su "comportamento consigliato"
recommendedAction additional_recommendedaction.value.list_value.values Unito da recommendedAction
additional_recommendedaction event.idm.read_only_udm.additional.fields Unito a additional.fields
data1 usersFailing_label Valore copiato direttamente
data.login login_label Valore copiato direttamente
detail-type security_result.summary Valore copiato direttamente
detail.id security_result.rule_id Valore copiato direttamente
detail.title security_result.rule_name Valore copiato direttamente
detail.severity security_result.severity Valore di detail.severity se in [CRITICAL,ERROR,HIGH,INFORMATIONAL,LOW,MEDIUM], altrimenti MEDIUM se moderato
detaildescription value_array.string_value Valore copiato direttamente
detailsdata.key add_label.value, add_label.key Valore di detailsdata.value, chiave "loginDetails %{index} details %{detailindex} %{detailsdata.key}" se non failedSigninDetails o ips
detailsdata.value add_label.value, add_label.key
detailsdata.key security_result.detection_fields Unione di add_label se le condizioni sono soddisfatte
detailsdata.value security_result.detection_fields
field_.value security_result.detection_fields Uniti per vari campi nidificati in json_array (msg, ipInfo, asn, coordinates, first_event, second_event, locations) con chiavi come "%{index} %{detailindex} %{index1} %{key}" e così via, esclusi ipAddress, ip e così via.
field_.key security_result.detection_fields
id metadata.product_log_id Valore copiato direttamente
login_label principal.user.email_addresses Unito se corrisponde all'espressione regolare dell'email
msg.ipAddress principal.ip Unito se non vuoto
msg.first_event.ip_address principal.ip Unito se non vuoto
msg.second_event.ip_address principal.ip Unito se non vuoto
msg_travels_first_event_ip_address principal.ip Unito se non vuoto
msg_travels_second_event_ip_address principal.ip
recommendedAction value_array.string_value Valore copiato direttamente
security_result event.idm.read_only_udm.security_result Unito a security_result
origine source_label.value Valore copiato direttamente
origine source_label.key Impostato su "source"
source_label event.idm.read_only_udm.src.labels Unita a src.labels
tempo @timestamp Analizzato utilizzando il filtro data con ISO8601, RFC 3339, aaaa-MM-ggTHH:mm:ss.SSSSSSZ
usersFailing_label principal.user.email_addresses Unito se corrisponde all'espressione regolare dell'email
versione metadata.product_version Valore copiato direttamente
has_principal event.idm.read_only_udm.metadata.event_type Impostato su "STATUS_UPDATE" se has_principal è true, altrimenti "USER_UNCATEGORIZED" se has_user è true, altrimenti "GENERIC_EVENT"
has_user event.idm.read_only_udm.metadata.event_type
metadata.product_name metadata.product_name Impostato su "OORT"
metadata.vendor_name metadata.vendor_name Impostato su "OORT"
detail.published event.idm.read_only_udm.metadata.collected_timestamp Mappato dal log delle modifiche
detail.login event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
detail.userTrustLevel event.idm.read_only_udm.principal.user.attribute.labels Mappato dal log delle modifiche
detail.login event.idm.read_only_udm.principal.user.user_display_name Mappato dal log delle modifiche
detail.checkTopics event.idm.read_only_udm.security_result.category_details Mappato dal log delle modifiche
region event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
detail.checkId event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
detail.checkScope event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
detail.frameworks event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
detail.explainabilityEventIds event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
data.value event.idm.read_only_udm.security_result.detection_fields 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.