Splunk-detectieregels migreren naar Microsoft Sentinel

Splunk-detectieregels zijn SIEM-onderdelen (Security Information and Event Management) die vergelijkbaar zijn met analyseregels in Microsoft Sentinel. In dit artikel worden de concepten beschreven om deze te identificeren, te vergelijken en te migreren naar Microsoft Sentinel. De beste manier is om te beginnen met de SIEM-migratie-ervaring, die out-of-the-box (OOTB) analyseregels identificeert waarnaar automatisch moet worden vertaald.

Als u uw Splunk Observability-implementatie wilt migreren, vindt u meer informatie over het migreren van Splunk naar Azure Monitor-logboeken.

Controleregels

Microsoft Sentinel maakt gebruik van machine learning-analyse om incidenten met hoge kwaliteit en actie mogelijk te maken. Sommige van uw bestaande Splunk-detecties zijn mogelijk redundant in Microsoft Sentinel, dus migreer ze niet allemaal blindelings. Bekijk deze overwegingen bij het identificeren van uw bestaande detectieregels.

  • Zorg ervoor dat u use cases selecteert die regelmigratie rechtvaardigen, rekening houdend met bedrijfsprioriteit en efficiëntie.
  • Controleer of u Microsoft Sentinel regeltypen begrijpt.
  • Controleer of u de terminologie van de regel begrijpt.
  • Bekijk verouderde regels die geen waarschuwingen bevatten voor de afgelopen 6-12 maanden en bepaal of ze nog steeds relevant zijn.
  • Elimineer bedreigingen op laag niveau of waarschuwingen die u regelmatig negeert.
  • Bevestig verbonden gegevensbronnen en controleer uw gegevensverbindingsmethoden. Microsoft Sentinel Analytics vereisen dat het gegevenstype aanwezig is in de Log Analytics-werkruimte voordat een regel wordt ingeschakeld. Ga opnieuw naar gesprekken over gegevensverzameling om ervoor te zorgen dat de gegevens diep en breed zijn in de gebruiksscenario's die u wilt detecteren. Gebruik vervolgens de SIEM-migratie-ervaring om ervoor te zorgen dat de gegevensbronnen op de juiste manier worden toegewezen.

Regels migreren

Nadat u de Splunk-detecties hebt geïdentificeerd die moeten worden gemigreerd, bekijkt u deze overwegingen voor het migratieproces:

  • Vergelijk de bestaande functionaliteit van de OOTB-analyseregels van Microsoft Sentinel met uw huidige use cases. Gebruik de SIEM-migratie-ervaring om te zien welke Splunk-detecties automatisch worden geconverteerd naar OOTB-sjablonen.
  • Detecties vertalen die niet zijn afgestemd op OOTB-analyseregels. De beste manier om Splunk-detecties automatisch te vertalen, is met de SIEM-migratie-ervaring.
  • Ontdek meer algoritmen voor uw use cases door communitybronnen te verkennen, zoals de SOC Prime Threat Detection Marketplace.
  • Detecties handmatig vertalen als ingebouwde regels niet beschikbaar zijn of niet automatisch worden vertaald. Maak de nieuwe KQL-query's en controleer de toewijzing van regels.

Zie Best practices voor het migreren van detectieregels voor meer informatie.

