Øvelse – Opret grundlæggende Azure Monitor-logforespørgsler for at udtrække oplysninger fra logdata

Fuldført

Operationsteamet har i øjeblikket ikke tilstrækkelige oplysninger om systemets funktionsmåde til at diagnosticere og løse problemer effektivt. For at løse dette problem har teamet konfigureret et Azure Monitor-arbejdsområde med virksomhedens Azure-tjenester. Den kører Kusto-forespørgsler for at få systemets status og forsøger at identificere årsagerne til eventuelle problemer, der måtte opstå.

Teamet er især interesseret i at overvåge sikkerhedshændelser for at kontrollere, om der er mulige forsøg på at bryde ind i systemet. En hacker kan forsøge at manipulere de programmer, der kører på systemet, så teamet vil også indsamle programdata til yderligere analyse. En hacker kan også forsøge at stoppe de computere, der opretter systemet, så teamet vil undersøge, hvordan og hvornår maskiner stoppes og genstartes.

I denne øvelse skal du øve dig i at udføre Azure-logforespørgsler mod et demoprojekt, der indeholder eksempeldata i tabeller, logge og forespørgsler.

Opret grundlæggende Azure Monitor-logforespørgsler for at udtrække oplysninger fra logdata

Lad os bruge ruden Azure Demo Logs til at øve sig i at skrive forespørgsler. Arbejdsområdet for demoprojektet er udfyldt på forhånd med eksempeldata. Azure tilbyder en optimeret SQL-lignende forespørgsel med visualiseringsindstillinger for dataene på et sprog, der kaldes KQL (Kusto Query Language).

  1. Åbn demomiljøet Logs. I øverste venstre hjørne under Ny forespørgsel 1finder du Demo-, som identificerer forespørgslens arbejdsområde (eller område). Venstre side af denne rude indeholder flere faner: Tabeller, Forespørgslerog Functions. I højre side er der et arbejdsområde til oprettelse eller redigering af forespørgsler.

  2. På fanen Ny forespørgsel 1 skal du angive en grundlæggende forespørgsel på den første linje i arbejdsområdet. Denne forespørgsel henter oplysningerne om de 10 seneste sikkerhedshændelser.

    SecurityEvent
        | take 10
    
  3. Vælg Kør på kommandolinjen for at udføre forespørgslen og få vist resultaterne. Du kan udvide hver række i resultatruden for at få flere oplysninger.

  4. Sortér dataene efter tid ved at føje et filter til din forespørgsel:

    SecurityEvent
        | top 10 by TimeGenerated
    
  5. Tilføj en filterdelsætning og et tidsinterval. Kør denne forespørgsel for at hente poster, der er mere end 30 minutter gamle, og som har et niveau på 10 eller mere:

    SecurityEvent
        | where TimeGenerated < ago(30m)
        | where toint(Level) >= 10
    
  6. Kør følgende forespørgsel for at søge i tabellen AppEvents efter poster for den Clicked Schedule Button hændelse, der aktiveres inden for de seneste 24 timer:

    AppEvents 
        | where TimeGenerated > ago(24h)
        | where Name == "Clicked Schedule Button"
    
  7. Kør følgende forespørgsel for at få vist antallet af forskellige computere, der genererede impulshændelser hver uge for de sidste tre uger. Resultaterne vises som et liggende søjlediagram:

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

Brug foruddefinerede Azure-logforespørgsler til at udtrække oplysninger fra logdata

Ud over at skrive forespørgsler fra bunden kan operationsteamet også drage fordel af foruddefinerede forespørgsler i Azure Logs, der besvarer almindelige spørgsmål, der er relateret til deres ressourcers tilstand, tilgængelighed, brug og ydeevne.

  1. Brug parameteren tidsinterval på kommandolinjen til at angive et brugerdefineret område. Vælg måned, år og dag til et interval fra januar til i dag. Du kan angive og anvende et brugerdefineret klokkeslæt på en hvilken som helst forespørgsel.

  2. Vælg Forespørgslerpå værktøjslinjen til venstre. På rullelisten i menuen til venstre kan du få vist en liste over eksempelforespørgslerne grupperet efter Kategori, Forespørgselstype, Ressourcetype, Løsningeller Emne.

    Skærmbillede af rullemenuen Gruppér efter under fanen Forespørgsler i sideruden.

  3. Vælg Kategori på rullelisten, og vælg derefter it-& Administrationsværktøjer.

  4. I søgefeltet skal du angive Distinkt manglende opdateringer på tværs af computere. Dobbeltklik på forespørgslen i venstre rude, og vælg derefter Kør. Ruden Logs vises igen, hvor forespørgslen returnerer en liste over Windows-opdateringer, der mangler på virtuelle maskiner, som sender logge til arbejdsområdet.

    Seddel

    Du kan også køre den samme forespørgsel fra ruden Logs. I ruden til venstre skal du vælge fanen Forespørgsler og derefter vælge Kategori på rullelisten Gruppér efter. Rul nu ned på listen, udvid it-& Administrationsværktøjer, og dobbeltklik på Distinct missing updates på tværs af computere. Vælg Kør for at køre forespørgslen. Når du vælger en foruddefineret forespørgsel i venstre rude, føjes forespørgselskoden til den forespørgsel, der findes i arbejdsområdet. Husk at rydde arbejdsområdet, før du åbner eller tilføjer en ny forespørgsel, der skal køres.

  5. Fjern markeringen i søgefeltet i ruden til venstre. Vælg Forespørgsler, og vælg derefter kategori på rullelisten Gruppér efter. Udvid Azure Monitor-, og dobbeltklik på Computere, der er tilgængelige i dag. Vælg Kør. Denne forespørgsel opretter et tidsseriediagram med antallet af entydige IP-adresser, der sender logge til arbejdsområdet hver time for den sidste dag.

  6. Vælg emne på rullelisten Gruppér efter, rul ned for at udvide Function App, og dobbeltklik derefter på Vis programlogfiler fra Funktionsapps. Vælg Kør. Denne forespørgsel returnerer en liste over programlogge sorteret efter tidspunkt med de nyeste logfiler, der vises først.

Du vil bemærke, at fra de Kusto-forespørgsler, du brugte her, er det nemt at målrette en forespørgsel til et bestemt tidsvindue, hændelsesniveau eller hændelseslogtype. Sikkerhedsteamet kan nemt undersøge impulser for at identificere, hvornår servere ikke er tilgængelige, hvilket kan indikere et denial-of-service-angreb. Hvis teamet får øje på det tidspunkt, hvor en server ikke var tilgængelig, kan den forespørge efter hændelser i sikkerhedsloggen omkring det pågældende tidspunkt for at diagnosticere, om et angreb forårsagede afbrydelsen. Foruddefinerede forespørgsler kan også evaluere VM-tilgængelighed, identificere manglende Windows-opdateringer og gennemse firewalllogge for at få vist afviste netværksflows, der er beregnet til vm'er af interesse.