Granska och spåra ändringar av incidentaktiviteter i Microsoft Sentinel i Azure Portal

Incidentuppgifter säkerställer omfattande och enhetlig behandling av incidenter för all SOC-personal. Uppgiftslistor definieras vanligtvis enligt beslut som görs av seniora analytiker eller SOC-chefer och omsätts i praktiken med hjälp av automatiseringsregler eller spelböcker.

Dina analytiker kan se en lista över uppgifter som de behöver utföra för en viss incident på sidan incidentinformation och markera dem som slutförda när de går. Analytiker kan också skapa egna uppgifter på plats manuellt direkt inifrån incidenten.

Den här artikeln beskriver hur du som SOC-chef kan granska historiken för Microsoft Sentinel incidentuppgifter och spåra de ändringar som gjorts i dem under hela livscykeln, för att mäta effekten av dina uppgiftstilldelningar och deras bidrag till SOC:s effektivitet och korrekt funktion.

Strukturen för arrayen Tasks i tabellen SecurityIncident

Tabellen SecurityIncident är en granskningstabell – den lagrar inte själva incidenterna, utan i stället poster över en incidents livslängd: dess skapande och eventuella ändringar som görs i den. Varje gång en incident skapas eller en ändring görs i en incident genereras en post i den här tabellen som visar incidentens aktuella tillstånd.

Tillägget av uppgiftsdetaljfält i schemat för SecurityIncident-tabellen gör det möjligt att granska uppgifter mer djupt.

Den detaljerade information som läggs till i fältet Uppgifter består av nyckel/värde-par som har följande struktur:

Nyckel Värdebeskrivning
createdBy Identiteten som skapade uppgiften:
- e-post: identitetens e-postadress
- namn: namnet på identiteten
- objectId: GUID för identiteten
– userPrincipalName: UPN för identiteten
createdTimeUtc Tiden då aktiviteten skapades i UTC.
lastCompletedTimeUtc Tiden då aktiviteten markerades som slutförd, i UTC.
lastModifiedBy Identiteten som senast ändrade uppgiften:
- e-post: identitetens e-postadress
- namn: namnet på identiteten
- objectId: GUID för identiteten
– userPrincipalName: UPN för identiteten
lastModifiedTimeUtc Tid då aktiviteten senast ändrades, i UTC.
Status Aktuell status för uppgiften: Ny, Slutförd, Borttagen.
taskId Resurs-ID för aktiviteten.
titel Eget namn som tilldelats uppgiften av dess skapare.

Visa incidentaktiviteter i tabellen SecurityIncident

Förutom arbetsboken för incidentuppgifter kan du granska uppgiftsaktivitet genom att köra en fråga mot tabellen SecurityIncident i Logs. Detta avsnitt visar hur du söker i tabellen och läser och förstår resultaten för att få information om uppgiftsaktivitet.

  1. På sidan Loggar anger du följande fråga i frågefönstret och kör den. Den här frågan returnerar alla incidenter som har tilldelats några uppgifter.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    Du kan lägga till valfritt antal instruktioner i frågan för att filtrera och begränsa resultatet. För att visa hur du visar och förstår resultaten ska vi lägga till instruktioner för att filtrera resultaten så att vi bara ser uppgifterna för en enskild incident, och vi lägger också till en project instruktion så att vi bara ser de fält som är användbara för vårt ändamål, utan mycket oreda.

    Mer information finns i Kusto-frågespråk översikt.

    SecurityIncident
    | where array_length( Tasks) > 0
    | where IncidentNumber == "405211"
    | sort by LastModifiedTime desc 
    | project IncidentName, Title, LastModifiedTime, Tasks
    
  2. Låt oss titta på den senaste posten för den här incidenten och hitta listan över uppgifter som är kopplade till den.

    1. Välj expanderingspilen bredvid den översta raden i frågeresultaten (som har sorterats i fallande ordning efter senaste datum).

      Skärmbild av resultatet av en fråga som visar en incident med tillhörande aktiviteter.

    2. Fältet Uppgifter är en matris med det aktuella tillståndet för alla aktiviteter i den här incidenten. Välj expanderaren för att visa varje objekt i matrisen på sin egen rad.

      Skärmbild av frågeresultat som visar en incident med utökade uppgifter.

    3. Nu ser du att det finns två uppgifter i denna incident. Var och en representeras i sin tur av en expanderbar matris. Välj en enskild aktivitets expanderare för att visa dess information.

      Skärmbild av frågeresultaten som visar en incident med en enda uppgift utökad.

    4. Här visas information om den första aktiviteten i matrisen ("0" är indexpositionen för aktiviteten i matrisen). Rubrikfältet visar namnet på aktiviteten som visas i incidenten.

