Migrera ArcSight-identifieringsregler till Microsoft Sentinel

Den här artikeln beskriver hur du identifierar, jämför och migrerar ArcSight-identifieringsregler till Microsoft Sentinel analysregler.

Identifiera och migrera regler

Microsoft Sentinel använder maskininlärningsanalys för att skapa incidenter med hög återgivning och åtgärd, och vissa av dina befintliga identifieringar kan vara redundanta i Microsoft Sentinel. Migrera därför inte alla dina identifierings- och analysregler blint. Granska följande överväganden när du identifierar dina befintliga identifieringsregler.

  • Se till att välja användningsfall som motiverar regelmigrering, med hänsyn till affärsprioritet och effektivitet.
  • Kontrollera att du förstår Microsoft Sentinel regeltyper.
  • Kontrollera att du förstår regelterminologin.
  • Gå igenom alla regler som inte har utlöst några varningar de senaste sex till tolv månaderna och avgör om de fortfarande är relevanta.
  • Eliminera hot eller aviseringar på låg nivå som du rutinmässigt ignorerar.
  • Använd befintliga funktioner och kontrollera om Microsoft Sentinel inbyggda analysregler kan hantera dina aktuella användningsfall. Eftersom Microsoft Sentinel använder maskininlärningsanalys för att skapa hög återgivning och åtgärdsbara incidenter är det troligt att vissa av dina befintliga identifieringar inte längre krävs.
  • Bekräfta anslutna datakällor och granska dina dataanslutningsmetoder. Gå tillbaka till datainsamlingskonversationer för att säkerställa datadjup och bredd i de användningsfall som du planerar att identifiera.
  • Utforska communityresurser som SOC Prime Threat Detection Marketplace för att kontrollera om dina regler är tillgängliga.
  • Överväg om en frågekonverterare online, till exempel Uncoder.io, kan fungera för dina regler.
  • Om regler inte är tillgängliga eller inte kan konverteras måste de skapas manuellt med hjälp av en KQL-fråga. Granska regelmappningen för att skapa nya frågor.

Läs mer om metodtips för migrering av identifieringsregler.

Så här migrerar du dina analysregler till Microsoft Sentinel:

  1. Kontrollera att du har ett testsystem för varje regel som du vill migrera.

    1. Förbered en valideringsprocess för dina migrerade regler, inklusive fullständiga testscenarier och skript.

    2. Se till att ditt team har användbara resurser för att testa dina migrerade regler.

    3. Bekräfta att du har alla datakällor som krävs anslutna och granska dina dataanslutningsmetoder.

  2. Kontrollera om dina identifieringar är tillgängliga som inbyggda mallar i Microsoft Sentinel:

    • Om de inbyggda reglerna är tillräckliga använder du inbyggda regelmallar för att skapa regler för din egen arbetsyta.

      I Microsoft Sentinel går du till fliken Konfigurationsanalysregelmallar >> och skapar och uppdaterar varje relevant analysregel.

      För att lära dig hur man skapar regler från inbyggda mallar, se Skapa schemalagda analysregler från mallar.

    • Om du har identifieringar som inte omfattas av Microsoft Sentinel inbyggda regler kan du prova en frågekonverterare online, till exempel Uncoder.io för att konvertera dina frågor till KQL.

      Identifiera utlösarvillkoret och regelåtgärden och konstruera och granska sedan KQL-frågan.

    • Om varken de inbyggda reglerna eller en onlineregelkonverterare räcker måste du skapa regeln manuellt. I sådana fall kan du använda följande steg för att börja skapa regeln:

      1. Identifiera de datakällor som du vill använda i regeln. Du vill skapa en mappningstabell mellan datakällor och datatabeller i Microsoft Sentinel för att identifiera de tabeller som du vill fråga efter.

      2. Identifiera eventuella attribut, fält eller entiteter i dina data som du vill använda i dina regler.

      3. Identifiera dina regelkriterier och logik. I det här skedet kanske du vill använda regelmallar som exempel för hur du skapar KQL-frågor.

        Överväg filter, korrelationsregler, aktiva listor, referensuppsättningar, visningslistor, identifieringsavvikelser, aggregeringar och så vidare. Du kan använda referenser från din äldre SIEM för att mappa ArcSight-frågesyntax till KQL.

      4. Identifiera utlösarvillkoret och regelåtgärden och konstruera och granska sedan KQL-frågan. När du granskar din fråga kan du ta hjälp av vägledningsresurser för KQL-optimering.

  3. Testa regeln med var och en av dina relevanta användningsfall. Om den inte ger förväntade resultat kanske du vill granska KQL och testa den igen.

  4. När du är nöjd kan du betrakta regeln som migrerad. Skapa en spelbok för regelåtgärden efter behov. För att skapa och använda playbooks för regelåtgärder, se Automatisera hotrespons med playbooks i Microsoft Sentinel.

