Übung: Erstellen grundlegender Azure Monitor-Protokollabfragen zum Extrahieren von Informationen aus Protokolldaten

Abgeschlossen

Das Betriebsteam verfügt zurzeit nicht über genügend Informationen über das Systemverhalten, um Probleme effektiv zu diagnostizieren und zu beheben. Das Team hat einen Azure Monitor-Arbeitsbereich mit den Azure-Diensten des Unternehmens konfiguriert, um dieses Problem zu beheben. Es führt Kusto-Abfragen zur Ermittlung des Systemstatus aus und versucht, die Ursachen der auftretenden Probleme zu identifizieren.

Das Team ist insbesondere daran interessiert, Sicherheitsereignisse zu überwachen, um diese auf mögliche Eindringversuche ins System zu überprüfen. Ein Angreifer könnte versuchen, die Anwendungen zu manipulieren, die auf dem System ausgeführt werden, sodass das Team zur weiteren Analyse auch Anwendungsdaten sammeln möchte. Ein Angreifer könnte außerdem versuchen, die Computer anzuhalten, aus denen das System besteht. Das Team möchte daher überprüfen, wie und wann Computer beendet und neu gestartet werden.

In dieser Übung werden Azure-Protokollabfragen für ein Demoprojekt ausgeführt, das Beispieldaten in Tabellen, Protokollen und Abfragen enthält.

Erstellen grundlegender Azure Monitor-Protokollabfragen zum Extrahieren von Informationen aus Protokolldaten

Wir verwenden den Azure-Bereich für Demoprotokolle, um das Schreiben von Abfragen zu üben. Der Arbeitsbereich des Demoprojekts wurde vorab mit Beispieldaten aufgefüllt. Azure bietet eine optimierte, SQL-ähnliche Abfrage mit Visualisierungsoptionen für die zugehörigen Daten in der sogenannten Kusto-Abfragesprache (Kusto Query Language, KQL).

  1. Öffnen Sie die Demoumgebung für Protokolle. Links oben unter Neue Abfrage 1 finden Sie Demo, womit der Arbeitsbereich (oder Umfang) der Abfrage angegeben wird. Die linke Seite dieses Bereichs enthält mehrere Registerkarten: Tabellen, Abfragen und Funktionen. Rechts befindet sich ein Scratchpad zum Erstellen oder Bearbeiten von Abfragen.

  2. Geben Sie auf der Registerkarte Neue Abfrage 1 in der ersten Zeile des Scratchpads eine einfache Abfrage ein. Diese Abfrage ruft die Details der letzten zehn Sicherheitsereignisse ab.

    SecurityEvent
        | take 10
    
  3. Wählen Sie auf der Befehlsleiste Ausführen aus, um die Abfrage auszuführen, und sehen Sie sich die Ergebnisse an. Sie können jede Zeile im Ergebnisbereich erweitern, um weitere Informationen zu erhalten.

  4. Sortieren Sie die Daten nach Zeit, indem Sie Ihrer Abfrage einen Filter hinzufügen:

    SecurityEvent
        | top 10 by TimeGenerated
    
  5. Fügen Sie eine Filterklausel und einen Zeitbereich hinzu. Führen Sie diese Abfrage aus, um Datensätze abzurufen, die älter als 30 Minuten sind und eine Ebene von mindestens 10 aufweisen:

    SecurityEvent
        | where TimeGenerated < ago(30m)
        | where toint(Level) >= 10
    
  6. Führen Sie die folgende Abfrage aus, um die Tabelle AppEvents nach Datensätzen zum Ereignis Clicked Schedule Button zu durchsuchen, das in den letzten 24 Stunden ausgelöst wurde:

    AppEvents 
        | where TimeGenerated > ago(24h)
        | where Name == "Clicked Schedule Button"
    
  7. Führen Sie die folgende Abfrage aus, um die Anzahl der verschiedenen Computer anzuzeigen, die in den letzten drei Wochen wöchentlich Heartbeatereignisse generiert haben. Die Ergebnisse werden als Balkendiagramm angezeigt:

    Heartbeat
        | where TimeGenerated >= startofweek(ago(21d))
        | summarize dcount(Computer) by endofweek(TimeGenerated) | render barchart kind=default
    

Verwenden vordefinierter Azure-Protokollabfragen, um Informationen aus Protokolldaten zu extrahieren