Stappen voor regelmigratie

  1. Controleer of u een testsysteem hebt voor elke regel die u wilt migreren.

    1. Bereid een validatieproces voor voor uw gemigreerde regels, inclusief volledige testscenario's en scripts.

    2. Zorg ervoor dat uw team nuttige bronnen heeft om uw gemigreerde regels te testen.

    3. Controleer of de vereiste gegevensbronnen zijn verbonden en controleer de methoden voor gegevensverbinding.

  2. Controleer of uw detecties beschikbaar zijn als OOTB-sjablonen in Microsoft Sentinel:

    • Gebruik de SIEM-migratie-ervaring om de vertaling en installatie van de OOTB-sjablonen te automatiseren.

      Zie De SIEM-migratie-ervaring gebruiken voor meer informatie.

    • Als u use cases hebt die niet worden weergegeven in de detecties, maakt u regels voor uw eigen werkruimte met OOTB-regelsjablonen.

      Ga in Microsoft Sentinel naar de hub Inhoud.

      Inhoudstype filteren voor sjablonen voor analytics-regels.

      Zoek en installeer/werk elke bijbehorende Content Hub-oplossing of zelfstandige analyseregelsjabloon bij.

      Zie Bedreigingen out-of-the-box detecteren voor meer informatie.

    • Als u detecties hebt die niet worden gedekt door de OOTB-regels van Microsoft Sentinel, probeert u eerst de SIEM-migratie-ervaring voor automatische vertaling.

    • Als de OOTB-regels en de SIEM-migratie de detectie niet volledig vertalen, maakt u de regel handmatig. Gebruik in dergelijke gevallen de volgende stappen om uw regel te maken:

      1. Identificeer de gegevensbronnen die u in uw regel wilt gebruiken. Identificeer de Microsoft Sentinel tabellen die u wilt opvragen door een toewijzingstabel te maken tussen gegevensbronnen en gegevenstabellen.

      2. Identificeer kenmerken, velden of entiteiten in uw gegevens die u in uw regels wilt gebruiken.

      3. Identificeer uw regelcriteria en logica. Overweeg in deze fase regelsjablonen te vinden als voorbeelden voor het samenstellen van uw KQL-query's.

        Denk aan filters, correlatieregels, actieve lijsten, verwijzingssets, volglijsten, detectieafwijkingen, aggregaties, enzovoort. U kunt verwijzingen van uw verouderde SIEM gebruiken om te begrijpen hoe u de querysyntaxis het beste kunt toewijzen.

      4. Identificeer de triggervoorwaarde en regelactie en stel vervolgens uw KQL-query samen en controleer deze. Wanneer u uw query bekijkt, kunt u rekening houden met hulpmiddelen voor KQL-optimalisatie.

  3. Test de regel met elk van uw relevante use cases. Als er geen verwachte resultaten worden weergegeven, controleert en bewerkt u de KQL en test u deze opnieuw.

  4. Wanneer u tevreden bent, kunt u de gemigreerde regel overwegen. Maak zo nodig een playbook voor uw regelactie. Zie Reactie op bedreigingen automatiseren met playbooks in Microsoft Sentinel voor meer informatie.

Meer informatie over analyseregels:

Regelterminologie vergelijken

Deze tabel helpt u het concept van een regel op basis van Kusto-querytaal (KQL) in Microsoft Sentinel te verduidelijken in vergelijking met een Splunk-detectie op basis van Search Processing Language (SPL).

Splunk Microsoft Sentinel
Regeltype •Geplande
•Real-time
• Geplande query
•Fusion
• Microsoft-beveiliging
• Machine Learning (ML) Behavior Analytics
Criteria Definiëren in SPL Definiëren in KQL
Triggervoorwaarde • Aantal resultaten
• Aantal hosts
• Aantal bronnen
•Aangepaste
Drempelwaarde: aantal queryresultaten
Actie • Toevoegen aan geactiveerde waarschuwingen
• Logboek gebeurtenis
• Uitvoerresultaten om op te zoeken
• En meer
• Waarschuwing of incident maken
• Integreert met Logic Apps

Regelvoorbeelden toewijzen en vergelijken

Gebruik deze voorbeelden om regels van Splunk te vergelijken en toe te wijzen aan Microsoft Sentinel in verschillende scenario's.

Algemene zoekopdrachten

