Dela via


Migrera ArcSight-identifieringsregler till Microsoft Sentinel

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

Identifiera och migrera regler

Microsoft Sentinel använder maskininlärningsanalys för att skapa hög återgivning och åtgärdsbara incidenter, och vissa av dina befintliga identifieringar kan vara redundanta i Microsoft Sentinel. Migrera därför inte alla dina identifierings- och analysregler blint. Granska dessa ö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.
  • Granska alla regler som inte har utlöst några aviseringar under de senaste 6–12 månaderna och ta reda på om de fortfarande är relevanta.
  • Eliminera hot på låg nivå eller aviseringar som du rutinmässigt ignorerar.
  • Använd befintliga funktioner och kontrollera om Microsoft Sentinels inbyggda analysregler kan hantera dina aktuella användningsfall. Eftersom Microsoft Sentinel använder maskininlärningsanalys för att skapa hög återgivnings- 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.
  • Fundera på 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 nödvändiga datakällor 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.

      Mer information finns i Identifiera hot direkt.

    • Om du har identifieringar som inte omfattas av Microsoft Sentinels 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 din KQL-fråga.

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

      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 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, bevakningslistor, identifieringsavvikelser, aggregeringar och så vidare. Du kan använda referenser från din äldre SIEM för att förstå hur du bäst mappar din frågesyntax.

      4. Identifiera utlösarvillkoret och regelåtgärden och konstruera och granska sedan din KQL-fråga. När du granskar din fråga bör du överväga KQL-optimeringsvägledningsresurser.

  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 överväga att migrera regeln. Skapa en spelbok för din regelåtgärd efter behov. Mer information finns i Automatisera hotsvar med spelböcker 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
• Kopplingsregel
• Aktiv listregel
• Och mer
• Schemalagd fråga
•Fusion
• Microsoft Security
• Beteendeanalys för Maskininlärning (ML)
Villkor Definiera i regelvillkor Definiera i KQL
Utlösarvillkor • Definiera i praktiken
• Definiera i sammansättning (för händelseaggregering)
Tröskelvärde: Antal frågeresultat
Åtgärd • Ange händelsefält
• Skicka meddelande
• Skapa nytt ärende
• Lägg till i en aktiv lista
• Och mer
• Skapa avisering eller incident
• Integrerar med Logic Apps

Mappa och jämföra regelexempel

Använd dessa exempel för att jämföra och mappa regler från ArcSight till Microsoft Sentinel i olika scenarier.

Regel beskrivning Exempelidentifieringsregel (ArcSight) Exempel på KQL-fråga Resurser
Filtrera (AND) En exempelregel med AND villkor. Händelsen måste matcha alla villkor. Filterexempel (AND) Filterexempel (AND) Strängfilter:
Strängoperatorer

Numeriskt filter:
Numeriska operatorer

Datetime-filter:
sedan
Datetime
mellan
nu

Parsning:
parsa
extrahera
parse_json
parse_csv
parse_path
parse_url
Filtrera (OR) En exempelregel med OR villkor. Händelsen kan matcha något av villkoren. Filterexempel (OR) Filterexempel (OR) Strängoperatorer
i
Kapslat filter En exempelregel med kapslade filtreringsvillkor. Regeln innehåller -instruktionen MatchesFilter , som även innehåller filtreringsvillkor. Exempel på kapslat filter Exempel på kapslat filter Exempel på KQL-funktion
Exempelparameterfunktion
Anslut
där
Aktiv lista (uppslag) En exempeluppslagsregel som använder -instruktionen InActiveList . Exempel på aktiv lista (sökning) Exempel på aktiv lista (sökning) • En visningslista motsvarar den aktiva listfunktionen. Läs mer om visningslistor.
Andra sätt att implementera sökningar
Korrelation (matchning) En exempelregel som definierar ett villkor mot en uppsättning bashändelser med hjälp av -instruktionen Matching Event . Korrelationsexempel (matchande) Korrelationsexempel (matchande) kopplingsoperator:
Anslut
Koppla med tidsfönstret
blanda
Sänds
Union

define-instruktion:
låt

Sammansättning:
make_set
make_list
make_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 . Korrelationsexempel (tidsfönster) Korrelationsexempel (tidsfönster) Anslut
Microsoft Sentinel-regler och kopplingsinstrukment

Filterexempel (AND): ArcSight

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

Diagram som illustrerar en exempelfilterregel.

Filterexempel (AND): KQL

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

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

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

Tänk på följande metodtips:

  • Du kan optimera dina frågor genom att 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).

Filterexempel (OR): KQL

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

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

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

Som ett andra alternativ använder du -instruktionen 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 en kapslad exempelfilterregel.

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:datatime, 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

Överväganden:

  • 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.
  • Du kan optimera dina frågor genom att undvika de =~ skiftlägeskänsliga !~ operatorerna när det är möjligt. Använd operatorerna == och != om värdet inte är skiftlägeskänsligt.

Exempel på aktiv lista (sökning): ArcSight

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

Diagram som illustrerar en exempelregel för aktiv lista (sökning).

Exempel på aktiv lista (sökning): KQL

Den här regeln förutsätter att bevakningslistan för Cyber-Ark-undantagskonton finns i Microsoft Sentinel med ett kontofält.

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.

Korrelationsexempel (matchning): ArcSight

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

Diagram som illustrerar en exempelkorrelationsregel (matchning).

Korrelationsexempel (matchning): KQL

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.

Korrelationsexempel (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).

Korrelationsexempel (tidsfönster): KQL

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 en ArcSight-exempelregel med aggregeringsinställningar: tre matchningar inom 10 minuter.

Diagram som illustrerar en exempelsammansättningsregel.

Sammansättningsexempel: KQL

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

Nästa steg

I den här artikeln har du lärt dig hur du mappar dina migreringsregler från ArcSight till Microsoft Sentinel.