Migrera Splunk-identifieringsregler till Microsoft Sentinel
Den här artikeln beskriver hur du identifierar, jämför och migrerar dina Splunk-identifieringsregler till inbyggda Microsoft Sentinel-regler.
Om du vill migrera din Splunk Observability-distribution kan du läsa mer om hur du migrerar från Splunk till Azure Monitor-loggar.
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.
- Testa funktionerna i SIEM-migreringsupplevelsen för att avgöra om den automatiserade översättningen är lämplig.
- 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:
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 nödvändiga datakällor anslutna och granska dina dataanslutningsmetoder.
Kontrollera om dina identifieringar är tillgängliga som inbyggda mallar i Microsoft Sentinel:
Använd SIEM-migreringsmiljön för att automatisera översättning och migrering.
Mer information finns i Använda SIEM-migreringsmiljön.
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 onlinefrågekonverterare, till exempel Uncoder.io eller SPL2KQL 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:
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 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, 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.
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.
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 ö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:
- Skapa anpassade analysregler för att identifiera hot. Använd aviseringsgruppering för att minska aviseringströttheten genom att gruppera aviseringar som inträffar inom en viss tidsram.
- Mappa datafält till entiteter i Microsoft Sentinel så att SOC-tekniker kan definiera entiteter som en del av bevisen som ska spåras under en undersökning. Entitetsmappning gör det också möjligt för SOC-analytiker att dra nytta av ett intuitivt [undersökningsdiagram] (investigate-cases.md#use-the-investigation-graph-to-deep-dive) som kan bidra till att minska tid och arbete.
- Undersök incidenter med UEBA-data som ett exempel på hur du använder bevis för att visa händelser, aviseringar och bokmärken som är associerade med en viss incident i fönstret för incidentförhandsgranskning.
- Kusto-frågespråk (KQL) som du kan använda för att skicka skrivskyddade begäranden till Log Analytics-databasen för att bearbeta data och returnera resultat. KQL används även 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 Splunk.
Splunk | Microsoft Sentinel | |
---|---|---|
Regeltyp | •Planerad •Realtid |
• Schemalagd fråga •Fusion • Microsoft Security • Beteendeanalys för Maskininlärning (ML) |
Villkor | Definiera i SPL | Definiera i KQL |
Utlösarvillkor | • Antal resultat • Antal värdar • Antal källor •Anpassade |
Tröskelvärde: Antal frågeresultat |
Åtgärd | • Lägg till i utlösta aviseringar • Logghändelse • Utdataresultat som ska slås upp • 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 Splunk till Microsoft Sentinel i olika scenarier.
Vanliga sökkommandon
SPL-kommando | beskrivning | KQL-operator | KQL-exempel |
---|---|---|---|
chart/ timechart |
Returnerar resultat i tabellutdata för tidsseriediagram. | rendera operator | … | render timechart |
dedup |
Tar bort efterföljande resultat som matchar ett angivet kriterium. | • distinkt • sammanfatta |
… | summarize by Computer, EventID |
eval |
Beräknar ett uttryck. Läs mer om vanliga eval-kommandon. | Utöka | T | extend duration = endTime - startTime |
fields |
Tar bort fält från sökresultat. | • projekt • projekt bort |
T | project cost=price*quantity, price |
head/tail |
Returnerar det första eller sista N-resultatet. | Topp | T | top 5 by Name desc nulls last |
lookup |
Lägger till fältvärden från en extern källa. | • externaldata • uppslag |
KQL-exempel |
rename |
Byter namn på ett fält. Använd jokertecken för att ange flera fält. | project-rename | T | project-rename new_column_name = column_name |
rex |
Anger gruppnamn med reguljära uttryck för att extrahera fält. | matchar regex | … | where field matches regex "^addr.*" |
search |
Filtrerar resultat till resultat som matchar sökuttrycket. | search | search "X" |
sort |
Sorterar sökresultaten efter de angivna fälten. | sortera | T | sort by strlen(country) asc, price desc |
stats |
Tillhandahåller statistik, eventuellt grupperad efter fält. Läs mer om vanliga statistikkommandon. | Sammanfatta | KQL-exempel |
mstats |
Liknar statistik, som används för mått i stället för händelser. | Sammanfatta | KQL-exempel |
table |
Anger vilka fält som ska behållas i resultatuppsättningen och behåller data i tabellformat. | Projekt | T | project columnA, columnB |
top/rare |
Visar de mest eller minst vanliga värdena i ett fält. | Topp | T | top 5 by Name desc nulls last |
transaction |
Grupperar sökresultat i transaktioner. SPL-exempel |
Exempel: row_window_session | KQL-exempel |
eventstats |
Genererar sammanfattningsstatistik från fält i dina händelser och sparar den statistiken i ett nytt fält. SPL-exempel |
Exempel: • Anslut • make_list • mv-expand |
KQL-exempel |
streamstats |
Hitta den kumulativa summan av ett fält. SPL-exempel: ... | streamstats sum(bytes) as bytes _ total \| timechart |
row_cumsum | ...\| serialize cs=row_cumsum(bytes) |
anomalydetection |
Hitta avvikelser i det angivna fältet. SPL-exempel |
series_decompose_anomalies() | KQL-exempel |
where |
Filtrerar sökresultat med hjälp av eval uttryck. Används för att jämföra två olika fält. |
Där | T | where fruit=="apple" |
uppslagskommando: KQL-exempel
Users
| where UserID in ((externaldata (UserID:string) [
@"https://storageaccount.blob.core.windows.net/storagecontainer/users.txt"
h@"?...SAS..." // Secret token to access the blob
])) | ...
stats command: KQL-exempel
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
mstats-kommando: KQL-exempel
T | summarize count() by price_range=bin(price, 10.0)
transaktionskommando: SPL-exempel
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
transaktionskommando: KQL-exempel
let Events = MyLogTable | where type=="Event";
Events
| where Name == "Start"
| project Name, City, ActivityId, StartTime=timestamp
| join (Events
| where Name == "Stop"
| project StopTime=timestamp, ActivityId)
on ActivityId
| project City, ActivityId, StartTime,
Duration = StopTime – StartTime
Använd row_window_session()
för att beräkna sessionsstartvärden för en kolumn i en serialiserad raduppsättning.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
eventstats-kommando: SPL-exempel
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
eventstats-kommando: KQL-exempel
Här är ett exempel med -instruktionen join
:
let binSize = 1h;
let detail = SecurityEvent
| summarize detail_count = count() by EventID,
tbin = bin(TimeGenerated, binSize);
let summary = SecurityEvent
| summarize sum_count = count() by
tbin = bin(TimeGenerated, binSize);
detail
| join kind=leftouter (summary) on tbin
| project-away tbin1
Här är ett exempel med -instruktionen make_list
:
let binSize = 1m;
SecurityEvent
| where TimeGenerated >= ago(24h)
| summarize TotalEvents = count() by EventID,
groupBin =bin(TimeGenerated, binSize)
|summarize make_list(EventID), make_list(TotalEvents),
sum(TotalEvents) by groupBin
| mvexpand list_EventID, list_TotalEvents
anomalydetection-kommando: SPL-exempel
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
anomalydetection-kommando: KQL-exempel
let LookBackPeriod= 7d;
let disableAccountLogon=SignIn
| where ResultType == "50057"
| where ResultDescription has "account is disabled";
disableAccountLogon
| make-series Trend=count() default=0 on TimeGenerated
in range(startofday(ago(LookBackPeriod)), now(), 1d)
| extend (RSquare,Slope,Variance,RVariance,Interception,
LineFit)=series_fit_line(Trend)
| extend (anomalies,score) =
series_decompose_anomalies(Trend)
Vanliga eval-kommandon
SPL-kommando | beskrivning | SPL-exempel | KQL-kommando | KQL-exempel |
---|---|---|---|---|
abs(X) |
Returnerar det absoluta värdet för X. | abs(number) |
abs() | abs(X) |
case(X,"Y",…) |
Tar par med X och Y argument, där argumenten X är booleska uttryck. När argumenten utvärderas till TRUE returneras motsvarande Y argument. |
SPL-exempel | Fall | KQL-exempel |
ceil(X) |
Tak för ett tal X. | ceil(1.9) |
ceiling() | ceiling(1.9) |
cidrmatch("X",Y) |
Identifierar IP-adresser som tillhör ett visst undernät. | cidrmatch ("123.132.32.0/25",ip) |
• ipv4_is_match() • ipv6_is_match() |
ipv4_is_match('192.168.1.1', '192.168.1.255') == false |
coalesce(X,…) |
Returnerar det första värdet som inte är null. | coalesce(null(), "Returned val", null()) |
coalesce() | coalesce(tolong("not a number"), tolong("42"), 33) == 42 |
cos(X) |
Beräknar cosininen för X. | n=cos(0) |
cos() | cos(X) |
exact(X) |
Utvärderar ett uttryck X med hjälp av flyttalsaritmetik med dubbel precision. | exact(3.14*num) |
todecimal() | todecimal(3.14*2) |
exp(X) |
Returnerar eX. | exp(3) |
exp() | exp(3) |
if(X,Y,Z) |
Om X utvärderas till TRUE är resultatet det andra argumentet Y . Om X utvärderas till FALSE utvärderas resultatet till det tredje argumentet Z . |
if(error==200, "OK", "Error") |
iif() | KQL-exempel |
isbool(X) |
Returnerar TRUE om X är booleskt. |
isbool(field) |
• iif() • gettype |
iif(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Returnerar TRUE om X är ett heltal. |
isint(field) |
• iif() • gettype |
KQL-exempel |
isnull(X) |
Returnerar TRUE om X är null. |
isnull(field) |
isnull() | isnull(field) |
isstr(X) |
Returnerar TRUE om X är en sträng. |
isstr(field) |
• iif() • gettype |
KQL-exempel |
len(X) |
Den här funktionen returnerar teckenlängden för en sträng X . |
len(field) |
strlen() | strlen(field) |
like(X,"y") |
Returnerar TRUE om och endast om X är som SQLite-mönstret i Y . |
like(field, "addr%") |
• har • innehåller • startswith • matchar regex |
KQL-exempel |
log(X,Y) |
Returnerar loggen för det första argumentet X med det andra argumentet Y som bas. Standardvärdet Y för är 10 . |
log(number,2) |
• logg • log2 • log10 |
log(X) log2(X) log10(X) |
lower(X) |
Returnerar gemener för X . |
lower(username) |
tolower | tolower(username) |
ltrim(X,Y) |
Returnerar X med tecknen i parametern Y trimmad från vänster sida. Standardutdata för Y är blanksteg och flikar. |
ltrim(" ZZZabcZZ ", " Z") |
trim_start() | trim_start(“ ZZZabcZZ”,” ZZZ”) |
match(X,Y) |
Returnerar om X matchar regexmönstret Y. | match(field, "^\d{1,3}.\d$") |
matchar regex | … | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Returnerar det maximala värdet i en kolumn. | max(delay, mydelay) |
• max() • arg_max() |
… | summarize max(field) |
md5(X) |
Returnerar MD5-hashen för ett strängvärde X . |
md5(field) |
hash_md5 | hash_md5("X") |
min(X,…) |
Returnerar minimivärdet i en kolumn. | min(delay, mydelay) |
• min_of() • min() • arg_min |
KQL-exempel |
mvcount(X) |
Returnerar antalet (totalt) värden X . |
mvcount(multifield) |
Dantal | …| summarize dcount(X) by Y |
mvfilter(X) |
Filtrerar ett flervärdesfält baserat på det booleska X uttrycket. |
mvfilter(match(email, "net$")) |
mv-apply | KQL-exempel |
mvindex(X,Y,Z) |
Returnerar en delmängd av argumentet med flera värden X från en startposition (nollbaserad) Y till Z (valfritt). |
mvindex( multifield, 2) |
array_slice | array_slice(arr, 1, 2) |
mvjoin(X,Y) |
Givet ett flervärdesfält X och en stränggränsare Y , och sammanfogar de enskilda värdena X för att använda Y . |
mvjoin(address, ";") |
strcat_array | KQL-exempel |
now() |
Returnerar den aktuella tiden, representerad i Unix-tid. | now() |
now() | now() now(-2d) |
null() |
Accepterar inte argument och returnerar NULL . |
null() |
NULL | null |
nullif(X,Y) |
Innehåller två argument, X och Y , och returnerar X om argumenten är olika. Annars returnerar NULL . |
nullif(fieldA, fieldB) |
Iif | iif(fieldA==fieldB, null, fieldA) |
random() |
Returnerar ett pseudo-slumpmässigt tal mellan 0 till 2147483647 . |
random() |
rand() | rand() |
relative_ time(X,Y) |
Givet en epoktids X - och relativ tidsspecificerare Y returnerar epoktidsvärdet Y för tillämpat på X . |
relative_time(now(),"-1d@d") |
unix-tid | KQL-exempel |
replace(X,Y,Z) |
Returnerar en sträng som bildas genom att ersätta strängen Z för varje förekomst av reguljär uttryckssträng Y i strängen X . |
Returnerar datum med månads- och dagnummer växlade. För indata är 30/4/2009 till exempel 4/30/2015 utdata :replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/") |
replace() | KQL-exempel |
round(X,Y) |
Returnerar X avrundat till antalet decimaler som anges av Y . Standardvärdet är att avrunda till ett heltal. |
round(3.5) |
Runda | round(3.5) |
rtrim(X,Y) |
Returnerar X med tecknen Y i trimmade från höger sida. Om Y inte anges trimmas blanksteg och flikar. |
rtrim(" ZZZZabcZZ ", " Z") |
trim_end() | trim_end(@"[ Z]+",A) |
searchmatch(X) |
Returnerar TRUE om händelsen matchar söksträngen X . |
searchmatch("foo AND bar") |
iif() | iif(field has "X","Yes","No") |
split(X,"Y") |
Returnerar X som ett flervärdesfält, delat med avgränsare Y . |
split(address, ";") |
split() | split(address, ";") |
sqrt(X) |
Returnerar kvadratroten för X . |
sqrt(9) |
sqrt() | sqrt(9) |
strftime(X,Y) |
Returnerar epoktidsvärdet X som återges med formatet som anges av Y . |
strftime(_time, "%H:%M") |
format_datetime() | format_datetime(time,'HH:mm') |
strptime(X,Y) |
Givet en tid som representeras av en sträng X returnerar värdet parsat från formatet Y . |
strptime(timeStr, "%H:%M") |
format_datetime() | KQL-exempel |
substr(X,Y,Z) |
Returnerar ett delsträngsfält X från startpositionen (enbaserad) Y för Z (valfria) tecken. |
substr("string", 1, 3) |
substring() | substring("string", 0, 3) |
time() |
Returnerar wall-clock-tiden med mikrosekundersupplösning. | time() |
format_datetime() | KQL-exempel |
tonumber(X,Y) |
Konverterar indatasträngen X till ett tal, där Y (valfritt, standardvärde är 10 ) definierar basen för talet som ska konverteras till. |
tonumber("0A4",16) |
toint() | toint("123") |
tostring(X,Y) |
Beskrivning | SPL-exempel | tostring() | tostring(123) |
typeof(X) |
Returnerar en strängrepresentation av fälttypen. | typeof(12) |
gettype() | gettype(12) |
urldecode(X) |
Returnerar url-avkodad X . |
SPL-exempel | url_decode | KQL-exempel |
case(X,"Y",...) SPL-exempel
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
case(X,"Y",...) KQL-exempel
T
| extend Message = case(error == 404, "Not found",
error == 500,"Internal Server Error", "OK")
if(X,Y,Z) KQL-exempel
iif(floor(Timestamp, 1d)==floor(now(), 1d),
"today", "anotherday")
isint(X) KQL-exempel
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X) KQL-exempel
iif(gettype(X) =="string","TRUE","FALSE")
like(X,"y") exempel
… | where field has "addr"
… | where field contains "addr"
… | where field startswith "addr"
… | where field matches regex "^addr.*"
min(X,...) KQL-exempel
min_of (expr_1, expr_2 ...)
…|summarize min(expr)
…| summarize arg_min(Price,*) by Product
mvfilter(X) KQL-exempel
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
mvjoin(X,Y) KQL-exempel
strcat_array(dynamic([1, 2, 3]), "->")
relativt tid(X,Y) KQL-exempel
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s
};
replace(X,Y,Z) KQL-exempel
replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)
strptime(X,Y) KQL-exempel
format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')
time() KQL-exempel
format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')
tostring(X,Y)
Returnerar ett fältvärde för X
som en sträng.
- Om värdet
X
för är ett talX
formateras om till ett strängvärde. - Om
X
är ett booleskt värde formaterasX
om tillTRUE
ellerFALSE
. - Om
X
är ett tal är det andra argumentetY
valfritt och kan antingen varahex
(konverterarX
till ett hexadecimalt),commas
(format med kommatecken och två decimaler) ellerduration
(konverterar från ett tidsformatX
i sekunder till ett läsbart tidsformatX
:HH:MM:SS
).
tostring(X,Y) SPL-exempel
Det här exemplet returnerar:
foo=615 and foo2=00:10:15:
… | eval foo=615 | eval foo2 = tostring(
foo, "duration")
urldecode(X) SPL-exempel
urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
KQL-exempel för vanliga statistikkommandon
SPL-kommando | beskrivning | KQL-kommando | KQL-exempel |
---|---|---|---|
avg(X) |
Returnerar medelvärdet av värdena för fältet X . |
avg() | avg(X) |
count(X) |
Returnerar antalet förekomster av fältet X . Om du vill ange ett specifikt fältvärde som ska matcha formateras X som eval(field="value") . |
count() | summarize count() |
dc(X) |
Returnerar antalet distinkta värden i fältet X . |
dcount() | …\| summarize countries=dcount(country) by continent |
earliest(X) |
Returnerar det kronologiskt tidigaste värdet för X . |
arg_min() | … \| summarize arg_min(TimeGenerated, *) by X |
latest(X) |
Returnerar det kronologiskt senast sedda värdet för X . |
arg_max() | … \| summarize arg_max(TimeGenerated, *) by X |
max(X) |
Returnerar det maximala värdet för fältet X . Om värdena X för är icke-numeriska hittas det maximala värdet via alfabetisk ordning. |
max() | …\| summarize max(X) |
median(X) |
Returnerar det mittersta värdet för fältet X . |
percentile() | …\| summarize percentile(X, 50) |
min(X) |
Returnerar det lägsta värdet för fältet X . Om värdena X för är icke-numeriska, hittas det minsta värdet via alfabetisk ordning. |
min() | …\| summarize min(X) |
mode(X) |
Returnerar det vanligaste värdet för fältet X . |
top-hitters() | …\| top-hitters 1 of Y by X |
perc(Y) |
Returnerar percentilvärdet X för fältet Y . Returnerar till exempel perc5(total) det femte percentilvärdet för ett fält total . |
percentile() | …\| summarize percentile(Y, 5) |
range(X) |
Returnerar skillnaden mellan fältets högsta och lägsta värden X . |
range() | range(1, 3) |
stdev(X) |
Returnerar standardavvikelsen för fältet X . |
Stdav | stdev() |
stdevp(X) |
Returnerar populationens standardavvikelse för fältet X . |
stdevp() | stdevp() |
sum(X) |
Returnerar summan av värdena i fältet X . |
sum() | sum(X) |
sumsq(X) |
Returnerar summan av kvadraterna för värdena i fältet X . |
||
values(X) |
Returnerar listan över alla distinkta värden i fältet X som en post med flera värden. Värdenas ordning är alfabetisk. |
make_set() | …\| summarize r = make_set(X) |
var(X) |
Returnerar exempelavvikelsen för fältet X . |
Varians | variance(X) |
Nästa steg
I den här artikeln har du lärt dig hur du mappar dina migreringsregler från Splunk till Microsoft Sentinel.