Läs mer om analysregler:

Jämför regelterminologi

Den här tabellen hjälper dig att förtydliga begreppet regel i Microsoft Sentinel jämfört med ArcSight.

ArcSight Microsoft Sentinel
Regeltyp - Filterregel
- Join-regeln
- Aktiv listaregel
- Och mer därtill
- Schemalagd sökning
- Fusion
- Microsoft Security
- strojové učenie (ML) beteendeanalys
Kriterier Definiera i regelvillkor Definiera i KQL
Utlösarvillkor - Definiera i handling
- Definiera i aggregering (för händelseaggregering)
Tröskelvärde: Antal frågeresultat
Åtgärd - Sätt händelsefältet
- Skicka notifikation
- Skapa nytt fall
- Lägg till i aktiv lista
- Och mer därtill
- Skapa en varning eller incident
- Integrerar med logikappar

Mappa och jämföra regelexempel

Använd följande exempel för att jämföra ArcSight-detekteringsregler med motsvarande Microsoft Sentinel-frågor skrivna i Kusto Query Language (KQL).

Regel Beskrivning Exempel på identifieringsregel (ArcSight) KQL-exempelfråga Resurser
Filtrera (AND) En exempelregel med AND villkor. Händelsen måste uppfylla alla villkor. Filterexempel (AND) Filterexempel (AND) Strängfilter:
- Strängoperatorer

Numeriskt filter:
- Numeriska operatorer

Filter för datum och tid:
- Sedan
- Datumtid
- Mellan
- Nu

Tolkning:
- Parse
- Utdrag
- parse_json
- parse_csv
- parse_path
- parse_url
Filtrera (OR) En exempelregel med OR villkor. Händelsen kan uppfylla vilket som helst av villkoren. Filterexempel (OR) Filterexempel (OR) - Strängoperatorer
- i
Nästlat filter En exempelregel med kapslade filtreringsvillkor. Regeln omfattar uttrycket MatchesFilter, som också innehåller filtreringsvillkor. Exempel på kapslat filter Exempel på kapslat filter - Använd KQL-funktioner för att snabba upp analysen
- Berika Windows-säkerhetshändelser med en parameteriserad funktion
- Gå med
- där
Aktiv lista (uppslag) Ett exempel på en uppslagsregel som använder satsen InActiveList. Exempel på aktiv lista (uppslag) Exempel på aktiv lista (uppslag) - En bevakningslista är motsvarigheten till funktionen aktiv lista. Läs mer om visningslistor.
- Andra sätt att implementera uppslagningar
Korrelation (matchning) En exempelregel som definierar ett villkor mot en uppsättning bashändelser med hjälp av -instruktionen Matching Event . Exempel på korrelation (matchning) Exempel på korrelation (matchning) kopplingsoperator:
- Gå med
- Följ med tidsfönster
- Blanda
- Sändning
- Unionen

define-instruktion:
- Låt

Aggregering:
- make_set
- make_list
- make_bag
- bag_pack
Korrelation (tidsfönster) En exempelregel som definierar ett villkor mot en uppsättning bashändelser med hjälp av -instruktionen Matching Event och använder filtervillkoret Wait time . Exempel på korrelation (tidsfönster) Exempel på korrelation (tidsfönster) - Gå med
- Microsoft Sentinel-regler och join-sats

Filterexempel (AND): ArcSight

Här är en exempelfilterregel med AND villkor i ArcSight.

Diagram som illustrerar en exempelfilterregel.

