Integrare i log con un'area di lavoro Log Analytics

Completato

È possibile usare la registrazione avanzata in Azure per visualizzare gli utenti che hanno eseguito l'accesso alla rete e visualizzare la loro attività mentre erano connessi alla rete.

Si è visto come accedere ai log di accesso e di controllo e come usarli per cercare comportamenti imprevisti degli utenti. L'accesso a questi dati è un primo importante passaggio per la protezione della rete e dei relativi asset e risorse. La raccolta e l'elaborazione dei file di log di accesso e dei log attività sono operazioni che possono richiedere molto lavoro. Questo processo può identificare un comportamento sospetto dopo l'evento, ma non soddisfa comunque la necessità del team addetto alla sicurezza di controllare in tempo reale tale comportamento.

Monitoraggio di Azure può fornire gli avvisi e le visualizzazioni in tempo reale di cui ha bisogno il team addetto alla sicurezza. È possibile usare un'area di lavoro Log Analytics per Monitoraggio di Azure per contenere, archiviare e visualizzare i dati dei log attività e di accesso. Per rassicurare il team responsabile della sicurezza nell'organizzazione, è utile raccogliere altre informazioni su Monitoraggio di Azure e su come usarlo per identificare comportamenti di accesso sospetti.

Questa unità descrive come configurare un'area di lavoro Log Analytics per Monitoraggio di Azure. Si apprenderà quindi come inviare file di log all'area di lavoro Log Analytics. Infine, si imparerà a creare avvisi per ricevere notifica in caso di comportamenti o attività sospetti degli utenti. In un esercizio successivo sarà possibile fare pratica in autonomia.

Prerequisiti

Per usare un'area di lavoro Log Analytics per visualizzare e analizzare i log di Microsoft Entra, assicurarsi che gli elementi seguenti siano disponibili o configurati:

  • Accesso a un'area di lavoro Log Analytics.
  • Accesso ai log di Microsoft Entra.
  • Accesso alle impostazioni di diagnostica di Microsoft Entra.
  • Sottoscrizione di Microsoft Entra ID P1, P2 o Premium 2.
  • Uno dei seguenti ruoli di Microsoft Entra:
    • Amministratore della sicurezza
    • Ruolo con autorizzazioni di lettura per la sicurezza
    • Lettore di report
    • Amministratore globale

Creare un'area di lavoro Log Analytics

Si sa che Azure raccoglie i dati degli utenti sotto forma di file di log di controllo e di accesso, ma non è possibile importare i dati direttamente in Monitoraggio di Azure. Prima di tutto, è necessario raccogliere i dati di log in un'area di lavoro Log Analytics. Ogni area di lavoro Log Analytics è unica e ha un repository di dati e una configurazione specifici. Quando si configura l'area di lavoro, è possibile analizzare i dati usando query basate su tabelle e di ricerca log.

La creazione di un'area di lavoro Log Analytics è semplice. Nella portale di Azure cercare log analytics per creare una nuova risorsa area di lavoro Log Analytics.

Screenshot of Log Analytics search results to demonstrate the concept.

Durante la creazione di una nuova area di lavoro Log Analytics, selezionare o immettere i dettagli per l'area di lavoro. Assicurarsi di creare una nuova area di lavoro, perché l'area di lavoro è univoca per l'utente che ha attualmente eseguito l'accesso. Ogni area di lavoro deve avere un nome globalmente univoco in tutte le sottoscrizioni di Monitoraggio di Azure. Facoltativamente, è possibile creare tag da usare per l'area di lavoro.

Il piano tariffario viene assegnato automaticamente come Con pagamento in base al consumo e si basa su un costo per gigabyte (GB).

Screenshot of Log Analytics workspace setup pane.

Dopo aver creato un'area di lavoro Log Analytics, è possibile raccogliere i dati di controllo e di accesso degli utenti ed eseguire analisi su tali dati.

Dimensioni di archiviazione per i log attività