SPL-opdracht Beschrijving KQL-operator KQL-voorbeeld
chart/ timechart Retourneert resultaten in een tabellaire uitvoer voor tijdreeksgrafieken. renderoperator … | render timechart
dedup Hiermee verwijdert u volgende resultaten die overeenkomen met een opgegeven criterium. uniek
samenvatten
… | summarize by Computer, EventID
eval Berekent een expressie. Meer informatie over algemene eval opdrachten. Uitbreiden T | extend duration = endTime - startTime
fields Hiermee verwijdert u velden uit zoekresultaten. project
project-away
T | project cost=price*quantity, price
head/tail Retourneert de eerste of laatste N-resultaten. Boven T | top 5 by Name desc nulls last
lookup Hiermee worden veldwaarden uit een externe bron toegevoegd. externe gegevens
opzoeken
KQL-voorbeeld
rename Hiermee wijzigt u de naam van een veld. Gebruik jokertekens om meerdere velden op te geven. projectnaam wijzigen T | project-rename new_column_name = column_name
rex Hiermee geeft u groepsnamen op met behulp van reguliere expressies om velden te extraheren. komt overeen met regex … | where field matches regex "^addr.*"
search Hiermee worden resultaten gefilterd op resultaten die overeenkomen met de zoekexpressie. Zoek search "X"
sort Hiermee sorteert u de zoekresultaten op de opgegeven velden. Sorteren T | sort by strlen(country) asc, price desc
stats Biedt statistieken, optioneel gegroepeerd op velden. Meer informatie over algemene opdrachten voor statistieken. Samenvatten KQL-voorbeeld
mstats Vergelijkbaar met statistieken, gebruikt voor metrische gegevens in plaats van gebeurtenissen. Samenvatten KQL-voorbeeld
table Hiermee geeft u op welke velden in de resultatenset moeten worden bewaard en worden gegevens in tabelvorm bewaard. Project T | project columnA, columnB
top/rare Geeft de meest of minst voorkomende waarden van een veld weer. Boven T | top 5 by Name desc nulls last
transaction De zoekresultaten worden gegroepeerd in transacties.

SPL-voorbeeld
Voorbeeld: row_window_session KQL-voorbeeld
eventstats Genereert samenvattingsstatistieken van velden in uw gebeurtenissen en slaat deze statistieken op in een nieuw veld.

SPL-voorbeeld
Voorbeelden:
deelnemen
make_list
mv-expand
KQL-voorbeeld
streamstats Zoek de cumulatieve som van een veld.

SPL-voorbeeld:
... | streamstats sum(bytes) as bytes _ total \| timechart
row_cumsum ...\| serialize cs=row_cumsum(bytes)
anomalydetection Zoek afwijkingen in het opgegeven veld.

SPL-voorbeeld
series_decompose_anomalies() KQL-voorbeeld
where Hiermee worden zoekresultaten gefilterd met behulp van eval expressies. Wordt gebruikt om twee verschillende velden te vergelijken. Waar T | where fruit=="apple"

lookup opdracht: KQL-voorbeeld

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 opdracht: KQL-voorbeeld

Sales 
| summarize NumTransactions=count(), 
Total=sum(UnitPrice * NumUnits) by Fruit, 
StartOfMonth=startofmonth(SellDateTime) 

mstats opdracht: KQL-voorbeeld

T | summarize count() by price_range=bin(price, 10.0) 

transaction opdracht: SPL-voorbeeld

sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration

transaction opdracht: KQL-voorbeeld

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

Gebruik row_window_session() deze optie om sessiestartwaarden te berekenen voor een kolom in een geserialiseerde rijenset.

...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))

eventstats opdracht: SPL-voorbeeld

… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time

eventstats opdracht: KQL-voorbeeld

Hier volgt een voorbeeld met de join -instructie:

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

Hier volgt een voorbeeld met de make_list -instructie:

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 opdracht: SPL-voorbeeld

sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price

anomalydetection opdracht: KQL-voorbeeld

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)

Algemene eval opdrachten

