Raccogliere i log del contesto di Cloud Compute

Supportato in:

Questo documento spiega come esportare e importare Google Cloud i log di contesto di Compute in Google Security Operations utilizzando Cloud Storage. Il parser estrae le informazioni dai log in formato JSON. Normalizza e struttura quindi i dati estratti nel formato UDM di Google SecOps, concentrandosi sui dettagli delle macchine virtuali, come specifiche hardware, configurazione di rete, impostazioni di sicurezza e relazioni con altre entità.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati che l'ambiente Compute sia configurato e attivo nel tuo Google Cloud ambiente.
  • Assicurati di disporre dell'accesso privilegiato a Google Cloud e delle autorizzazioni appropriate.

Crea un bucket Cloud Storage

  1. Accedi alla console Google Cloud.
  2. Vai alla pagina Bucket Cloud Storage.

    Vai a Bucket

  3. Fai clic su Crea.

  4. Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ogni passaggio che segue, fai clic su Continua per passare al passaggio successivo:

    1. Nella sezione Inizia:

      1. Inserisci un nome univoco che soddisfi i requisiti per i nomi dei bucket, ad esempio compute-context-logs.
      2. 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.

      3. Per aggiungere un'etichetta del bucket, fai clic sulla freccia di espansione per espandere la sezione Etichette.

      4. Fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.

    2. Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:

      1. Seleziona un Tipo di località.
      2. 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.

      3. Per configurare la replica tra bucket, espandi la sezione Configura la replica tra bucket.

    3. 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.

    4. 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.

    5. Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:

      1. Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
      2. 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.
  5. Fai clic su Crea.

Configura l' Google Cloud esportazione dei log di calcolo

  1. Accedi alla console Google Cloud.
  2. Vai a Logging > Router dei log.
  3. Fai clic su Crea sink.
  4. Fornisci i seguenti parametri di configurazione:

    • Nome sink: inserisci un nome significativo, ad esempio Compute-Context-Sink.
    • Destinazione della destinazione: seleziona Cloud Storage e inserisci l'URI del bucket, ad esempio gs://compute-context-logs.
    • Filtro log:

      logName="*compute*"
      resource.type="gce_instance"
      
  5. Fai clic su Crea.

Configura le autorizzazioni per Cloud Storage

  1. Vai a IAM e amministrazione > IAM.
  2. Individua l'account di servizio Cloud Logging.
  3. Concedi il ruolo roles/storage.admin al bucket.

Configura un feed in Google SecOps per importare i Google Cloud log di contesto di Compute

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Google Cloud Log del contesto di calcolo.
  4. Seleziona Google Cloud Storage come Tipo di origine.
  5. Seleziona Contesto di calcolo Google Cloud come Tipo di log.
  6. Fai clic su Ottieni account di servizio accanto al campo Account di servizio Chronicle.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • URI del bucket di archiviazione: URL del bucket Cloud Storage, ad esempio gs://compute-context-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.

  9. Fai clic su Avanti.

  10. Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
