Raccogliere i log di Atlassian Bitbucket

Supportato in:

Panoramica

Questo parser estrae i campi dai log JSON di Atlassian Bitbucket e li mappa all'UDM. Gestisce vari formati di log, compila le entità principali o di destinazione in base ai campi disponibili, come indirizzi IP, ID utente e informazioni sugli asset. Inoltre, classifica gli eventi in base all'attività della rete e degli utenti e arricchisce i dati con i risultati di sicurezza, se presenti. Il parser dà la priorità a agentRealtimeInfo rispetto a agentDetectionInfo durante il completamento dei campi.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso privilegiato a un repository al suo interno.

Configura un feed in Google SecOps per importare i log di Atlassian Bitbucket

  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 Log di Atlassian Bitbucket).
  4. Seleziona Webhook come Tipo di origine.
  5. Seleziona Atlassian Bitbucket come Tipo di log.
  6. Fai clic su Avanti.
  7. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio \n.
    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
  10. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  11. Copia e memorizza la chiave segreta. Non potrai più visualizzare questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
  12. Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni endpoint. Devi specificare questo URL endpoint nell'applicazione client.
  13. Fai clic su Fine.

Crea una chiave API per il feed webhook

  1. Vai alla console Google Cloud > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali e poi seleziona Chiave API.

  3. Limita l'accesso alla chiave API all'API Google Security Operations.

Specifica l'URL dell'endpoint

  1. Nell'applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
  2. Attiva l'autenticazione specificando la chiave API e la chiave segreta nell'intestazione personalizzata nel seguente formato:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Consiglio: specifica la chiave API come intestazione anziché nell'URL. Se il client webhook non supporta le intestazioni personalizzate, puoi specificare la chiave API e la chiave segreta utilizzando parametri di ricerca nel seguente formato:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

Sostituisci quanto segue:

  • ENDPOINT_URL: l'URL dell'endpoint del feed.
  • API_KEY: la chiave API per l'autenticazione in Google Security Operations.
  • SECRET: la chiave segreta che hai generato per autenticare il feed.

Creare un webhook in Atlassian Bitbucket

  1. In Bitbucket, vai alle impostazioni del repository.
  2. Fai clic su Webhook in Flusso di lavoro.
  3. Fai clic su Aggiungi webhook.
  4. Configura i seguenti campi:
    • Titolo: fornisci un nome descrittivo (ad esempio Google SecOps).
    • URL: inserisci l'URL dell'endpoint API Google SecOps.
    • Stato: impostato su Attivo.
    • Attivatori: seleziona gli eventi pertinenti.
  5. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