SPL-opdracht Beschrijving SPL-voorbeeld KQL-opdracht KQL-voorbeeld
abs(X) Retourneert de absolute waarde van X. abs(number) abs() abs(X)
case(X,"Y",…) Gebruikt paren en XY argumenten, waarbij de X argumenten booleaanse expressies zijn. Wanneer de waarde wordt geëvalueerd op TRUE, retourneren de argumenten het bijbehorende Y argument. SPL-voorbeeld case KQL-voorbeeld
ceil(X) Plafond van een getal X. ceil(1.9) ceiling() ceiling(1.9)
cidrmatch("X",Y) Hiermee worden IP-adressen geïdentificeerd die deel uitmaken van een bepaald subnet. 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,…) Retourneert de eerste waarde die niet null is. coalesce(null(), "Returned val", null()) coalesce() coalesce(tolong("not a number"),
tolong("42"), 33) == 42
cos(X) Berekent de cosinus van X. n=cos(0) cos() cos(X)
exact(X) Evalueert een expressie X met behulp van berekeningen met dubbele precisie met drijvende komma. exact(3.14*num) todecimal() todecimal(3.14*2)
exp(X) Retourneert eX. exp(3) exp() exp(3)
if(X,Y,Z) Als X wordt geëvalueerd naar TRUE, is het resultaat het tweede argument Y. Als X wordt geëvalueerd naar FALSE, wordt het resultaat geëvalueerd naar het derde argument Z. if(error==200,
"OK", "Error")
iff() KQL-voorbeeld
isbool(X) Retourneert als X booleaans TRUE is. isbool(field) iff()
gettype
iff(gettype(X) =="bool","TRUE","FALSE")
isint(X) Retourneert TRUE als X een geheel getal is. isint(field) iff()
gettype
KQL-voorbeeld
isnull(X) Retourneert TRUE als X null is. isnull(field) isnull() isnull(field)
isstr(X) Retourneert TRUE als X een tekenreeks is. isstr(field) iff()
gettype
KQL-voorbeeld
len(X) Deze functie retourneert de tekenlengte van een tekenreeks X. len(field) strlen() strlen(field)
like(X,"y") Retourneert TRUE als en alleen als X is zoals het SQLite-patroon in Y. like(field, "addr%") has
contains
startswith
komt overeen met regex
KQL-voorbeeld
log(X,Y) Retourneert het logboek van het eerste argument X met het tweede argument Y als basis. De standaardwaarde van Y is 10. log(number,2) log
log2
log10
log(X)

log2(X)

log10(X)
lower(X) Retourneert de kleine waarde van X. lower(username) tolower tolower(username)
ltrim(X,Y) Retourneert X met de tekens in parameter Y die vanaf de linkerkant zijn bijgesneden. De standaarduitvoer van Y is spaties en tabbladen. ltrim(" ZZZabcZZ ", " Z") trim_start() trim_start(“ ZZZabcZZ”,” ZZZ”)
match(X,Y) Retourneert als X overeenkomt met het regex-patroon Y. match(field, "^\d{1,3}.\d$") matches regex … | where field matches regex @"^\d{1,3}.\d$")
max(X,…) Retourneert de maximumwaarde in een kolom. max(delay, mydelay) max()
arg_max()
… | summarize max(field)
md5(X) Retourneert de MD5-hash van een tekenreekswaarde X. md5(field) hash_md5 hash_md5("X")
min(X,…) Retourneert de minimumwaarde in een kolom. min(delay, mydelay) min_of()
min()
arg_min
KQL-voorbeeld
mvcount(X) Retourneert het aantal (totaal) X waarden. mvcount(multifield) dcount …| summarize dcount(X) by Y
mvfilter(X) Filtert een veld met meerdere waarden op basis van de Booleaanse X expressie. mvfilter(match(email, "net$")) mv-apply KQL-voorbeeld
mvindex(X,Y,Z) Retourneert een subset van het argument met meerdere waarden X van een beginpositie (op basis van nul) Y tot Z (optioneel). mvindex( multifield, 2) array_slice array_slice(arr, 1, 2)
mvjoin(X,Y) Gegeven een veld X met meerdere waarden en tekenreeksscheidingstekens Yen worden de afzonderlijke waarden van het gebruik Yvan X samengevoegd. mvjoin(address, ";") strcat_array KQL-voorbeeld
now() Retourneert de huidige tijd, weergegeven in Unix-tijd. now() now() now()