Visa aktiviteter som lagts till i listan

Utför följande steg för att lägga till en uppgift i en incident och observera hur SecurityIncident-posten ändras.

  1. Nu ska vi lägga till en uppgift i incidenten och sedan kommer vi tillbaka hit, kör frågan igen och ser ändringarna i resultatet.

    1. På sidan Incidenter anger du incident-ID-numret i sökfältet.

    2. Öppna sidan incidentinformation och välj Uppgifter i verktygsfältet.

    3. Lägg till en ny aktivitet, ge den namnet "Den här aktiviteten är en testaktivitet!". Välj sedan Spara. Den sista uppgiften som visas nedan är vad du bör sluta med:

      Skärmbilden visar panelen för incidentuppgifter.

  2. Nu återvänder vi till sidan Loggar och kör SecurityIncident-frågan igen.

    I resultatet ser du att det finns en ny post i tabellen för samma incident (observera tidsstämplarna). Expandera posten så ser du att den post vi såg tidigare hade två uppgifter i Uppgifter-matrisen, medan den nya har tre. Den senaste uppgiften är den som vi precis har lagt till, som du kan se i rubriken.

    Skärmbild av frågeresultat som visar en incident med den nyligen skapade uppgiften.

Visa statusändringar i uppgifter

Om vi går tillbaka till uppgiften med titeln "Den här uppgiften är en testaktivitet!" på sidan med incidentinformation och markerar den som slutförd, och sedan kommer tillbaka till Loggar och kör frågan igen, ser vi ännu en ny post för samma incident, den här gången som visar uppgiftens nya status som Slutförd.

Skärmbild av frågeresultat som visar en incidentaktivitet med dess nya status.

Visa borttagning av uppgifter

Nu går vi tillbaka till uppgiftslistan på sidan med incidentinformation och tar bort uppgiften med titeln "Den här uppgiften är en testaktivitet!".

När vi kommer tillbaka till Loggar och kör incident-uppgiftsfrågan igen, ser vi en ny post, men denna gång statusen för vår uppgift—den med titeln "Denna uppgift är en testuppgift!" — kommer att raderas.

Men när uppgiften har dykt upp en sådan gång i matrisen (med statusen Borttagen ) visas den inte längre i matrisen Uppgifter i nya poster för incidenten i tabellen SecurityIncident . Tidigare befintliga register över händelsen kommer att fortsätta bevara bevisen på att denna uppgift en gång existerade.

Visa aktiva uppgifter som hör till en stängd incident

Med följande fråga kan du se om en incident har stängts, men inte alla dess tilldelade uppgifter har slutförts. Den här kunskapen kan hjälpa dig att kontrollera att eventuella återstående lösa ändar i din undersökning har avslutats – alla relevanta parter har underrättats, alla kommentarer har angetts, alla svar har verifierats och så vidare. Frågan använder arg_max aggregeringsfunktionen för att endast returnera den senaste posten för varje incident och för varje uppgift, så att resultaten speglar det senaste tillståndet.

Kör följande fråga för att hämta den senaste posten för varje incident, filtrera efter stängda incidenter och returnera eventuella uppgifter som ännu inte är slutförda eller raderade:

SecurityIncident
| summarize arg_max(TimeGenerated, *) by IncidentNumber
| where Status == 'Closed'
| mv-expand Tasks
| evaluate bag_unpack(Tasks)
| summarize arg_max(lastModifiedTimeUtc, *) by taskId
| where status !in ('Completed', 'Deleted')
| project TaskTitle = ['title'], TaskStatus = ['status'], createdTimeUtc, lastModifiedTimeUtc = column_ifexists("lastModifiedTimeUtc", datetime(null)), TaskCreator = ['createdBy'].name, lastModifiedBy, IncidentNumber, IncidentOwner = Owner.userPrincipalName
| sort by lastModifiedTimeUtc desc

För mer information om Kusto-operatorerna och funktionerna som används i exempelfrågorna i denna artikel, se:

Mer information om KQL finns i översikten över Kusto-frågespråk (KQL).

Andra resurser:

Nästa steg