Raccogliere i log di controllo di Cisco Umbrella
Questo documento spiega come raccogliere i log di controllo di Cisco Umbrella in un feed di Google Security Operations utilizzando il bucket AWS S3. L'analizzatore sintattico normalizza i dati dei log CSV non elaborati, gestendo diversi delimitatori e potenziali incoerenze di formattazione. In base al tipo di log (DNS o Audit), mappa i campi estratti allo schema UDM corrispondente, arricchendo i dati con contesto aggiuntivo e standardizzando la rappresentazione per ulteriori analisi.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi ad AWS IAM e S3.
- Assicurati di disporre dell'accesso con privilegi a Cisco Umbrella.
Configura un bucket Amazon S3 gestito da Cisco
- Accedi alla dashboard di Cisco Umbrella.
- Vai ad Amministrazione > Gestione log.
- Seleziona l'opzione Utilizza un bucket Amazon S3 gestito da Cisco.
- Fornisci i seguenti dettagli di configurazione:
- Seleziona una regione: seleziona una regione più vicina alla tua posizione per una latenza inferiore.
- Seleziona una durata di conservazione: seleziona il periodo di tempo. La durata della conservazione è di 7, 14 o 30 giorni. Dopo il periodo di tempo selezionato, i dati vengono eliminati e non possono essere recuperati. Se il ciclo di importazione è regolare, utilizza un periodo di tempo più breve. Puoi modificare la durata della conservazione in un secondo momento.
- Fai clic su Salva.
- Fai clic su Continua per confermare le selezioni e ricevere la notifica di attivazione.
Nella finestra Attivazione completata visualizzata, vengono mostrati i valori di Chiave di accesso e Chiave segreta. - Copia i valori di Chiave di accesso e Chiave segreta. Se perdi queste chiavi, devi rigenerarle.
- Fai clic su Ok > Continua.
- Una pagina di riepilogo mostra la configurazione e il nome del bucket. Puoi attivare o disattivare la registrazione in base alle esigenze della tua organizzazione. Tuttavia, i log vengono eliminati in base alla durata della conservazione, indipendentemente dall'aggiunta di nuovi dati.
(Facoltativo) Configura le chiavi di accesso utente per il bucket AWS S3 autogestito
- Accedi alla console di gestione AWS.
- Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per un utilizzo successivo.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Criteri per le autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente i criteri.
- Cerca e seleziona il criterio AmazonS3FullAccess.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
(Facoltativo) Configura un bucket Amazon S3 autogestito
Accedi alla console di gestione AWS.
Vai a S3.
Fai clic su Crea bucket.
Fornisci i seguenti dettagli di configurazione:
- Nome bucket: fornisci un nome per il bucket Amazon S3.
- Regione: seleziona una regione.
Fai clic su Crea.
(Facoltativo) Configura un criterio del bucket per il bucket AWS S3 autogestito
- Fai clic sul bucket appena creato per aprirlo.
- Seleziona Proprietà > Autorizzazioni.
- Nell'elenco Autorizzazioni, fai clic su Aggiungi policy del bucket.
Inserisci il criterio del bucket preconfigurato come segue:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*" }, { "Sid": "", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*"}, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::BUCKET_NAME" }, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::BUCKET_NAME" } ] }- Sostituisci
BUCKET_NAMEcon il nome del bucket Amazon S3 che hai fornito.
- Sostituisci
Fai clic su Salva.
(Facoltativo) Verifica obbligatoria per il bucket Amazon S3 autogestito
- Nella dashboard Cisco Umbrella, seleziona Amministrazione > Gestione log > Amazon S3.
- Nel campo Nome bucket, specifica il nome esatto del bucket Amazon S3, quindi fai clic su Verifica.
- Nell'ambito della procedura di verifica, viene caricato un file denominato
README_FROM_UMBRELLA.txtda Cisco Umbrella al tuo bucket Amazon S3. Potresti dover aggiornare il browser per visualizzare il file Leggimi dopo il caricamento. - Scarica il file
README_FROM_UMBRELLA.txte aprilo utilizzando un editor di testo. - Copia e salva il token univoco Cisco Umbrella dal file.
- Vai alla dashboard Cisco Umbrella.
- Nel campo Numero token, specifica il token e fai clic su Salva.
- In caso di esito positivo, riceverai un messaggio di conferma nella dashboard che indica che il bucket è stato verificato correttamente. Se ricevi un errore che indica che il bucket non può essere verificato, controlla di nuovo la sintassi del nome del bucket e rivedi la configurazione.
Configura un feed in Google SecOps per importare i log di controllo di Cisco Umbrella
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Cisco Umbrella Audit Logs.
- Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona Cisco Umbrella Audit come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI S3: l'URI del bucket.
s3:/BUCKET_NAME- Sostituisci
BUCKET_NAMEcon il nome effettivo del bucket.
- Sostituisci
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- URI S3: l'URI del bucket.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
| action_type | security_result.action_details | Mappato direttamente dal campo del log non elaborato action_type. |
| action_type | security_result.action | Se action_type contiene allow (senza distinzione tra maiuscole e minuscole), imposta su ALLOW. Se action_type contiene block (senza distinzione tra maiuscole e minuscole), imposta su BLOCK. |
| additionalValue | additional.fields{}.key | Imposta su Additional Value. |
| additionalValue | additional.fields{}.value.string_value | Mappato direttamente dal campo del log non elaborato additionalValue. |
| blocked_categories | additional.fields{}.key | Imposta su blocked_categories. |
| blocked_categories | additional.fields{}.value.string_value | Mappato direttamente dal campo del log non elaborato blocked_categories. |
| categorie | security_result.category_details | Mappato direttamente dal campo del log grezzo categories, dopo essere stato suddiviso per virgola. |
| colonna1 | metadata.product_log_id | Mappato dal campo del log non elaborato column1 se il log è un audit log. |
| colonna1 | date_time | Mappato dal campo log non elaborato column1 se il log è un log DNS. |
| column10 | categorie | Mappato direttamente dal campo del log non elaborato column10. |
| column11 | most_granular_identity_type | Mappato direttamente dal campo del log non elaborato column11. |
| column12 | identity_types | Mappato direttamente dal campo del log non elaborato column12. |
| column13 | blocked_categories | Mappato direttamente dal campo del log non elaborato column13. |
| colonna2 | date_time | Mappato dal campo del log non elaborato column2 se il log è un audit log. |
| colonna2 | most_granular_identity | Mappato dal campo log non elaborato column2 se il log è un log DNS. |
| colonna3 | principal.user.email_addresses | Mappato dal campo del log non elaborato column3 se il log è un audit log. |
| colonna3 | identità | Mappato dal campo log non elaborato column3 se il log è un log DNS. |
| column4 | principal.user.userid | Mappato dal campo del log non elaborato column4 se il log è un audit log. |
| column4 | internal_ip | Mappato dal campo log non elaborato column4 se il log è un log DNS. |
| column5 | security_result.rule_name | Mappato dal campo del log non elaborato column5 se il log è un audit log. |
| column5 | external_ip | Mappato dal campo log non elaborato column5 se il log è un log DNS. |
| column6 | action_type | Mappato direttamente dal campo del log non elaborato column6. |
| column7 | principal.ip | Mappato dal campo del log non elaborato column7 se il log è un audit log. |
| column7 | dns_query_type | Mappato dal campo log non elaborato column7 se il log è un log DNS. |
| column8 | additionalValue | Mappato dal campo del log non elaborato column8 se il log è un audit log. |
| column8 | dns_response_code | Mappato dal campo log non elaborato column8 se il log è un log DNS. |
| column9 | dominio | Mappato direttamente dal campo del log non elaborato column9. |
| date_time | metadata.event_timestamp.seconds | Il timestamp dell'epoca estratto dal campo date_time. |
| dns_query_type | network.dns.questions.type | Estratto dal campo dns_query_type utilizzando un'espressione regolare, convertito in numero intero. |
| dns_response_code | network.dns.response_code | Mappato dal campo dns_response_code, convertito in numero intero in base ai valori del codice di risposta DNS. |
| dominio | network.dns.questions.name | Mappato direttamente dal campo domain. |
| external_ip | principal.ip | Mappato dal campo external_ip se non è vuoto e diverso da internal_ip. |
| identità | principal.location.name | Mappato dal campo identities se il campo identity_types corrispondente è Networks. |
| identità | principal.hostname | Mappato dal campo identities se il campo identity_types corrispondente è AD Computers, Roaming Computers o Anyconnect Roaming Client. |
| identità | principal.asset.hostname | Mappato dal campo identities se il campo identity_types corrispondente è AD Computers, Roaming Computers o Anyconnect Roaming Client. |
| identità | principal.location.city | Mappato dal campo identities se il campo identity_types corrispondente è Sites. |
| identity_types | additional.fields{}.key | Imposta su identities_types. |
| identity_types | additional.fields{}.value.string_value | Mappato direttamente dal campo del log non elaborato identity_types. |
| internal_ip | principal.ip | Mappato dal campo internal_ip se non è vuoto. |
| most_granular_identity | additional.fields{}.key | Imposta su most_granular_identity. |
| most_granular_identity | additional.fields{}.value.string_value | Mappato direttamente dal campo del log non elaborato most_granular_identity. |
| most_granular_identity_type | additional.fields{}.key | Imposta su most_granular_identity_type. |
| most_granular_identity_type | additional.fields{}.value.string_value | Mappato direttamente dal campo del log non elaborato most_granular_identity_type. |
| metadata.event_type | Imposta su NETWORK_DNS se il log è un log DNS. |
|
| metadata.event_type | Imposta su STATUS_UPDATE se il log è un audit log e principal_ip non è vuoto. |
|
| metadata.event_type | Impostato su GENERIC_EVENT se il log è un audit log e principal_ip è vuoto. |
|
| metadata.vendor_name | Imposta su CISCO UMBERLLA. |
|
| metadata.product_name | Imposta su CISCO UMBERLLA. |
|
| metadata.log_type | Imposta su AUDITD. |
|
| network.application_protocol | Imposta su DNS se il log è un log DNS. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.