Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
Kontrollera att du har ett testsystem för varje regel som du vill migrera.
Förbered en valideringsprocess för dina migrerade regler, inklusive fullständiga testscenarier och skript.
Se till att ditt team har användbara resurser för att testa dina migrerade regler.
Bekräfta att du har alla datakällor som krävs anslutna och granska dina dataanslutningsmetoder.
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:
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.
Identifiera eventuella attribut, fält eller entiteter i dina data som du vill använda i dina regler.
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.
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.
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.
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:
- Regler för schemalagda analyser i Microsoft Sentinel: Använd larmgruppering för att minska trötthet genom att gruppera larm som inträffar inom en given tidsram.
- Mappa datafält till enheter i Microsoft Sentinel: För att möjliggöra för SOC-ingenjörer att definiera enheter som en del av bevisen att följa under en utredning. Entitetsmappning gör det också möjligt för SOC-analytiker att dra nytta av ett intuitivt undersökningsdiagram som kan minska tid och arbete.
- Undersök incidenter med UEBA-data: Som ett exempel på hur man använder bevis för att lyfta fram händelser, varningar och eventuella bokmärken kopplade till en viss incident i incidentförhandsvisningspanelen.
- Kusto Query Language (KQL): Du kan använda KQL för att skicka skrivskyddade förfrågningar till din Log Analytics-databas för att bearbeta data och returnera resultat. KQL används också i andra Microsoft-tjänster, till exempel Microsoft Defender för Endpoint och Application Insights.
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.
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.
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.
Här är en regel för /All Filters/Soc Filters/Exclude Valid Users filtret.
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:
Spara följande fråga som en KQL-funktion med aliaset
ExcludeValidUsers.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) | where SubjectUserName =~ "AutoMatedService" | project SubjectUserNameAnvä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:
Skapa en parameterfunktion med
ExcludeValidUserssom namn och alias.Definiera parametrarna för funktionen. Till exempel:
Tbl: (TimeGenerated:datetime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)Funktionen
parameterhar följande fråga:Tbl | where SubjectUserName !~ "AutoMatedService"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
whereinstruktion (första alternativet) på grund av dess enkelhet. Undvik att användajoin(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.
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 .
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
joinfunktionen. - Om den vänstra sidan av tabellen är relativt liten (upp till 100 K-poster) lägger du till
hint.strategy=broadcastfö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 .
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.
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