Raccogliere i log di Azure App Service

Supportato in:

Questo documento spiega come esportare i log di Azure App Service in Google Security Operations utilizzando un account di archiviazione Azure. L'analizzatore sintattico trasforma i log di Azure App Service non elaborati in formato JSON in un Unified Data Model (UDM) strutturato. Estrae i campi pertinenti dai log non elaborati, esegue la pulizia e la normalizzazione dei dati e mappa le informazioni estratte ai campi UDM corrispondenti, per poi restituire un oggetto JSON conforme a UDM per ogni voce di log.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di avere un tenant Azure attivo.
  • Assicurati di disporre dell'accesso con privilegi ad Azure.

Configura l'account di archiviazione Azure

  1. Nella console di Azure, cerca Account di archiviazione.
  2. Fai clic su + Crea.
  3. Specifica i valori per i seguenti parametri di input:
    • Abbonamento: seleziona l'abbonamento.
    • Gruppo di risorse: seleziona il gruppo di risorse.
    • Regione: seleziona la regione.
    • Prestazioni: seleziona il rendimento (consigliato standard).
    • Redundanza: seleziona la ridondanza (consigliata GRS o LRS).
    • Nome account di archiviazione: inserisci un nome per il nuovo account di archiviazione.
  4. Fai clic su Review + create (Rivedi e crea).
  5. Esamina la panoramica dell'account e fai clic su Crea.
  6. Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Chiavi di accesso in Sicurezza + reti.
  7. Fai clic su Mostra accanto a chiave1 o chiave2.
  8. Fai clic su Copia negli appunti per copiare la chiave.
  9. Salva la chiave in un luogo sicuro per utilizzarla in un secondo momento.
  10. Nella pagina Panoramica dell'account di archiviazione, seleziona il sottomenu Endpoint in Impostazioni.
  11. Fai clic su Copia negli appunti per copiare l'URL dell'endpoint del servizio Blob (ad esempio https://<storageaccountname>.blob.core.windows.net).
  12. Salva l'URL dell'endpoint in un luogo sicuro per utilizzarlo in un secondo momento.

Configurare l'esportazione dei log per i log di accesso di Azure AD

  1. Accedi al portale di Azure utilizzando il tuo account con privilegi.
  2. Vai a Servizi app e seleziona il servizio app richiesto in uso.
  3. Seleziona Monitoraggio > Log di App Service.
  4. Attiva l'opzione Logging delle applicazioni (blob) impostandola su ON.
  5. Seleziona Spazio di archiviazione in Logging del servizio web.
  6. Seleziona l'abbonamento e l'account di archiviazione.
  7. Definisci il periodo di conservazione e la quota in base ai tuoi requisiti.
  8. Imposta l'opzione su ON per i messaggi di errore dettagliati.
  9. Attiva l'opzione ON per Tracciamento delle richieste non riuscite.
  10. Fai clic su Salva.

Configura un feed in Google SecOps per importare i log del servizio app di Azure

  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 Azure App Service).
  4. Seleziona Microsoft Azure Blob Storage come Tipo di origine.
  5. Seleziona Azure App Service come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:

    • URI Azure: l'URL dell'endpoint del blob.
      • ENDPOINT_URL/BLOB_NAME
        • Sostituisci quanto segue:
        • ENDPOINT_URL: l'URL dell'endpoint blob (https://<storageaccountname>.blob.core.windows.net)
        • BLOB_NAME: il nome del blob (ad esempio <logname>-logs)
    • L'URI è un: seleziona il TIPO DI URI in base alla configurazione dello stream di log (File singolo | Directory | Directory che include sottodirectory).
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.

    • Chiave condivisa: la chiave di accesso ad Azure Blob Storage.

    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  8. Fai clic su Avanti.

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

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
AppRoleInstance read_only_udm.principal.resource.product_object_id Mappatura diretta
AppRoleName read_only_udm.principal.resource.name Mappatura diretta
AppVersion read_only_udm.principal.resource.attribute.labels.value Mappatura diretta
Categoria read_only_udm.metadata.product_event_type Mappatura diretta
CIp read_only_udm.target.asset.ip Mappatura diretta
CIp read_only_udm.target.ip Mappatura diretta
ClientCity read_only_udm.principal.location.city Mappatura diretta
ClientCountryOrRegion read_only_udm.principal.location.country_or_region Mappatura diretta
ClientIP read_only_udm.principal.asset.ip Mappatura diretta
ClientIP read_only_udm.principal.ip Mappatura diretta
ClientStateOrProvince read_only_udm.principal.location.state Mappatura diretta
ClientType read_only_udm.additional.fields.value.string_value Mappatura diretta
ComputerName read_only_udm.principal.asset.hostname Mappatura diretta
ComputerName read_only_udm.principal.hostname Mappatura diretta
Cookie read_only_udm.principal.resource.attribute.labels.value Mappatura diretta
CsBytes read_only_udm.network.sent_bytes Rinominato da CsBytes
CsHost read_only_udm.additional.fields.value.string_value Mappatura diretta
CsMethod read_only_udm.network.http.method Mappatura diretta
CsUriQuery read_only_udm.principal.resource.attribute.labels.value Mappatura diretta
CsUriStem read_only_udm.additional.fields.value.string_value Mappatura diretta
CsUriStem read_only_udm.target.url Mappatura diretta
CsUsername read_only_udm.principal.user.user_display_name Mappatura diretta
EventIpAddress read_only_udm.principal.asset.ip Mappatura diretta
EventIpAddress read_only_udm.principal.ip Mappatura diretta
EventPrimaryStampName read_only_udm.additional.fields.value.string_value Mappatura diretta
EventStampName read_only_udm.additional.fields.value.string_value Mappatura diretta
EventStampType read_only_udm.additional.fields.value.string_value Mappatura diretta
Host read_only_udm.principal.asset.hostname Mappatura diretta
Host read_only_udm.principal.hostname Mappatura diretta
IKey read_only_udm.target.resource.attribute.labels.value Mappatura diretta
Istanza read_only_udm.additional.fields.value.string_value Mappatura diretta
Nome read_only_udm.additional.fields.value.string_value Mappatura diretta
Protocollo read_only_udm.additional.fields.value.string_value Mappatura diretta
Protocollo read_only_udm.network.application_protocol Mappato a HTTP se il protocollo è HTTP/1.1
Referer read_only_udm.network.http.referral_url Mappatura diretta
ResourceGUID read_only_udm.target.resource.product_object_id Rinominato da ResourceGUID
SDKVersion read_only_udm.additional.fields.value.string_value Mappatura diretta
SDKVersion read_only_udm.principal.resource.attribute.labels.value Mappatura diretta
SPort read_only_udm.principal.port Rinominato da SPort
ScBytes read_only_udm.network.received_bytes Rinominato da ScBytes
ScStatus read_only_udm.network.http.response_code Rinominato da ScStatus
Tempo impiegato read_only_udm.additional.fields.value.string_value Mappatura diretta
Tipo read_only_udm.additional.fields.value.string_value Mappatura diretta
Utente read_only_udm.principal.user.userid Mappatura diretta
UserAddress read_only_udm.principal.asset.ip Estratto da UserAddress se si tratta di un indirizzo IP valido
UserAddress read_only_udm.principal.ip Estratto da UserAddress se si tratta di un indirizzo IP valido
UserAgent read_only_udm.network.http.user_agent Mappatura diretta
UserDisplayName read_only_udm.principal.user.user_display_name Mappatura diretta
categoria read_only_udm.metadata.product_event_type Mappatura diretta
livello read_only_udm.security_result.severity In maiuscolo e rinominato da livello
località read_only_udm.principal.location.name Mappatura diretta
operationName read_only_udm.additional.fields.value.string_value Mappatura diretta
record.properties.Protocol read_only_udm.additional.fields.value.string_value Mappatura diretta
record.properties.Result read_only_udm.security_result.summary Mappatura diretta
record.time read_only_udm.metadata.event_timestamp Analizzata come timestamp RFC 3339
resourceId read_only_udm.target.resource.attribute.labels.value Mappatura diretta
resourceId read_only_udm.target.resource.product_object_id Rinominato da resourceId
read_only_udm.metadata.event_type Determinato in base alla presenza di principale, target e protocollo. Imposta su NETWORK_HTTP se sono presenti principal, target e Protocol=HTTP. Imposta su NETWORK_CONNECTION se sono presenti principali e target. Imposta su STATUS_UPDATE se è presente solo il principale. In caso contrario, imposta GENERIC_EVENT.

Modifiche

2024-10-18

Miglioramento:

  • properties.XForwardedHost è stato mappato a principal.hostname e principal.asset.hostname.
  • properties_category è stato mappato a additional.fields.
  • properties.roleInstance è stato mappato a principal.resource.product_object_id.
  • properties.message è stato mappato a security_result.summary.

2024-09-30

Miglioramento:

  • È stato aggiunto il supporto per l'analisi del nuovo formato dei log JSON non analizzati.

2024-06-24

Miglioramento:

  • metadata.product_name e metadata.vendor_name sono stati mappati a AZURE_APP_SERVICE.

2024-06-07

Miglioramento:

  • È stato aggiunto il supporto per i log JSON, quando non sono in formato array.
  • properties.ScSubStatus è stato mappato a additional.fields.
  • properties.ScWin32Status è stato mappato a additional.fields.

2024-04-25

Miglioramento:

  • properties.User è stato mappato a principal.user.userid.
  • properties.UserDisplayName è stato mappato a principal.user.user_display_name.
  • properties.UserAddress è stato mappato a principal.ip.
  • Sono stati mappati properties.Protocol, ClientBrowser, ClientModel, ClientOS, OperationId, ParentId e ItemCount a additional.fields.
  • CsUriQuery, SDKVersion e Cookie sono stati mappati a principal.resource.attribute.labels.
  • SessionId è stato mappato a network.session_id.
  • Message è stato mappato a security_result.summary.
  • SeverityLevel è stato mappato a security_result.severity_details.

2024-02-20

Miglioramento:

  • record.AppRoleInstance è stato mappato a principal.resource.product_object_id.
  • record.AppRoleName è stato mappato a principal.resource.name.
  • record.ClientCity è stato mappato a principal.location.city.
  • record.ClientCountryOrRegion è stato mappato a principal.location.country_or_region.
  • record.ClientStateOrProvince è stato mappato a principal.location.state.
  • record.ClientIP è stato mappato a principal.ip.
  • Result è stato mappato a security_result.summary.
  • UserAgent è stato mappato a network.http.user_agent.
  • Referer è stato mappato a network.http.referral_url.
  • record.ResourceGUID è stato mappato a target.resource.product_object_id.
  • Se record.ResourceGUID non è presente, record.resourceId è mappato a target.resource.product_object_id.
  • Se record.ResourceGUID è presente, mappa record.resourceId a additional.fields.
  • record.Type è stato mappato a additional.fields.
  • record.ClientType è stato mappato a additional.fields.
  • record.SDKVersion è stato mappato a additional.fields.
  • record.Name è stato mappato a additional.fields.
  • record.Instance è stato mappato a additional.fields.
  • record.TimeTaken è stato mappato a additional.fields.
  • record.Cookie è stato mappato a additional.fields.
  • record.AppVersion è stato mappato a principal.resource.attribute.labels.
  • record.IKey è stato mappato a target.resource.attribute.labels.
  • record.Category è stato mappato a metadata.product_event_type.
  • CsUriStem è stato mappato a target.url.
  • La mappatura di CsBytes è cambiata da network.received_bytes a network.sent_bytes.
  • La mappatura di ScBytes è cambiata da network.sent_bytes a network.received_bytes.

2023-12-07

  • Parser appena creato.

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