Neben von Grund auf neu erstellten Abfragen kann das Betriebsteam auch vordefinierte Abfragen in Azure-Protokollen nutzen, um Antworten auf häufig gestellte Fragen im Zusammenhang mit Integrität, Verfügbarkeit, Nutzung und Leistung seiner Ressourcen zu erhalten.

  1. Verwenden Sie den Parameter Zeitbereich auf der Befehlsleiste, um einen benutzerdefinierten Bereich festzulegen. Wählen Sie Monat, Jahr und Tag so aus, dass der Zeitraum von Januar bis heute reicht. Für jede Abfrage kann eine benutzerdefinierte Zeit festgelegt und angewendet werden.

  2. Wählen Sie auf der linken Symbolleiste Abfragen aus. Sie können in der Dropdownliste im linken Menü eine Liste der Beispielabfragen anzeigen. Diese sind nach Kategorie, Abfragetyp, Ressourcentyp, Projektmappe oder Thema gruppiert.

    Screenshot der Dropdownoptionen für „Gruppieren nach“ auf der Registerkarte „Abfragen“ im Seitenbereich.

  3. Wählen Sie in der Dropdownliste Kategorie und dann IT- und Verwaltungstools aus.

  4. Geben Sie im Suchfeld Distinct missing updates cross computers (Bestimmte fehlende Updates auf allen Computern) ein. Doppelklicken Sie im linken Bereich auf die Abfrage, und wählen Sie dann Ausführen aus. Der Bereich Protokolle wird wieder angezeigt, und von der Abfrage wird eine Liste mit Windows-Updates zurückgegeben, die auf virtuellen Computern fehlen, von denen Protokolle an den Arbeitsbereich gesendet werden.

    Hinweis

    Sie können dieselbe Abfrage auch über den Bereich Protokolle ausführen. Wählen Sie im linken Bereich die Registerkarte Abfragen und dann in der Dropdownliste Gruppieren nach die Option Kategorie aus. Scrollen Sie nun in der Liste nach unten. Klappen Sie IT- und Verwaltungstools auf, und doppelklicken Sie auf Eindeutig identifizierbare fehlende Updates auf allen Computern. Klicken Sie auf Ausführen, um die Abfrage auszuführen. Wenn Sie im linken Bereich eine vordefinierte Abfrage auswählen, wird der Abfragecode an die Abfrage angefügt, die aktuell im Scratchpad vorhanden ist. Denken Sie daran, das Scratchpad zu löschen, bevor Sie eine neu auszuführende Abfrage öffnen oder hinzufügen.

  5. Leeren Sie im linken Bereich das Suchfeld. Wählen Sie Abfragen und dann in der Dropdownliste Gruppieren nach die Option Kategorie aus. Klappen Sie Azure Monitor auf, und wählen Sie Computerverfügbarkeit heute aus. Klicken Sie auf Run (Ausführen). Diese Abfrage erstellt ein Zeitreihendiagramm mit der Anzahl der eindeutigen IP-Adressen, die am letzten Tag stündlich Protokolle an den Arbeitsbereich gesendet haben.

  6. Wählen Sie in der Dropdownliste Gruppieren nach die Option Thema aus. Scrollen Sie nach unten, klappen Sie Funktions-App auf, und doppelklicken Sie auf Anwendungsprotokolle aus Funktions-Apps anzeigen. Klicken Sie auf Run (Ausführen). Diese Abfrage gibt eine Liste von Anwendungsprotokollen zurück, die nach Zeit sortiert sind. Die aktuellsten Protokolle werden als Erstes angezeigt.

Sie können anhand der hier verwendeten Kusto-Abfragen feststellen, dass es einfach ist, eine Abfrage auf ein bestimmtes Zeitfenster, eine bestimmte Ereignisebene oder einen bestimmten Ereignisprotokolltyp anzuwenden. Das Sicherheitsteam kann Heartbeats mühelos untersuchen, um zu ermitteln, wann Server nicht verfügbar sind, was auf einen Denial-of-Service-Angriff hindeuten könnte. Wenn das Team den Zeitpunkt erkennt, zu dem der Server nicht verfügbar war, kann es Abfragen für Ereignisse im Sicherheitsprotokoll um diesen Zeitpunkt herum ausführen. Somit kann es diagnostizieren, ob ein Angriff die Ursache für die Unterbrechung war. Darüber hinaus können vordefinierte Abfragen die VM-Verfügbarkeit auswerten, fehlende Windows-Updates identifizieren und Firewallprotokolle überprüfen, um verweigerte Netzwerkflows anzuzeigen, die für die gewünschten virtuellen Computer vorgesehen sind.