Exempel på filter (AND): KQL

Här är filterregeln med villkoren AND i KQL.

SecurityEvent
| where EventID == 4728
| where SubjectUserName =~ "AutoMatedService"
| where isnotempty(SubjectDomainName)

Den här regeln förutsätter att Azure Monitoring Agent (AMA) samlar in Windows-säkerhet-händelser. Därför använder regeln tabellen Microsoft Sentinel SecurityEvent.

Överväg följande metodtips:

  • För att optimera dina frågor bör du undvika skiftlägesokänsliga operatorer när det är möjligt: =~
  • Använd == om värdet inte är skiftlägeskänsligt.
  • Sortera filtren genom att börja med -instruktionen where , som filtrerar ut mest data.

Filterexempel (OR): ArcSight

Här är en exempelfilterregel med OR villkor i ArcSight.

Diagram som illustrerar en exempelfilterregel (eller).

Exempel på filter (OR): KQL

Här är några sätt att skriva filterregeln med OR villkor i KQL.

Använd satsen in som ett första alternativ:

SecurityEvent
| where SubjectUserName in
 ("Adm1","ServiceAccount1","AutomationServices")

Som ett annat alternativ kan du använda satsen or:

SecurityEvent
| where SubjectUserName == "Adm1" or 
SubjectUserName == "ServiceAccount1" or 
SubjectUserName == "AutomationServices"

Även om båda alternativen är identiska i prestanda rekommenderar vi det första alternativet, vilket är lättare att läsa.

Exempel på kapslat filter: ArcSight

Här är ett exempel på en kapslad filterregel i ArcSight.

Diagram som illustrerar ett exempel på kapslad filterregel.

Här är en regel för /All Filters/Soc Filters/Exclude Valid Users filtret.

Diagram som illustrerar filtret Exkludera giltiga användare.

Exempel på kapslat filter: KQL

Här är några sätt att skriva filterregeln med OR villkor i KQL.

Som ett första alternativ använder du ett direktfilter med en where instruktion:

SecurityEvent
| where EventID == 4728 
| where isnotempty(SubjectDomainName) or 
isnotempty(TargetDomainName) 
| where SubjectUserName !~ "AutoMatedService"

Som ett andra alternativ använder du en KQL-funktion:

  1. Spara följande fråga som en KQL-funktion med aliaset ExcludeValidUsers .

        SecurityEvent
        | where EventID == 4728
        | where isnotempty(SubjectDomainName)
        | where SubjectUserName =~ "AutoMatedService"
        | project SubjectUserName
    
  2. Använd följande fråga för att filtrera aliaset ExcludeValidUsers .

        SecurityEvent    
        | where EventID == 4728
        | where isnotempty(SubjectDomainName) or 
        isnotempty(TargetDomainName)
        | where SubjectUserName !in (ExcludeValidUsers)
    

Som ett tredje alternativ använder du en parameterfunktion:

  1. Skapa en parameterfunktion med ExcludeValidUsers som namn och alias.

  2. Definiera parametrarna för funktionen. Till exempel:

        Tbl: (TimeGenerated:datetime, Computer:string, 
        EventID:string, SubjectDomainName:string, 
        TargetDomainName:string, SubjectUserName:string)
    
  3. Funktionen parameter har följande fråga:

        Tbl
        | where SubjectUserName !~ "AutoMatedService"
    
  4. Kör följande fråga för att anropa parameterfunktionen:

        let Events = (
        SecurityEvent 
        | where EventID == 4728
        );
        ExcludeValidUsers(Events)
    

Som ett fjärde alternativ använder du join funktionen:

let events = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName) 
or isnotempty(TargetDomainName)
);
let ExcludeValidUsers = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
| where SubjectUserName =~ "AutoMatedService"
);
events
| join kind=leftanti ExcludeValidUsers on 
$left.SubjectUserName == $right.SubjectUserName

Considerations

  • Vi rekommenderar att du använder ett direktfilter med en where instruktion (första alternativet) på grund av dess enkelhet. Undvik att använda join (fjärde alternativet) för optimerad prestanda.
  • För att optimera dina frågor bör du om möjligt undvika de skiftlägesokänsliga operatorerna =~ och !~. Använd operatorerna == och != om värdet inte är skiftlägeskänsligt.