È importante comprendere la quantità di spazio di archiviazione che l'area di lavoro utilizza. Un log eventi di accesso tipico ha una dimensione di circa 4 kilobyte (kB) e il log di controllo richiede circa 2 kB.

Per fare un esempio concreto, se il tenant ha 1.000 utenti, il log di controllo genera circa 15.000 eventi ogni giorno. Si raggiungerà quindi un volume di archiviazione di circa 30 megabyte (MB) al giorno o 900 MB al mese. I valori sono leggermente più alti per i log di accesso. Presupponendo un tenant di Azure di 1.000 utenti, i log di accesso genereranno 34.800 eventi al giorno, ovvero circa 140 MB al giorno o 4 GB di spazio di archiviazione al mese.

Inviare i log all'area di lavoro Log Analytics

Dopo aver creato un'area di lavoro Log Analytics, si assegnano i log di controllo e di accesso utente. Tutti i dati da usare nei log di Monitoraggio di Azure devono essere archiviati in un'area di lavoro Log Analytics. Nel portale di Azure, passare all'istanza di Microsoft Entra. Selezionare la scheda Monitoraggio e quindi selezionare Impostazioni di diagnostica.

Per creare una connessione tra i due file di log e l'area di lavoro Log Analytics, selezionare Aggiungi impostazione di diagnostica.

Screenshot that shows how to create a new diagnostic setting.

Immettere un nome da usare per l'impostazione e selezionare i log da inviare all'area di lavoro.

Selezionare l'opzione Invia a Log Analytics e quindi specificare o creare un'area di lavoro Log Analytics.

Screenshot that shows the concept of creating a new diagnostic setting.

A questo punto è stato configurato un processo di flusso dei dati che eseguirà il push dei dati di controllo e di accesso all'area di lavoro Log Analytics. Poiché si tratta di un nuovo servizio, sono necessari circa 15 minuti per visualizzare i dati nell'area di lavoro.

Analizzare i file di log

È stata configurata l'area di lavoro Log Analytics per ricevere i dati dell'attività utente. A questo punto è possibile sfruttare la potenza dei log di Monitoraggio di Azure per visualizzare l'attività all'interno dell'ambiente. Con i log di Monitoraggio di Azure, è possibile eseguire query sui dati per individuare tendenze o eventi specifici o mettere in correlazione più origini dati.

Schemi dei dati di log

I flussi dei dati per i log di controllo e di accesso vengono archiviati nell'area di lavoro Log Analytics in due tabelle separate, AuditLogs e SignInLogs. Ogni tabella ha un proprio schema che è possibile usare per eseguire query sui dati.

Scrivere le query del log attività

Dopo aver archiviato i log di controllo nelle tabelle dell'area di lavoro, è ora possibile eseguire query su di essi. È possibile scrivere due tipi di query, basate su tabelle e basate sulla ricerca. Le strutture degli schemi nella sezione precedente mostrano tutti i campi su cui è possibile eseguire una query.

Il linguaggio di query usato è Kusto, progettato per elaborare i dati e restituire un set di risultati.

Ogni query Kusto segue un modello comune:

  • Una query inizia sempre con il nome della tabella su cui la si sta eseguendo. Il nome in questo caso sarà SignInLogs o AuditLogs.
  • Ogni comando è separato da una pipe (|) e in genere inizia su una nuova riga. È possibile avere più pipe in una query.

A meno che non vengano nominate colonne specifiche, il set di risultati visualizzato contiene tutti i campi dello schema.

Il comando where rappresenta il modo più comune per filtrare i dati nella query. Quando si scrive una condizione per filtrare i dati, sono valide le espressioni seguenti:

Expression Descrizione Esempio
== Controllo di uguaglianza (con distinzione Maiuscole/minuscole) Level == 8
=~ Controllo di uguaglianza (senza distinzione Maiuscole/minuscole) EventSourceName =~ "microsoft-windows-security-auditing"
!=, <> Controllo di disuguaglianza (entrambe le espressioni sono identiche) Level != 4
and or Operatore obbligatorio tra le condizioni Level == 16 or CommandLine != ""