agentComputerName principal.hostname Dati inseriti da agentRealtimeInfo.agentComputerName.
agentDetectionInfo.accountId metadata.product_deployment_id Convertito in stringa. Utilizzato se agentRealtimeInfo.accountId non è presente.
agentDetectionInfo.accountName metadata.product_name Utilizzato se agentRealtimeInfo.accountName non è presente.
agentDetectionInfo.agentDomain principal.administrative_domain Mappatura diretta.
agentDetectionInfo.agentIpV4 target.ip Estratto dall'array JSON e unito al campo target.ip.
agentDetectionInfo.agentIpV6 principal.ip Estratto dall'array JSON e unito al campo principal.ip.
agentDetectionInfo.agentLastLoggedInUserName principal.user.userid Analizzati per estrarre l'ID utente e il dominio (se presente). Se non è presente alcun dominio, viene mappato direttamente a principal.user.userid.
agentDetectionInfo.agentOsName principal.platform_version, principal.asset.platform_software.platform_version Utilizzato se agentRealtimeInfo.agentOsName non è presente.
agentDetectionInfo.agentOsRevision principal.platform_patch_level, principal.asset.platform_software.platform_patch_level Utilizzato se agentRealtimeInfo.agentOsRevision non è presente.
agentDetectionInfo.agentRegisteredAt principal.asset.first_discover_time Analizzata come timestamp ISO8601.
agentDetectionInfo.agentUuid principal.asset_id, principal.asset.asset_id Utilizzato se agentRealtimeInfo.agentUuid non è presente. Deve essere preceduto dal prefisso "agentUuid:".
agentDetectionInfo.agentVersion metadata.product_version Utilizzato se agentRealtimeInfo.agentVersion non è presente.
agentDetectionInfo.externalIp target.ip Mappatura diretta.
agentDetectionInfo.groupId principal.user.group_identifiers Unito al campo se non vuoto o "-". Utilizzato se agentRealtimeInfo.groupId non è presente.
agentDetectionInfo.groupName principal.group.group_display_name Utilizzato se agentRealtimeInfo.groupName non è presente.
agentDetectionInfo.siteId additional.fields Aggiunto come coppia chiave-valore con chiave "agentDetectionInfo.siteId". Utilizzato se agentRealtimeInfo.siteId non è presente.
agentDetectionInfo.siteName additional.fields Aggiunto come coppia chiave-valore con chiave "agentDetectionInfo.siteName". Utilizzato se agentRealtimeInfo.siteName non è presente.
agentRealtimeInfo.accountId metadata.product_deployment_id Convertito in stringa.
agentRealtimeInfo.accountName metadata.product_name Mappatura diretta.
agentRealtimeInfo.agentComputerName principal.hostname, principal.asset.hostname Mappatura diretta.
agentRealtimeInfo.agentId principal.asset_id, principal.asset.asset_id Deve essere preceduto dal prefisso "agentId:".
agentRealtimeInfo.agentMachineType principal.asset.category Mappatura diretta.
agentRealtimeInfo.agentOsName principal.platform_version, principal.asset.platform_software.platform_version Mappatura diretta.
agentRealtimeInfo.agentOsRevision principal.platform_patch_level, principal.asset.platform_software.platform_patch_level Mappatura diretta.
agentRealtimeInfo.agentOsType principal.asset.platform_software.platform, principal.platform Mappato a WINDOWS, MAC o LINUX in base al valore.
agentRealtimeInfo.agentUuid principal.asset_id, principal.asset.asset_id Mappatura diretta. Deve essere preceduto dal prefisso "agentUuid:".
agentRealtimeInfo.agentVersion metadata.product_version Mappatura diretta.
agentRealtimeInfo.groupId principal.user.group_identifiers Unito al campo se non vuoto o "-".
agentRealtimeInfo.groupName principal.group.group_display_name Mappatura diretta.
agentRealtimeInfo.siteId additional.fields Aggiunto come coppia chiave-valore con chiave "agentDetectionInfo.siteId".
agentRealtimeInfo.siteName additional.fields Aggiunto come coppia chiave-valore con chiave "agentDetectionInfo.siteName".
associatedItems.0.id principal.resource.id Mappatura diretta.
associatedItems.0.name principal.resource.name Mappatura diretta.
associatedItems.0.typeName principal.resource.resource_subtype Mappatura diretta.
authorAccountId principal.user.userid Mappatura diretta.
category metadata.product_event_type Mappatura diretta. Se non è presente e il messaggio contiene "minacce", imposta "Minacce".
id metadata.product_log_id Convertito in stringa.
indicators.0.description security_result.description Mappatura diretta.
objectItem.id additional.fields Aggiunto come coppia chiave-valore con chiave "objectItem.id".
objectItem.name additional.fields Aggiunto come coppia chiave-valore con chiave "objectItem.name".
objectItem.typeName additional.fields Aggiunto come coppia chiave-valore con chiave "objectItem.typeName".
remoteAddress principal.ip Mappatura diretta.
summary security_result.summary Mappatura diretta.
threatInfo.classification security_result.category_details Mappatura diretta. Utilizzato anche per determinare security_result.category.
threatInfo.collectionId metadata.ingestion_labels Aggiunto come coppia chiave-valore con chiave "alert_aggregation_value".
threatInfo.confidenceLevel security_result.confidence_details Mappatura diretta. Utilizzato anche per determinare security_result.confidence.
threatInfo.createdAt metadata.collected_timestamp Analizzata come timestamp ISO8601.
threatInfo.detectionEngines metadata.ingestion_labels key e title di ogni elemento vengono aggiunti come coppie chiave-valore.
threatInfo.fileExtensionType target.process.file.mime_type Mappatura diretta.
threatInfo.filePath target.file.full_path Mappatura diretta.
threatInfo.fileSize target.file.size Convertito in stringa e poi in numero intero non firmato.
threatInfo.identifiedAt event_timestamp Analizzata come timestamp ISO8601.
threatInfo.maliciousProcessArguments principal.process.command_line Mappatura diretta. Utilizzato anche nel campo security_result.summary se summary non è presente.
threatInfo.md5 target.file.md5 Mappatura diretta.
threatInfo.originatorProcess target.process.parent_process.file.full_path Mappatura diretta. Utilizzato anche nel campo security_result.summary se summary non è presente.
threatInfo.processUser target.user.userid Mappatura diretta.
threatInfo.sha1 target.file.sha1 Mappatura diretta.
threatInfo.sha256 target.file.sha256 Mappatura diretta.
threatInfo.storyline principal.process.product_specific_process_id Deve essere preceduto dal prefisso "ID:".
threatInfo.threatId security_result.threat_id Mappatura diretta.
threatInfo.threatName security_result.threat_name, target.file.names Mappati e uniti direttamente in target.file.names. Utilizzato anche nel campo security_result.summary se summary non è presente. Impostato inizialmente su "GENERIC_EVENT". Modificato in "NETWORK_UNCATEGORIZED", "STATUS_UPDATE" o "USER_UNCATEGORIZED" in base alla presenza di IP/nome host/utente principale e di destinazione. Copiato dal campo event.type. Imposta su "Atlassian Bitbucket". Impostato inizialmente su "Atlassian Bitbucket". Può essere sostituito da agentRealtimeInfo.accountName o agentDetectionInfo.accountName.
timestamp metadata.event_timestamp, timestamp Mappatura diretta.

Modifiche

2023-06-12

  • Parser appena creato.