Exempel på aktiv lista (uppslag): ArcSight

Här är en aktiv lista (uppslagsregel) i ArcSight.

Diagram som illustrerar ett exempel på en regel för en aktiv lista (uppslag).

Exempel på aktiv lista (uppslag): KQL

Important

Innan du kör denna fråga, skapa Cyber-Ark Exception Accounts-bevakningslistan i Microsoft Sentinel och inkludera ett kontofält.

Följande KQL-fråga använder Cyber-Ark Exception Accounts-bevakningslistan för att filtrera uppslagsresultat.

let Activelist=(
_GetWatchlist('Cyber-Ark Exception Accounts')
| project Account );
CommonSecurityLog
| where DestinationUserName in (Activelist)
| where DeviceVendor == "Cyber-Ark"
| where DeviceAction == "Get File Request"
| where DeviceCustomNumber1 != ""
| project DeviceAction, DestinationUserName, 
TimeGenerated,SourceHostName, 
SourceUserName, DeviceEventClassID

Sortera filtren genom att börja med -instruktionen where som filtrerar ut mest data.

Exempel på korrelation (matchning): ArcSight

Här är ett exempel på en ArcSight-regel som definierar ett villkor mot en uppsättning bashändelser med hjälp av -instruktionen Matching Event .

Diagram som illustrerar ett exempel på en korrelationsregel (matchning).

Exempel på korrelation (matchning): KQL

Följande KQL-exempel visar hur du implementerar ArcSight-korrelationsregeln för matchning i Microsoft Sentinel.

let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2 
on $left.TargetUserName==$right.TargetUserName

Metodtips

  • Om du vill optimera frågan kontrollerar du att den mindre tabellen finns till vänster i join funktionen.
  • Om den vänstra sidan av tabellen är relativt liten (upp till 100 K-poster) lägger du till hint.strategy=broadcast för bättre prestanda.

Exempel på korrelation (tidsfönster): ArcSight

Här är en ArcSight-exempelregel som definierar ett villkor mot en uppsättning bashändelser med hjälp av -instruktionen Matching Event och använder filtervillkoret Wait time .

Diagram som illustrerar en exempelkorrelationsregel (tidsfönster).

Exempel på korrelation (tidsfönster): KQL

I följande KQL-exempel implementeras en korrelationsregel med ett tidsfönster som motsvarar ArcSight-exemplet.

let waittime = 10m;
let lookback = 1d;
let event1 = (
SecurityEvent
| where TimeGenerated > ago(waittime+lookback)
| where EventID == 4728
| project event1_time = TimeGenerated, 
event1_ID = EventID, event1_Activity= Activity, 
event1_Host = Computer, TargetUserName, 
event1_UPN=UserPrincipalName, 
AccountUsedToAdd = SubjectUserName 
);
let event2 = (
SecurityEvent
| where TimeGenerated > ago(waittime)
| where EventID == 4729
| project event2_time = TimeGenerated, 
event2_ID = EventID, event2_Activity= Activity, 
event2_Host= Computer, TargetUserName, 
event2_UPN=UserPrincipalName,
 AccountUsedToRemove = SubjectUserName 
);
 event1
| join kind=inner event2 on TargetUserName
| where event2_time - event1_time < lookback
| where tolong(event2_time - event1_time ) >=0
| project delta_time = event2_time - event1_time,
 event1_time, event2_time,
 event1_ID,event2_ID,event1_Activity,
 event2_Activity, TargetUserName, AccountUsedToAdd,
 AccountUsedToRemove,event1_Host,event2_Host, 
 event1_UPN,event2_UPN

Sammansättningsexempel: ArcSight

Här är ett exempel på En ArcSight-regel med aggregeringsinställningar: tre matchningar inom 10 minuter.

Diagram som illustrerar en exempelsammansättningsregel.

Sammansättningsexempel: KQL

Följande KQL-fråga visar hur du identifierar tre eller fler matchningar med aggregering.

SecurityEvent
| summarize Count = count() by SubjectUserName, 
SubjectDomainName
| where Count >3

Nästa steg