now(-2d)
null() Accepteert geen argumenten en retourneert NULL. null() null null
nullif(X,Y) Bevat twee argumenten en XY, en retourneert X als de argumenten verschillen. Anders retourneert NULL. nullif(fieldA, fieldB) iff iff(fieldA==fieldB, null, fieldA)
random() Retourneert een pseudo-willekeurig getal tussen 0 tot 2147483647. random() rand() rand()
relative_ time(X,Y) Gegeven een tijdsperiode X en een relatieve tijdaanduiding Y, retourneert de tijdswaarde van Y toegepast op X. relative_time(now(),"-1d@d") unix-tijd KQL-voorbeeld
replace(X,Y,Z) Retourneert een tekenreeks die wordt gevormd door tekenreeks Z te vervangen voor elk exemplaar van een reguliere expressietekenreeks Y in tekenreeks X. Retourneert de datum waarbij de maand- en dagnummers zijn gewisseld.
Voor de 4/30/2015 invoer is 30/4/2009de uitvoer bijvoorbeeld :

replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/")
replace() KQL-voorbeeld
round(X,Y) Retourneert afgerond op het aantal decimalen X dat is opgegeven door Y. De standaardinstelling is om af te ronden op een geheel getal. round(3.5) round round(3.5)
rtrim(X,Y) Retourneert X met de tekens van Y bijgesneden vanaf de rechterkant. Als Y niet is opgegeven, worden spaties en tabbladen ingekort. rtrim(" ZZZZabcZZ ", " Z") trim_end() trim_end(@"[ Z]+",A)
searchmatch(X) Retourneert TRUE als de gebeurtenis overeenkomt met de zoektekenreeks X. searchmatch("foo AND bar") iff() iff(field has "X","Yes","No")
split(X,"Y") Retourneert X als een veld met meerdere waarden, gesplitst op scheidingsteken Y. split(address, ";") split() split(address, ";")
sqrt(X) Retourneert de vierkantswortel van X. sqrt(9) sqrt() sqrt(9)
strftime(X,Y) Retourneert de tijdwaarde X voor het tijdvak die wordt weergegeven met behulp van de indeling die is opgegeven door Y. strftime(_time, "%H:%M") format_datetime() format_datetime(time,'HH:mm')
strptime(X,Y) Gegeven een tijd die wordt vertegenwoordigd door een tekenreeks X, retourneert de waarde die is geparseerd vanuit de indeling Y. strptime(timeStr, "%H:%M") format_datetime() KQL-voorbeeld
substr(X,Y,Z) Retourneert een subtekenreeksveld X vanaf de beginpositie (op basis van één) Y voor Z (optioneel) tekens. substr("string", 1, 3) substring() substring("string", 0, 3)
time() Retourneert de kloktijd van de wand met een resolutie van microseconden. time() format_datetime() KQL-voorbeeld
tonumber(X,Y) Converteert invoertekenreeks X naar een getal, waarbij Y (optioneel, standaardwaarde is 10) de basis definieert van het getal waarnaar moet worden geconverteerd. tonumber("0A4",16) toint() toint("123")
tostring(X,Y) Beschrijving SPL-voorbeeld tostring() tostring(123)
typeof(X) Retourneert een tekenreeksweergave van het veldtype. typeof(12) gettype() gettype(12)
urldecode(X) Retourneert de URL X die is gedecodeerd. SPL-voorbeeld url_decode KQL-voorbeeld

case(X,"Y",…) SPL-voorbeeld

case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")

case(X,"Y",…) KQL-voorbeeld

T
| extend Message = case(error == 404, "Not found", 
error == 500,"Internal Server Error", "OK") 

if(X,Y,Z) KQL-voorbeeld

iif(floor(Timestamp, 1d)==floor(now(), 1d), 
"today", "anotherday")

isint(X) KQL-voorbeeld

iif(gettype(X) =="long","TRUE","FALSE")

isstr(X) KQL-voorbeeld

iif(gettype(X) =="string","TRUE","FALSE")

like(X,"y") Voorbeeld

… | where field has "addr"

… | where field contains "addr"

… | where field startswith "addr"

… | where field matches regex "^addr.*"

min(X,…) KQL-voorbeeld

min_of (expr_1, expr_2 ...)

…|summarize min(expr)

