Raccogli i log degli errori di Security Command Center
Questo documento spiega come esportare e importare i log degli errori di Security Command Center in Google Security Operations utilizzando Cloud Storage. Il parser trasforma i log non elaborati in formato JSON in un modello dei dati unificato (UDM). Estrae i campi pertinenti dal log non elaborato, esegue la pulizia e la normalizzazione dei dati e struttura l'output in base allo schema UDM per un'analisi di sicurezza coerente.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Security Command Center è abilitato e configurato nel tuo Google Cloud ambiente.
- Istanza Google SecOps.
- Accesso con privilegi a Security Command Center e Cloud Logging.
Crea un bucket Cloud Storage
- Accedi alla Google Cloud console.
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ogni passaggio, fai clic su Continua per procedere al passaggio successivo:
Nella sezione Inizia, procedi nel seguente modo:
- Inserisci un nome univoco che soddisfi i requisiti del nome del bucket, ad esempio gcp-scc-error-logs.
Per abilitare lo spazio dei nomi gerarchico, fai clic sulla freccia di espansione per espandere la sezione Ottimizza per carichi di lavoro orientati ai file e con uso intensivo dei dati, quindi seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
Per aggiungere un'etichetta del bucket, fai clic sulla freccia di espansione per espandere la sezione Etichette.
Fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.
Nella sezione Scegli dove archiviare i dati, procedi nel seguente modo:
- Seleziona un Tipo di località.
Utilizza il menu del tipo di località per selezionare una Località in cui i dati degli oggetti all'interno del bucket verranno archiviati in modo permanente.
Per configurare la replica tra bucket, espandi la sezione Configura la replica tra bucket.
Nella sezione Scegli una classe di archiviazione per i tuoi dati , seleziona una classe di archiviazione predefinita per il bucket oppure seleziona Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.
Nella sezione Scegli come controllare l'accesso agli oggetti , seleziona no per non applicare la prevenzione dell'accesso pubblico e seleziona un modello di controllo dell'accesso per gli oggetti del bucket.
Nella sezione Scegli come proteggere i dati degli oggetti, procedi nel seguente modo:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per scegliere come verranno criptati i dati degli oggetti, fai clic sulla freccia di espansione con l'etichetta Criptaggio dei dati e seleziona un Metodo di criptaggio dei dati.
Fai clic su Crea.
Configura la registrazione di Security Command Center
- Accedi alla Google Cloud console.
Vai alla pagina Security Command Center.
Seleziona la tua organizzazione.
Fai clic su Impostazioni.
Fai clic sulla scheda Esportazioni continue.
In Nome esportazione, fai clic su Esportazione logging.
In Sink, attiva Registra risultati in Logging.
In Progetto Logging, inserisci o cerca il progetto in cui vuoi registrare i risultati.
Fai clic su Salva.
Configura l'esportazione dei log degli errori di Security Command Center
- Accedi alla Google Cloud console.
- Vai a Logging > Router dei log.
- Fai clic su Crea sink.
Fornisci i seguenti parametri di configurazione:
- Nome sink: inserisci un nome significativo, ad esempio
scc-error-logs-sink. - Destinazione sink: seleziona Archiviazione Cloud Storage e inserisci l'URI del bucket, ad esempio
gs://gcp-scc-error-logs/. Filtro log:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ferror_logs" resource.type="security_command_center_error"Imposta opzioni di esportazione: includi tutte le voci di log.
- Nome sink: inserisci un nome significativo, ad esempio
Fai clic su Crea.
Configura le autorizzazioni per Cloud Storage
- Vai a IAM e amministrazione > IAM.
- Individua il account di servizio Cloud Logging.
- Concedi il ruolo roles/storage.admin nel bucket.
Configura i feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Log degli errori di Security Command Center.
- Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Errore di Security Command Center come Tipo di log.
- Fai clic su Ottieni account di servizio accanto al campo Account di servizio Chronicle.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
gs://gcp-scc-error-logs/. Questo URL deve terminare con una barra (/). - Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Nota: se selezioni l'opzione
Delete transferred filesoDelete transferred files and empty directories, assicurati di aver concesso le autorizzazioni appropriate al account di servizio. - Età massima file: include i file modificati negli ultimi giorni. Il valore predefinito è 180 giorni.
- URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
- Fai clic su Avanti.
- Esamina la configurazione del nuovo feed nella schermata Finalizza, quindi fai clic su Invia.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Funzione logica |
|---|---|---|
| access.principalEmail | about.user.email_addresses | Valore tratto dal campo access.principalEmail. |
| category | metadata.product_event_type | Valore tratto dal campo category o findings.category a seconda del formato del log. |
| contacts.security.contacts.email | security_result.about.user.email_addresses | Valore tratto dal campo contacts.security.contacts.email. Il ruolo è impostato su Security. |
| contacts.technical.contacts.email | security_result.about.user.email_addresses | Valore tratto dal campo contacts.technical.contacts.email. Il ruolo è impostato su Technical. |
| createTime | security_result.detection_fields.value | Valore tratto dal campo createTime o findings.createTime a seconda del formato del log. La chiave è impostata su createTime. |
| description | security_result.description | Valore tratto dal campo description o findings.description a seconda del formato del log. |
| eventTime | metadata.event_timestamp | Valore tratto dal campo eventTime o findings.eventTime a seconda del formato del log e convertito in un timestamp. |
| externalUri | about.url | Valore tratto dal campo externalUri o findings.externalUri a seconda del formato del log. |
| findingClass | security_result.category_details | Valore tratto dal campo findingClass o findings.findingClass a seconda del formato del log. |
| findingProviderId | target.resource.attribute.labels.value | Valore tratto dal campo findingProviderId o findings.findingProviderId a seconda del formato del log. La chiave è impostata su finding_provider_id. |
| mute | security_result.detection_fields.value | Valore tratto dal campo mute o findings.mute a seconda del formato del log. La chiave è impostata su mute. |
| nextSteps | security_result.outcomes.value | Valore tratto dal campo nextSteps o findings.nextSteps a seconda del formato del log. La chiave è impostata su nextSteps. |
| resourceName | target.resource.name | Valore tratto dal campo resourceName, findings.resourceName, resource_name o findings.resource_name a seconda del formato del log. |
| securityMarks.name | security_result.detection_fields.value | Valore tratto dal campo securityMarks.name o findings.securityMarks.name a seconda del formato del log. La chiave è impostata su securityMarks_name. |
| severity | security_result.severity | Valore tratto dal campo severity o findings.severity a seconda del formato del log e mappato al livello di gravità UDM corrispondente. |
| sourceDisplayName | target.resource.attribute.labels.value | Valore tratto dal campo sourceDisplayName o findings.sourceDisplayName a seconda del formato del log. La chiave è impostata su source_display_name. |
| sourceProperties.ReactivationCount | target.resource.attribute.labels.value | Valore tratto dal campo sourceProperties.ReactivationCount o findings.sourceProperties.ReactivationCount a seconda del formato del log. La chiave è impostata su sourceProperties_ReactivationCount. |
| state | security_result.detection_fields.value | Valore tratto dal campo state o findings.state a seconda del formato del log. La chiave è impostata su state. |
| metadata.event_type | Impostato su GENERIC_EVENT come valore predefinito. |
|
| metadata.log_type | Valore hardcoded GCP_SECURITYCENTER_ERROR. |
|
| metadata.description | Valore hardcoded Security Command Center. |
|
| metadata.product_name | Valore hardcoded Security Command Center. |
|
| metadata.vendor_name | Valore hardcoded Google. |
|
| target.resource.attribute.labels.key | Valore hardcoded finding_id. |
|
| target.resource.attribute.labels.value | Estratto dal campo name o findings.name, acquisendo l'ultima parte dopo l'ultimo carattere /. |
|
| target.resource.product_object_id | Estratto dal campo parent o findings.parent, acquisendo il valore dopo l'ultimo carattere /. |
|
| target.resource.ancestors.name | Valore tratto dal campo parent o findings.parent a seconda del formato del log. |
|
| target.resource_ancestors.name | Estratto dal campo resourceName o findings.resourceName, acquisendo il valore dopo il prefisso //cloudresourcemanager.googleapis.com/projects/. |
|
| target.resource_ancestors.resource_type | Valore hardcoded CLOUD_PROJECT. |
|
| target.resource.attribute.labels.key | Valore hardcoded source_id. |
|
| target.resource.attribute.labels.value | Estratto dal campo parent o findings.parent, acquisendo il valore dopo il secondo carattere /. |
|
| security_result.alert_state | Mappato in base al campo state o findings.state. Se lo stato è ACTIVE, alert_state è impostato su ALERTING, altrimenti NOT_ALERTING. |
|
| about.user.email_addresses | Valore tratto dal campo iamBindings.member. |
|
| about.user.attribute.roles.name | Valore hardcoded Security. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.