Raccogliere i log di Microsoft Sentinel
Panoramica
Questo parser estrae i campi dai log JSON di Microsoft Sentinel, esegue trasformazioni come l'estrazione dell'indirizzo IP e la manipolazione delle stringhe e mappa i dati estratti all'UDM, inclusi i campi principal, target, security_result e metadata. Gestisce inoltre vari tipi di dati e unisce le entità estratte nella struttura UDM.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso a Microsoft Sentinel.
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:
- 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 di Microsoft Sentinel.
- Seleziona Webhook come Tipo di origine.
- Seleziona Microsoft Sentinel come Tipo di log.
- Fai clic su Avanti.
- (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
.
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
- Copia e memorizza la chiave segreta, perché non potrai più visualizzarla. Puoi generare di nuovo una nuova chiave segreta, ma la rigenerazione della chiave segreta rende obsoleta quella precedente.
- Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nella tua applicazione client.
- 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, perché non potrai più visualizzarla. Puoi generare di nuovo una nuova chiave segreta, ma la rigenerazione della chiave segreta rende obsoleta quella precedente.
Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nella tua applicazione client.
Crea una chiave API per il feed webhook
Vai alla console Google Cloud > Credenziali.
Fai clic su Crea credenziali e poi seleziona Chiave API.
Limita l'accesso alla chiave API all'API Google Security Operations.
Specifica l'URL dell'endpoint
- Nella tua applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
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.
Configurare Logic App per gli incidenti di Microsoft Sentinel
Per configurare Logic App per gli incidenti di Microsoft Sentinel�, segui questi passaggi:
- Accedi al portale di Azure.
- Fai clic su Crea una risorsa.
- Cerca Logic App.
- Fai clic su Crea per avviare il processo di creazione.
- Specifica i valori per i seguenti parametri di input:
- Abbonamento: seleziona l'abbonamento.
- Gruppo di risorse: seleziona il gruppo di risorse.
- Nome: inserisci un nome per l'app per la logica.
- Regione: seleziona la regione.
- Spazio di lavoro Log Analytics: seleziona lo spazio di lavoro Log Analytics.
- Fai clic su Review + create (Rivedi e crea).
- Fai clic su Crea.
- Dopo aver creato l'app per la logica, fai clic su Vai alla risorsa.
- Fai clic su Strumenti di sviluppo > Logic App Designer.
- Fai clic su Aggiungi un attivatore.
- Cerca Microsoft Sentinel.
- Seleziona Incidente Microsoft Sentinel come trigger.
- Se non hai ancora creato una connessione a Microsoft Sentinel, dovrai farlo ora. Fai clic su Crea nuovo e segui le istruzioni per l'autenticazione.
- Fai clic su Inserisci un nuovo passaggio.
- Fai clic su Aggiungi un'azione.
- Cerca e seleziona HTTP come azione.
- Specifica i valori per i seguenti parametri di input:
- URI: l'URL dell'endpoint del feed.
- Metodo: POST
- Intestazioni: aggiungi le seguenti intestazioni:
- Content-Type: application/json
- X-goog-api-key: la chiave API per l'autenticazione a Google Security Operations.
- X-Webhook-Access-Key: la chiave segreta che hai generato per autenticare il feed.
Configurare l'app per la logica per gli avvisi di Microsoft Sentinel
Per configurare Logic App per gli avvisi di Microsoft Sentinel:
- Vai alla home page del portale Azure.
- Fai clic su Crea una risorsa.
- Cerca Logic App.
- Fai clic su Crea per avviare il processo di creazione.
- Specifica i valori per i seguenti parametri di input:
- Abbonamento: seleziona l'abbonamento.
- Gruppo di risorse: seleziona il gruppo di risorse.
- Nome: inserisci un nome per l'app per la logica.
- Regione: seleziona la regione.
- Spazio di lavoro Log Analytics: seleziona lo spazio di lavoro Log Analytics.
- Fai clic su Review + create (Rivedi e crea).
- Fai clic su Crea.
- Dopo aver creato l'app per la logica, fai clic su Vai alla risorsa.
- Fai clic su Strumenti di sviluppo > Logic App Designer.
- Fai clic su Aggiungi un attivatore.
- Cerca Microsoft Sentinel.
- Seleziona Avviso Microsoft Sentinel come attivatore.
- Se non hai ancora creato una connessione a Microsoft Sentinel, dovrai farlo ora. Fai clic su Crea nuovo e segui le istruzioni per l'autenticazione.
- Fai clic su Inserisci un nuovo passaggio.
- Fai clic su Aggiungi un'azione.
- Cerca e seleziona HTTP come azione.
- Specifica i valori per i seguenti parametri di input:
- URI: l'URL dell'endpoint del feed.
- Metodo: POST
- Intestazioni: aggiungi le seguenti intestazioni:
- Content-Type: application/json
- X-goog-api-key: la chiave API per l'autenticazione a Google Security Operations.
- X-Webhook-Access-Key: la chiave segreta che hai generato per autenticare il feed.
Configurare le regole di automazione per Microsoft Sentinel
Per configurare le regole di automazione per Microsoft Sentinel:
- Vai al tuo spazio di lavoro Microsoft Sentinel.
- Fai clic su Configurazione > Automazione.
- Fai clic su Crea.
- Seleziona Regola di automazione.
- Specifica i valori per i seguenti parametri di input:
- Nome: inserisci un nome per la regola di automazione.
- Trigger: seleziona Quando viene creato un incidente.
- Azioni: seleziona Esegui playbook > Logic App creato per gli incidenti.
- Fai clic su Applica.
- Fai clic su Crea.
- Seleziona Regola di automazione.
- Specifica i valori per i seguenti parametri di input:
- Nome: inserisci un nome per la regola di automazione.
- Trigger: seleziona Quando l'incidente viene aggiornato.
- Condizione: fai clic su Aggiungi > Condizione (AND) > Stato > Modificato.
- Azioni: seleziona Esegui playbook > Logic App creato per gli incidenti.
- Fai clic su Applica.
- Fai clic su Crea.
- Seleziona Regola di automazione.
- Specifica i valori per i seguenti parametri di input:
- Nome: inserisci un nome per la regola di automazione.
- Attivatore: seleziona Quando viene creato l'avviso.
- Azioni: seleziona Esegui playbook > App per la logica creata per gli avvisi.
- Fai clic su Applica.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
AlertLink |
principal.labels.AlertLink |
Mappato direttamente. |
AlertName |
security_result.rule_name |
Mappato direttamente. |
AlertSeverity |
security_result.severity |
Mappato direttamente, convertito in maiuscolo. Se il valore è HIGH, MEDIUM, LOW, CRITICAL o UNKNOWN_SEVERITY, viene mappato su security_result.severity . In caso contrario, viene mappato a security_result.severity_details . |
AlertType |
security_result.threat_name |
Mappato direttamente. |
Category |
security_result.detection_fields.Category |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Mappato direttamente. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
ConfidenceLevel |
security_result.confidence_details |
Mappato direttamente. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Mappato direttamente. |
cribl_pipe |
additional.fields.cribl_pipe |
Mappato direttamente. |
Description |
security_result.description |
Mappato direttamente. |
DestinationDevice |
security_result.detection_fields.DestinationDevice OPPURE target.ip |
Mappato dal campo ExtendedProperties dopo l'analisi JSON. Se il valore è un indirizzo IP valido, viene mappato a target.ip . In caso contrario, viene mappato come campo di rilevamento. |
DestinationDeviceAddress |
target.ip |
Mappato dal campo ExtendedProperties dopo l'analisi JSON, solo se un indirizzo IP valido. |
DeviceId |
security_result.detection_fields.DeviceId |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
DisplayName |
security_result.summary |
Mappato direttamente. |
EndTime |
about.labels.EndTime |
Mappato direttamente. |
Entities.Address |
principal.asset.ip |
Estratto dall'array Entities dopo l'analisi JSON. Vengono mappati solo gli indirizzi IP. |
Entities.HostName |
principal.asset.hostname OPPURE principal.asset.ip |
Estratto dall'array Entities dopo l'analisi JSON. Se il valore è un indirizzo IP valido, viene mappato a principal.asset.ip . In caso contrario, viene mappato a principal.asset.hostname . |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Estratto dall'array Entities dopo l'analisi JSON, spazi finali rimossi. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Estratto dall'array Entities dopo l'analisi JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Estratto dall'array Entities dopo l'analisi JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Mappato direttamente dal campo ExtendedProperties dopo l'analisi JSON. |
ExtendedProperties.SourceDevice |
principal.ip OPPURE security_result.detection_fields.SourceDevice |
Mappato dal campo ExtendedProperties dopo l'analisi JSON. Se il valore è un indirizzo IP valido, viene mappato a principal.ip . In caso contrario, viene mappato come campo di rilevamento. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Mappato dal campo ExtendedProperties dopo l'analisi JSON, solo se un indirizzo IP valido. |
IsIncident |
security_result.detection_fields.IsIncident |
Mappato direttamente, convertito in stringa. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Mappato direttamente. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Mappato direttamente. |
ProductName |
principal.resource.attribute.labels.ProductName |
Mappato direttamente. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Mappato direttamente. |
ResourceId |
principal.resource.product_object_id , target.resource.name |
Mappato direttamente. |
SourceComputerId |
principal.asset.asset_id |
Mappato direttamente, con il prefisso "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Mappato direttamente. |
StartTime |
about.labels.StartTime |
Mappato direttamente. |
Status |
security_result.detection_fields.Status |
Mappato direttamente. |
SystemAlertId |
metadata.product_log_id |
Mappato direttamente. |
Tactics |
security_result.attack_details.tactics.name |
Estratto dal campo Tactics dopo l'analisi JSON e la rimozione della barra rovesciata. |
Techniques |
security_result.attack_details.techniques.id |
Estratto dal campo Techniques dopo l'analisi JSON e la rimozione della barra rovesciata. |
TenantId |
additional.fields.TenantId |
Mappato direttamente. |
TimeGenerated |
about.labels.TimeGenerated |
Mappato direttamente. |
timestamp |
metadata.event_timestamp , events.timestamp |
Mappato direttamente. |
VendorName |
metadata.vendor_name |
Mappato direttamente. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Mappato direttamente. |
_time |
metadata.event_timestamp , events.timestamp |
Analizzato come timestamp utilizzando il formato UNIX o UNIX_MS. |
(Parser Logic) | metadata.event_type |
Imposta su "USER_RESOURCE_ACCESS" se sono presenti entità, destinazione e ResourceId. In caso contrario, imposta "GENERIC_EVENT". |
(Parser Logic) | metadata.log_type |
Imposta il valore su "MICROSOFT_SENTINEL". |
(Parser Logic) | metadata.product_name |
Imposta il valore su "MICROSOFT_SENTINEL". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.