Raccogliere i log di osservazione di Cloud Security Command Center
Questo documento spiega come esportare e importare i log di osservazione di Security Command Center in Google Security Operations utilizzando Cloud Storage. L'analizzatore sintattico trasforma i dati JSON non elaborati in un modello di dati unificato (UDM). Normalizza la struttura dei dati, gestisce le potenziali variazioni dell'input, quindi estrae e mappa i campi pertinenti allo schema UDM, arricchendo i dati con contesto e indicatori aggiuntivi per l'analisi a valle.
Prima di iniziare
- Assicurati che Google Cloud Security Command Center sia abilitato e configurato nel tuo Google Cloud ambiente.
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso privilegiato a Security Command Center e Cloud Logging.
Crea un bucket Cloud Storage
- Accedi alla console Google Cloud.
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ogni passaggio che segue, fai clic su Continua per passare al passaggio successivo:
Nella sezione Inizia:
- Inserisci un nome univoco che soddisfi i requisiti per i nomi dei bucket, ad esempio gcp-scc-observation-logs.
Per attivare lo spazio dei nomi gerarchico, fai clic sulla freccia di espansione per espandere la sezione Ottimizza per i workload orientati ai file e con uso intensivo dei dati, poi 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 tuoi dati, segui questi passaggi:
- Seleziona un Tipo di località.
Utilizza il menu del tipo di località per selezionare una Località in cui verranno archiviati in modo permanente i dati degli oggetti all'interno del bucket.
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 o 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 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, segui questi passaggi:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per scegliere la modalità di crittografia dei dati degli oggetti, fai clic sulla freccia di espansione etichettata Crittografia dei dati e seleziona un Metodo di crittografia dei dati.
Fai clic su Crea.
Configurare il logging di Security Command Center
- Accedi alla console Google Cloud.
Vai alla pagina Security Command Center.
Seleziona la tua organizzazione.
Fai clic su Impostazioni.
Fai clic sulla scheda Esportazioni continue.
In Nome dell'esportazione, fai clic su Esportazione log.
In Destinazioni, attiva Registra i risultati in Logging.
In Progetto di registrazione, inserisci o cerca il progetto in cui vuoi registrare i risultati.
Fai clic su Salva.
Configura Google Cloud l'esportazione dei log di osservazione di Security Command Center
- Accedi alla console Google Cloud.
- 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-observation-logs-sink
. - Destinazione della destinazione: seleziona Cloud Storage e inserisci l'URI del bucket, ad esempio
gs://gcp-scc-observation-logs
. Filtro log:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Fobservations" resource.type="security_command_center_observation" logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ffindings" resource.type="security_center_findings"
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 l'account di servizio Cloud Logging.
- Concedi il ruolo roles/storage.admin al bucket.
Configura un feed in Google SecOps per importare i Google Cloud log di osservazione di Security Command Center
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Google Cloud Log di osservazione del Security Command Center.
- Seleziona Google Cloud Storage come Tipo di origine.
- Seleziona Osservazione 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 del bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
gs://gcp-scc-observation-logs
. - URI è: seleziona Directory che include sottodirectory.
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- URI del bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
Fai clic su Avanti.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
access.callerIp | read_only_udm.principal.ip | Mappatura diretta. |
access.callerIpGeo.regionCode | read_only_udm.principal.location.country_or_region | Mappatura diretta. |
access.methodName | read_only_udm.additional.fields.value.string_value | Mappatura diretta. Mappato anche a read_only_udm.target.labels.value. |
access.principalEmail | read_only_udm.principal.user.email_addresses | Mappatura diretta. |
access.principalSubject | read_only_udm.principal.user.attribute.labels.value | Mappatura diretta. |
assetDisplayName | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
assetId | read_only_udm.target.asset.asset_id | Il valore dopo assets/ viene estratto dal campo assetId e mappato come AssetID:<extracted_value> . |
categoria | read_only_udm.metadata.product_event_type | Mappatura diretta. |
contacts.security.contacts.email | read_only_udm.security_result.about.user.email_addresses | Mappatura diretta. L'oggetto about può ripetersi più volte in base al numero di contatti. Il campo roles.name è impostato su Security per questo campo. |
contacts.technical.contacts.email | read_only_udm.security_result.about.user.email_addresses | Mappatura diretta. L'oggetto about può ripetersi più volte in base al numero di contatti. Il campo roles.name è impostato su Technical per questo campo. |
createTime | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. Il campo key è impostato su createTime per questo campo. |
eventTime | read_only_udm.metadata.event_timestamp | Convertito in formato timestamp. |
externalUri | read_only_udm.about.url | Mappatura diretta. |
findingClass | read_only_udm.security_result.category_details | Mappatura diretta. |
findingProviderId | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
mitreAttack.primaryTactic | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. Il campo key è impostato su primary_tactic per questo campo. |
mitreAttack.primaryTechniques | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base al numero di tecniche. Il campo key è impostato su primary_technique per questo campo. |
mute | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. Il campo key è impostato su mute per questo campo. |
nome | read_only_udm.metadata.product_log_id | Mappatura diretta. |
parentDisplayName | read_only_udm.metadata.description | Mappatura diretta. |
resource.display_name | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resource.name | read_only_udm.target.resource.name, read_only_udm.principal.resource.name | Mappatura diretta. Quando questo campo viene utilizzato per compilare il campo principal.resource.name , l'analizzatore controlla se resource.project_name è vuoto. Se non è vuoto, verrà utilizzato resource.project_name . |
resource.parent_display_name | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resource.parent_name | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resource.project_display_name | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resource.project_name | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resource.type | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
resourceName | read_only_udm.target.resource.name | Mappatura diretta. |
securityMarks.name | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. Il campo key è impostato su securityMarks_name per questo campo. |
gravità | read_only_udm.security_result.severity, read_only_udm.security_result.priority_details | Mappatura diretta. |
sourceDisplayName | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
sourceProperties.contextUris.mitreUri.displayName | read_only_udm.security_result.detection_fields.key | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. |
sourceProperties.contextUris.mitreUri.url | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. |
sourceProperties.detectionCategory.ruleName | read_only_udm.security_result.rule_name | Mappatura diretta. |
sourceProperties.detectionCategory.subRuleName | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può essere ripetuto più volte in base ai campi disponibili. Il campo key è impostato su sourceProperties_detectionCategory_subRuleName per questo campo. |
sourceProperties.detectionPriority | read_only_udm.security_result.priority_details | Mappatura diretta. |
sourceProperties.findingId | read_only_udm.target.resource.attribute.labels.value | Mappatura diretta. |
state | read_only_udm.security_result.detection_fields.value | Mappatura diretta. L'oggetto detection_fields può ripetersi più volte in base ai campi disponibili. Il campo key è impostato su state per questo campo. |
N/D | is_alert | Imposta su true se l'analisi del log è riuscita. |
N/D | is_significant | Imposta su true se l'analisi del log è riuscita. |
N/D | read_only_udm.metadata.log_type | Hardcoded a GCP_SECURITYCENTER_OBSERVATION . |
N/D | read_only_udm.metadata.product_name | Hardcoded a Security Command Center . |
N/D | read_only_udm.metadata.vendor_name | Hardcoded a Google . |
N/D | read_only_udm.principal.user.account_type | Imposta su CLOUD_ACCOUNT_TYPE se è presente l'indirizzo email principale. |
N/D | read_only_udm.security_result.alert_state | Hardcoded a ALERTING . |
N/D | read_only_udm.security_result.priority | Imposta LOW_PRIORITY se la gravità è LOW . |
N/D | read_only_udm.target.application | Estratto dal campo resourceName. |
N/D | read_only_udm.target.resource.product_object_id | Estratto dal campo principale. |
N/D | read_only_udm.target.resource.resource_type | Impostato su CLUSTER per impostazione predefinita. Imposta VIRTUAL_MACHINE se la categoria è Impact: GPU Instance Created o Impact: Many Instances Created . Imposta su SETTING se la categoria è Persistence: Add Sensitive Role . |
N/D | read_only_udm.target.resource_ancestors.name | Estratto dai campi parent e resourceName. |
N/D | read_only_udm.target.resource_ancestors.product_object_id | Estratto dai campi parent, resource.project_name e resourceName. |
N/D | read_only_udm.target.resource_ancestors.resource_type | Imposta su CLOUD_PROJECT se resource.type è google.compute.Project . |
N/D | read_only_udm.target.labels.key | Il valore viene impostato su access_methodName se è presente access.methodName . |
N/D | read_only_udm.target.labels.value | Il valore è impostato su access.methodName . |
N/D | read_only_udm.target.resource.attribute.labels.key | La chiave è impostata su uno dei seguenti valori in base al campo disponibile: resource_parentDisplayName , resource_type , resource_parentName , resource_projectDisplayName , resource_displayName , finding_id , source_id , FindingProviderId , sourceDisplayName , asset_display_name . |
N/D | read_only_udm.target.resource.attribute.labels.value | Il valore viene impostato da uno dei seguenti campi in base al campo disponibile: parentDisplayName, resource.type, resource.parent_name, resource.project_display_name, resource.display_name, sourceProperties.findingId, sourceProperties.sourceId, findingProviderId, sourceDisplayName, assetDisplayName. |
Modifiche
2023-11-29
- È stata corretta un'incoerenza nella gestione dei nomi host nell'analizzatore.
2023-05-02
- Assicurati che il campo
security_result.url_back_to_product
ora contenga un indirizzo web formattato correttamente.
2023-04-12
- Il parser
GCP_SECURITYCENTER_OBSERVATION
è stato aggiornato come predefinito.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.