antenati event.idm.entity.entity.asset.attribute.labels.value Ogni valore dell'antenato nell'array ancestors viene mappato a un'etichetta separata con la chiave ancestors.
assetType event.idm.entity.entity.asset.category Mappato direttamente dal campo assetType.
asset_type event.idm.entity.entity.asset.category Mappato direttamente dal campo asset_type.
nome event.idm.entity.entity.resource.name Mappato direttamente dal campo Nome.
resource.data.cpuPlatform event.idm.entity.entity.asset.hardware.cpu_platform Mappato direttamente dal campo resource.data.cpuPlatform.
resource.data.creationTimestamp event.idm.entity.entity.asset.attribute.creation_time Analizzata in un formato timestamp dal campo resource.data.creationTimestamp.
resource.data.id event.idm.entity.entity.asset.product_object_id Mappato direttamente dal campo resource.data.id.
resource.data.labels.business_function event.idm.entity.entity.asset.attribute.labels.value Mappato direttamente dal campo resource.data.labels.business_function, con la chiave impostata su business_function.
resource.data.labels.environment event.idm.entity.entity.asset.attribute.labels.value Mappato direttamente dal campo resource.data.labels.environment, con la chiave impostata su environment.
resource.data.labels.infra_location event.idm.entity.entity.asset.attribute.labels.value Mappato direttamente dal campo resource.data.labels.infra_location, con la chiave impostata su infra_location.
resource.data.labels.instance_group event.idm.entity.user.group_identifiers Mappato direttamente dal campo resource.data.labels.instance_group.
resource.data.labels.os event.idm.entity.entity.asset.platform_software.platform_version Mappato direttamente dal campo resource.data.labels.os.
resource.data.labels.primary_application event.idm.entity.entity.asset.attribute.labels.value Mappato direttamente dal campo resource.data.labels.primary_application, con la chiave impostata su primary_application.
resource.data.labels.project_code event.idm.entity.entity.asset.attribute.labels.value Mappato direttamente dal campo resource.data.labels.project_code, con la chiave impostata su project_code.
resource.data.lastStartTimestamp event.idm.entity.entity.asset.last_boot_time Analizzata in un formato timestamp dal campo resource.data.lastStartTimestamp.
resource.data.machineType event.idm.entity.entity.asset.hardware.model Il tipo di macchina viene estratto dal campo resource.data.machineType utilizzando un'espressione regolare.
resource.data.name event.idm.entity.entity.asset.hostname Mappato direttamente dal campo resource.data.name.
resource.data.networkInterfaces.0.accessConfigs.0.natIP event.idm.entity.entity.asset.nat_ip Il primo indirizzo IP NAT della prima interfaccia di rete viene mappato.
resource.data.networkInterfaces.0.network event.idm.entity.entity.asset.attribute.cloud.vpc.name L'ID rete viene estratto dal campo resource.data.networkInterfaces.0.network utilizzando un'espressione regolare.
resource.data.networkInterfaces.0.networkIP event.idm.entity.entity.asset.ip L'indirizzo IP della prima interfaccia di rete è mappato.
resource.data.networkInterfaces.1.networkIP event.idm.entity.entity.asset.ip L'indirizzo IP della seconda interfaccia di rete è mappato.
resource.data.selfLink event.idm.entity.entity.url Mappato direttamente dal campo resource.data.selfLink.
resource.data.serviceAccounts.0.email event.idm.entity.relations.entity.user.email_addresses L'indirizzo email del primo account di servizio è mappato.
resource.data.status event.idm.entity.entity.asset.deployment_status Mappato a ACTIVE se lo stato è RUNNING, PROVISIONING, STAGING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, TERMINATED. In caso contrario, viene mappato a DEPLOYMENT_STATUS_UNSPECIFIED.
event.idm.entity.entity.asset.attribute.cloud.availability_zone La zona di disponibilità viene creata combinando i campi region e zone_suffix.
event.idm.entity.entity.asset.attribute.cloud.environment Impostato su GOOGLE_CLOUD_PLATFORM.
event.idm.entity.entity.asset.attribute.cloud.project.name L'ID progetto viene estratto dal campo del nome utilizzando un'espressione regolare.
event.idm.entity.entity.asset.attribute.cloud.project.resource_type Impostato su CLOUD_PROJECT.
event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type Impostato su VPC_NETWORK.
event.idm.entity.entity.resource.resource_type Impostato su VIRTUAL_MACHINE se asset_type o assetType contiene Instance.
event.idm.entity.entity.resource.type Impostato su VIRTUAL_MACHINE se asset_type o assetType contiene Instance.
event.idm.entity.metadata.collected_timestamp Impostato sul timestamp dell'evento Logstash.
event.idm.entity.metadata.entity_type Imposta su ASSET.
event.idm.entity.metadata.product_name Imposta su GCP Compute Context.
event.idm.entity.metadata.vendor_name Impostato su Google Cloud Platform.
event.idm.entity.relations.entity.user.attribute.cloud.environment Impostato su GOOGLE_CLOUD_PLATFORM.
event.idm.entity.relations.entity_type Impostato su USER.
event.idm.entity.relations.relationship Imposta su ADMINISTERS.

Modifiche

2024-01-27

Correzione di bug:

  • Le mappature di name, resource.data.id, resource.data.name, region, resource.data.selfLink, project_id, asset_network_id e {region}-%{zone_suffix} sono state separate in blocchi di mutazione distinti.

2024-01-05

Miglioramento:

  • È stata rimossa la mappatura di event.idm.entity.entity.namespace.
  • È stato aggiunto il supporto per l'analisi di tutti i networkIP da resource.data.networkInterfaces.

2022-07-29

  • È stato aggiunto un controllo condizionale per resource.data.lastStartTimestamp e la mappatura a entity.asset.last_boot_time.
  • È stato aggiunto un controllo condizionale per resource.data.networkInterfaces.0.networkIP e la mappatura a entity.asset.ip.

2022-04-04

  • Aggiornamento del nome del fornitore.

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