Raccogliere i log degli avvisi di Microsoft Defender for Cloud

Supportato in:

Panoramica

Questo parser estrae i dati degli avvisi di sicurezza dai log in formato JSON di Microsoft Defender for Cloud. Trasforma e mappa i campi dei log non elaborati nell'UDM di Google SecOps, gestendo vari tipi di dati e strutture nidificate, arricchendo al contempo i dati con contesto ed etichette aggiuntivi per una migliore analisi.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso con privilegi a Microsoft Defender for Cloud.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Log degli avvisi di Microsoft Defender for Cloud.
  5. Seleziona Webhook come Tipo di origine.
  6. Seleziona Microsoft Defender for Cloud come Tipo di log.
  7. Fai clic su Avanti.
  8. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio \n.
  9. Fai clic su Avanti.
  10. Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
  11. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  12. Copia e memorizza la chiave segreta. Non puoi visualizzare di nuovo questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
  13. Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nell'applicazione client.
  14. Fai clic su Fine.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio \n.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

  • Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.

  • Copia e memorizza la chiave segreta. Non puoi visualizzare di nuovo questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.

  • Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nell'applicazione client.

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 della chiave API all'API Google Security Operations.

Specifica l'URL dell'endpoint

  1. Nella tua applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
  2. Attiva l'autenticazione specificando la chiave API e la chiave segreta come parte dell'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 a Google Security Operations.
  • SECRET: la chiave segreta che hai generato per autenticare il feed.