…| summarize arg_min(Price,*) by Product

mvfilter(X) KQL-voorbeeld

T | mv-apply Metric to typeof(real) on 
(
 top 2 by Metric desc
)

mvjoin(X,Y) KQL-voorbeeld

strcat_array(dynamic([1, 2, 3]), "->")

relative time(X,Y) KQL-voorbeeld

let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s 
};

replace(X,Y,Z) KQL-voorbeeld

replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)

strptime(X,Y) KQL-voorbeeld

format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')

time() KQL-voorbeeld

format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')

tostring(X,Y)

Retourneert een veldwaarde van X als een tekenreeks.

  • Als de waarde van X een getal is, X wordt opnieuw opgemaakt naar een tekenreekswaarde.
  • Als X een booleaanse waarde is, X wordt opnieuw opgemaakt in TRUE of FALSE.
  • Als X een getal is, is het tweede argument Y optioneel en kan het hex (converteren X naar een hexadecimaal), commas (notaties X met komma's en twee decimalen) of duration (converteert van een tijdnotatie X in seconden naar een leesbare tijdnotatie: HH:MM:SS).
tostring(X,Y) SPL-voorbeeld

In dit voorbeeld wordt het volgende geretourneerd:

foo=615 and foo2=00:10:15:

… | eval foo=615 | eval foo2 = tostring(
foo, "duration")

urldecode(X) SPL-voorbeeld

urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")

KQL-voorbeeld van veelvoorkomende stats opdrachten

SPL-opdracht Beschrijving KQL-opdracht KQL-voorbeeld
avg(X) Retourneert het gemiddelde van de waarden van het veld X. avg() avg(X)
count(X) Retourneert het aantal exemplaren van het veld X. Als u een specifieke veldwaarde wilt aangeven die moet worden overeenkomen, notatie X als eval(field="value"). count() summarize count()
dc(X) Retourneert het aantal afzonderlijke waarden van het veld X. dcount() …\| summarize countries=dcount(country) by continent
earliest(X) Retourneert de chronologische vroegst geziene waarde van X. arg_min() … \| summarize arg_min(TimeGenerated, *) by X
latest(X) Retourneert de chronologische meest recente geziene waarde van X. arg_max() … \| summarize arg_max(TimeGenerated, *) by X
max(X) Retourneert de maximumwaarde van het veld X. Als de waarden van X niet-numeriek zijn, wordt de maximumwaarde gevonden via alfabetische volgorde. max() …\| summarize max(X)
median(X) Retourneert de middelste waarde van het veld X. percentiel() …\| summarize percentile(X, 50)
min(X) Retourneert de minimumwaarde van het veld X. Als de waarden van X niet-numeriek zijn, wordt de minimumwaarde gevonden via alfabetische volgorde. min() …\| summarize min(X)
mode(X) Retourneert de meest voorkomende waarde van het veld X. top-hitters() …\| top-hitters 1 of Y by X
perc(Y) Retourneert de percentielwaarde X van het veld Y. Retourneert bijvoorbeeld perc5(total) de vijfde percentielwaarde van een veld total. percentiel() …\| summarize percentile(Y, 5)
range(X) Retourneert het verschil tussen de maximum- en minimumwaarden van het veld X. range() range(1, 3)
stdev(X) Retourneert de steekproefstandaarddeviatie van het veld X. Stdev stdev()
stdevp(X) Retourneert de standaarddeviatie voor de populatie van het veld X. stdevp() stdevp()
sum(X) Retourneert de som van de waarden van het veld X. sum() sum(X)
sumsq(X) Retourneert de som van de kwadraten van de waarden van het veld X.
values(X) Retourneert de lijst met alle afzonderlijke waarden van het veld X als een vermelding met meerdere waarden. De volgorde van de waarden is alfabetisch. make_set() …\| summarize r = make_set(X)
var(X) Retourneert de variantie van het voorbeeld van het veld X. Variantie variance(X)

Volgende stappen

In dit artikel hebt u geleerd hoe u uw migratieregels van Splunk kunt toewijzen aan Microsoft Sentinel.