Altri comandi di filtro comuni includono:

Comando Descrizione Esempio
take *n* Appropriato per set di risultati di piccole dimensioni. Take restituisce n righe dal set di risultati senza alcun ordine particolare. AuditLogs | Take 10
top *n* by *field* Usare questo comando di filtro per restituire le prime n righe, ordinate in base al campo nominato. AuditLogs | Top 10 by timeGenerated
sort by *field* (desc) Se si vuole solo ordinare il set di risultati, è possibile usare il comando sort. È necessario specificare il campo in cui eseguire l'ordinamento, quindi è possibile aggiungere facoltativamente l'istruzione desc per specificare un criterio di ordinamento decrescente. AuditLogs | Sort by timeGenerated desc
Where campo (espressione) valore Questo è il comando di filtro principale. Si nominano il campo, l'espressione e il valore di confronto. È possibile usare più comandi where, ognuno separato da una pipe. AuditLogs | where CreatedDateTime >= ago(2d)
project campi Se si vuole limitare il set di risultati per visualizzare solo le colonne o i campi nominati, è possibile usare il comando project con un elenco di campi delimitati da virgole. AuditLogs | project timeGenerated, OperationName, ResourceGroup, Result

È possibile usare molti altri comandi per creare le query. Per altre informazioni su query e filtri, vedere i riferimenti alla fine di questo modulo.

Query di accesso di esempio

Si supponga di voler individuare le applicazioni più usate che sono state richieste e a cui è stato effettuato l'accesso nell'ultima settimana. La query sarà simile all'esempio seguente:

SigninLogs
| where CreatedDateTime >= ago(7d)
| summarize signInCount = count() by AppDisplayName
| sort by signInCount desc

Oppure, per ottenere informazioni sul numero di utenti contrassegnati come a rischio negli ultimi 14 giorni, usare questa query:

SigninLogs
| where CreatedDateTime >= ago(14d)
| where isRisky = true

Query di controllo di esempio

Si supponga ora di voler conoscere l'evento utente più comune per l'ultima settimana. Usare una query simile alla seguente:

AuditLogs
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName
| sort by auditCount desc

Usare cartelle di lavoro o modelli esistenti nell'area di lavoro Log Analytics

È possibile usare cartelle di lavoro esistenti per vedere le visualizzazioni comuni dei dati di controllo e di accesso. Se non si trova una cartella di lavoro con le funzioni richieste, è possibile iniziare con un modello e modificare la query.

Nell'area di lavoro Log Analytics nel portale di Azure, nel menu a sinistra in Generale selezionare Cartelle di lavoro.

Se non si trova una cartella di lavoro esistente con la query necessaria, è possibile selezionare il riquadro Modello predefinito e creare una query.

Screenshot that shows how to create a workbook from the gallery.

Se si vuole individuare l'evento utente più comune della settimana precedente, incollare questa query nell'editor di query:

AuditLogs
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName
| sort by auditCount desc

Eseguire la query per controllare i risultati. Quando si è soddisfatti dei dati recuperati, selezionare Modifica completata e quindi salvare la cartella di lavoro.

Screenshot that shows how to create a workbook.

Immettere un nome descrittivo, ad esempio Eventi utente comuni ultimi 7 giorni, quindi selezionare o immettere la sottoscrizione, il gruppo di risorse e la posizione da usare e infine salvare la cartella di lavoro.

Per visualizzare la cartella di lavoro, nel menu a sinistra in Generale selezionare Cartelle di lavoro. Cercare il riquadro della cartella di lavoro in Cartelle di lavoro modificate di recente.

Screenshot that shows how to find recently modified workbooks.

Verificare le conoscenze

1.

Quali sono i due tipi di query che è possibile scrivere per visualizzare i log di Microsoft Entra?

2.

Quale comando di filtro di query si usa per ottenere n righe senza un ordine specifico?