Crea app per la logica di Azure

  1. Accedi al portale Azure (https://portal.azure.com).
  2. Fai clic su Crea una risorsa e cerca Logic App.
  3. Fai clic su Crea per avviare la procedura di deployment.
  4. Configura l'app per la logica:
    • Nome: fornisci un nome descrittivo per l'app per la logica (ad esempio GoogleSecOpsWebhook).
    • Abbonamento: seleziona l'abbonamento appropriato.
    • Gruppo di risorse: scegli un gruppo di risorse esistente o creane uno nuovo.
    • Posizione: scegli la posizione più vicina al tuo ambiente.
    • Analisi dei log: attiva questa opzione se vuoi registrare i dati diagnostici per l'app per la logica.
  5. Fai clic su Rivedi e crea per creare l'app per la logica.
  6. Fai clic su Crea per eseguire il deployment dell'app per la logica.

Configura la connessione webhook di Azure Logic App

  1. Vai all'app per la logica creata nel passaggio precedente.
  2. Fai clic su Strumenti di sviluppo > Logic App Designer.
  3. Fai clic su Aggiungi un attivatore.
  4. Cerca Microsoft Defender for Cloud > Quando viene creato o attivato un avviso di Microsoft Defender for Cloud come trigger.

  5. Fai clic su Crea nuovo e segui le istruzioni per l'autenticazione.

  6. Fai clic su Inserisci un nuovo passaggio per aggiungere un nuovo passaggio al flusso di lavoro.

  7. Fai clic su Aggiungi un'azione.

  8. Cerca HTT.

  9. Seleziona HTTP come azione.

  10. Configura l'azione HTTP:

    • URI: qui inserirai l'URL dell'endpoint API Google SecOps.
    • Metodo: POST
    • Aggiungi intestazione Content-Type: imposta Content-Type come chiave dell'intestazione e application/json come valore dell'intestazione. Indica a Google SecOps il formato dei dati inviati.
    • Aggiungi la chiave API alle query: imposta key come prima chiave di query e <API_KEY> come valore della query. API_KEY è il valore della chiave API generato durante la configurazione del feed Google SecOps.
    • Aggiungi chiave segreta alle query: imposta secret come seconda chiave di query e <SECRET_KEY> come valore della query. SECRET_KEY è la chiave segreta generata durante la configurazione del feed Google SecOps.
    • Imposta corpo dal passaggio precedente: fai clic su Inserisci contenuti richiesta > fai clic su Inserisci i dati dei passaggi precedenti (pulsante con l'icona a forma di fulmine a sinistra del campo di input).
  11. Fai clic su Salva.

Configura il webhook degli avvisi di Microsoft Defender Cloud

  1. Vai a Microsoft Defender for Cloud.
  2. Fai clic su Gestione > Automazione del flusso di lavoro.
  3. Fai clic su Aggiungi automazione del flusso di lavoro.
    • Nome: fornisci un nome descrittivo per la regola di automazione (ad esempio, ForwardAlertsToGoogleSecOps).
    • Gruppo di risorse: scegli un gruppo di risorse esistente.
    • Tipo di dati Defender for Cloud: scegli Avviso di sicurezza.
    • Gravità avviso: scegli Seleziona tutto.
    • Mostra le istanze di Logic App dai seguenti abbonamenti: scegli l'abbonamento in cui è stata creata Logic App.
    • Seleziona app per la logica: scegli l'app per la logica creata nei passaggi precedenti.
  4. Fai clic su Crea per salvare l'automazione del flusso di lavoro.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
AlertLink principal.resource.attribute.labels.AlertLink.value Mappato direttamente.
AlertName security_result.rule_name Mappato direttamente.
AlertSeverity security_result.severity Mappato direttamente se il valore è HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. In caso contrario, mappato a security_result.severity_details. Il valore viene convertito in maiuscolo prima del confronto.
AlertType security_result.threat_name Mappato direttamente.
CompromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Mappato direttamente.
Description security_result.description Mappato direttamente.
DisplayName security_result.summary Mappato direttamente.
EndTime about.resource.attribute.labels.EndTime.value Mappato direttamente.
Entities[].Location.City principal.location.city Mappato direttamente.
Entities[].Location.CountryName principal.location.country_or_region Mappato direttamente.
ExtendedLinks[].Category about.resource.attribute.labels.extendedLink_Category.value Mappato direttamente.
ExtendedLinks[].Href about.resource.attribute.labels.extendedLink_Href.value Mappato direttamente.
ExtendedLinks[].Label about.resource.attribute.labels.extendedLink_Label.value Mappato direttamente.
ExtendedLinks[].Type about.resource.attribute.labels.extendedLink_Type.value Mappato direttamente.
ExtendedProperties.Account Session Id network.session_id Mappato direttamente dopo la ridenominazione in accountSessionId.
ExtendedProperties.Alert Id metadata.product_log_id Mappato direttamente dopo la ridenominazione in alertId.
ExtendedProperties.Authentication type extensions.auth.auth_details Mappato direttamente dopo la ridenominazione in authenticationType.
ExtendedProperties.Client Application principal.application Mappato direttamente dopo la ridenominazione in clientApplication.
ExtendedProperties.Client Hostname principal.asset.hostname, principal.hostname Mappato direttamente dopo la ridenominazione in clientHostName.
ExtendedProperties.Client IP address principal.asset.ip, principal.ip Mappato direttamente dopo la ridenominazione in clientIpAddress.
ExtendedProperties.Client IP location principal.location.country_or_region Mappato direttamente dopo la ridenominazione in clientIpLocation.
ExtendedProperties.Client Location principal.location.country_or_region Mappato direttamente dopo la ridenominazione in clientLocation.
ExtendedProperties.Client Principal Name principal.user.userid Mappato direttamente dopo la ridenominazione in clientPrincipalName.
ExtendedProperties.Compromised Host principal.asset.hostname, principal.hostname Mappato direttamente dopo la ridenominazione in compromisedHost.
ExtendedProperties.Suspicious Command Line target.process.command_line Mappato direttamente dopo la ridenominazione in suspiciousCommandLine.
ExtendedProperties.Suspicious Process target.process.file.full_path Mappato direttamente dopo la ridenominazione in suspiciousProcess.
ExtendedProperties.Suspicious Process Id target.process.pid Mappato direttamente dopo la ridenominazione in suspiciousProcessId.
ExtendedProperties.User agent network.http.user_agent Mappato direttamente dopo la ridenominazione in userAgent.
ExtendedProperties.User Name principal.user.user_display_name Mappato direttamente dopo la ridenominazione in userName.
ExtendedProperties.resourceType principal.resource.name Mappato direttamente.
IsIncident security_result.detection_fields.IsIncident.value Mappato direttamente. Convertito in stringa.
ProcessingEndTime about.resource.attribute.labels.ProcessingEndTime.value Mappato direttamente.
ProductName metadata.product_name Mappato direttamente.
ResourceId principal.resource.product_object_id Mappato direttamente.
SourceSystem security_result.detection_fields.SourceSystem.value Mappato direttamente.
StartTime about.resource.attribute.labels.StartTime.value Mappato direttamente.
Status security_result.detection_fields.Status.value Mappato direttamente.
SystemAlertId metadata.product_log_id Mappato direttamente.
Tactics security_result.attack_details.tactics.name Mappato direttamente.
TenantId additional.fields.TenantId.string_value Mappato direttamente.
TimeGenerated about.resource.attribute.labels.TimeGenerated.value Mappato direttamente.
VendorName metadata.vendor_name Mappato direttamente.
WorkspaceResourceGroup target.resource.attribute.labels.WorkspaceResourceGroup.value Mappato direttamente.
WorkspaceSubscriptionId target.resource.attribute.labels.WorkspaceSubscriptionId.value Mappato direttamente.
_Internal_WorkspaceResourceId target.resource.product_object_id Mappato direttamente.
properties.alertDisplayName security_result.rule_name Mappato direttamente.
properties.alertType security_result.threat_name Mappato direttamente.
properties.alertUri principal.resource.attribute.labels.AlertUri.value Mappato direttamente.
properties.correlationKey principal.resource.attribute.labels.correlationKey.value Mappato direttamente.
properties.description security_result.description Mappato direttamente.
properties.endTimeUtc additional.fields.EndTime.string_value Mappato direttamente.
properties.entities[].location.city principal.location.city Mappato direttamente.
properties.entities[].location.countryName principal.location.country_or_region Mappato direttamente.
properties.entities[].location.latitude principal.location.region_coordinates.latitude Mappato direttamente. Convertita in numero in virgola mobile.
properties.entities[].location.longitude principal.location.region_coordinates.longitude Mappato direttamente. Convertita in numero in virgola mobile.
properties.extendedProperties.alert_Id metadata.product_log_id Mappato direttamente.
properties.extendedProperties.clientApplication principal.application Mappato direttamente.
properties.extendedProperties.clientIpAddress principal.asset.ip, principal.ip Mappato direttamente. Analizzato come indirizzo IP.
properties.extendedProperties.clientLocation principal.location.country_or_region Mappato direttamente.
properties.extendedProperties.clientPrincipalName principal.user.userid Mappato direttamente.
properties.extendedProperties.compromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Mappato direttamente.
properties.extendedProperties.resourceType principal.resource.name Mappato direttamente.
properties.IsIncident security_result.detection_fields.isIncident.value Mappato direttamente. Convertito in stringa.
properties.productName metadata.product_name Mappato direttamente.
properties.resourceIdentifiers[].<key> additional.fields.<key>_<index>.string_value Mappato direttamente. Alle chiavi $id e type viene aggiunto l'indice dell'elemento nell'array.
properties.severity security_result.severity Mappato direttamente se il valore è HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. In caso contrario, mappato a security_result.severity_details. Il valore viene convertito in maiuscolo prima del confronto.
properties.startTimeUtc additional.fields.StartTime.string_value Mappato direttamente.
properties.status security_result.detection_fields.Status.value Mappato direttamente.
properties.timeGeneratedUtc additional.fields.TimeGenerated.string_value Mappato direttamente. Se non viene fornito nel log, il valore è "MICROSOFT_DEFENDER_CLOUD_ALERTS". Imposta il valore su "MICROSOFT_DEFENDER_CLOUD_ALERTS". Impostato su "USER_RESOURCE_ACCESS" se sono presenti l'entità o la destinazione, altrimenti impostato su "GENERIC_EVENT".

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