Migrace pravidel detekce splunku do Služby Microsoft Sentinel
Pravidla detekce splunku jsou komponenty pro správu událostí a informací o zabezpečení (SIEM), které se porovnávají s analytickými pravidly v Microsoft Sentinelu. Tento článek popisuje koncepty pro identifikaci, porovnání a migraci do Microsoft Sentinelu. Nejlepším způsobem je začít s prostředím migrace SIEM, které identifikuje předefinovaná analytická pravidla (OOTB), na která se mají automaticky překládat.
Pokud chcete migrovat nasazení Splunk Observability, přečtěte si další informace o tom, jak migrovat z Splunku do protokolů služby Azure Monitor.
Pravidla auditu
Microsoft Sentinel používá analýzy strojového učení k vytváření vysoce věrných a akčních incidentů. Některé z vašich existujících detekcí Splunku můžou být v Microsoft Sentinelu redundantní, takže je nemigrujte všechny slepě. Tyto aspekty si projděte při identifikaci existujících pravidel detekce.
- Nezapomeňte vybrat případy použití, které odůvodňují migraci pravidel, a zvažte obchodní prioritu a efektivitu.
- Zkontrolujte, že rozumíte typům pravidel Služby Microsoft Sentinel.
- Zkontrolujte, že rozumíte terminologii pravidel.
- Zkontrolujte zastaralá pravidla, která nemají upozornění za posledních 6 až 12 měsíců, a zjistěte, jestli jsou stále relevantní.
- Odstraňte hrozby nebo výstrahy nízké úrovně, které pravidelně ignorujete.
- Potvrďte připojené zdroje dat a zkontrolujte metody datového připojení. Microsoft Sentinel Analytics vyžaduje, aby se datový typ vyskytoval v pracovním prostoru služby Log Analytics před povolením pravidla. Znovu se můžete podívat na konverzace shromažďování dat, abyste zajistili hloubku a šířku dat napříč případy použití, které plánujete zjistit. Pak pomocí prostředí migrace SIEM ověřte, že se zdroje dat mapují odpovídajícím způsobem.
Migrovat pravidla
Po identifikaci detekcí splunku, které se mají migrovat, si projděte tyto aspekty procesu migrace:
- Porovnejte stávající funkce analytických pravidel Microsoft Sentinelu OOTB s vašimi aktuálními případy použití. Pomocí prostředí migrace SIEM zjistíte, které detekce splunku se automaticky převedou na šablony OOTB.
- Přeloží detekce, které nejsou v souladu s analytickými pravidly OOTB. Nejlepší způsob, jak přeložit detekce splunku automaticky, je s prostředím migrace SIEM.
- Objevte další algoritmy pro vaše případy použití prozkoumáním komunitních prostředků, jako je SOC Prime Threat Detection Marketplace.
- Ručně překládat detekce, pokud předdefinovaná pravidla nejsou k dispozici nebo nejsou automaticky přeložena. Vytvořte nové dotazy KQL a zkontrolujte mapování pravidel.
Další informace najdete v osvědčených postupech pro migraci pravidel detekce.
Kroky migrace pravidel
Ověřte, že máte zaveden testovací systém pro každé pravidlo, které chcete migrovat.
Připravte proces ověření pro migrovaná pravidla, včetně kompletních testovacích scénářů a skriptů.
Ujistěte se, že váš tým má užitečné zdroje k otestování migrovaných pravidel.
Ověřte, že máte připojené požadované zdroje dat, a zkontrolujte metody datového připojení.
Ověřte, jestli jsou vaše detekce dostupné jako šablony OOTB v Microsoft Sentinelu:
Využijte prostředí migrace SIEM k automatizaci překladu a instalace šablon OOTB.
Další informace najdete v tématu Použití prostředí migrace SIEM.
Pokud se případy použití neprojeví v detekcích, vytvořte pravidla pro vlastní pracovní prostor pomocí šablon pravidel OOTB.
V Microsoft Sentinelu přejděte do centra obsahu.
Filtrovat typ obsahu pro šablony pravidel Analytics
Vyhledejte a nainstalujte/ aktualizujte každé odpovídající řešení centra obsahu nebo samostatnou šablonu analytického pravidla.
Další informace najdete v tématu Detekce hrozeb, které jsou předdefinované.
Pokud máte detekce, na které se nevztahují pravidla OOTB microsoft Sentinelu, zkuste nejprve vyzkoušet prostředí migrace SIEM pro automatický překlad.
Pokud pravidla OOTB ani migrace SIEM zcela přeloží detekci, vytvořte pravidlo ručně. V takových případech vytvořte pravidlo pomocí následujícího postupu:
Identifikujte zdroje dat, které chcete použít ve svém pravidle. Identifikujte tabulky Microsoft Sentinelu, které chcete dotazovat, vytvořením tabulky mapování mezi zdroji dat a tabulkami dat.
Identifikujte všechny atributy, pole nebo entity ve vašich datech, které chcete použít ve svých pravidlech.
Identifikujte kritéria a logiku pravidla. V této fázi zvažte vyhledání šablon pravidel jako ukázek pro vytvoření dotazů KQL.
Zvažte filtry, pravidla korelace, aktivní seznamy, referenční sady, seznamy ke zhlédnutí, detekce anomálií, agregace atd. Můžete použít odkazy poskytované starší verzí SIEM, abyste pochopili , jak nejlépe namapovat syntaxi dotazu.
Identifikujte podmínku triggeru a akci pravidla a pak vytvořte a zkontrolujte dotaz KQL. Při kontrole dotazu zvažte prostředky s pokyny k optimalizaci KQL.
Otestujte pravidlo s jednotlivými relevantními případy použití. Pokud neposkytuje očekávané výsledky, zkontrolujte a upravte KQL a znovu ho otestujte.
Až budete spokojeni, zvažte migraci pravidla. Podle potřeby vytvořte playbook pro akci pravidla. Další informace najdete v tématu Automatizace reakcí na hrozby pomocí playbooků v Microsoft Sentinelu.
Další informace o analytických pravidlech:
- Vytvořte vlastní analytická pravidla pro detekci hrozeb. Seskupením výstrah můžete snížit únavu výstrah seskupením výstrah, ke kterým dochází v daném časovém rámci.
- Namapujte datová pole na entity v Microsoft Sentinelu , aby inženýři SOC mohli definovat entity jako součást důkazů ke sledování během vyšetřování. Mapování entit také umožňuje analytikům SOC využívat intuitivní [graf šetření] (vyšetřovací případy.md#use-the-investigation-graph-to-deep-dive), které můžou pomoct zkrátit čas a úsilí.
- Prozkoumejte incidenty s daty UEBA, jako příklad použití důkazů k zobrazení událostí, výstrah a jakýchkoli záložek přidružených k určitému incidentu v podokně náhledu incidentu.
- dotazovací jazyk Kusto (KQL), které můžete použít k odesílání požadavků jen pro čtení do databáze Log Analytics za účelem zpracování dat a vrácení výsledků. KQL se také používá v jiných služby Microsoft, jako je Microsoft Defender for Endpoint a Application Insights.
Porovnání terminologie pravidel
Tato tabulka vám pomůže objasnit koncept pravidla na základě dotazovací jazyk Kusto (KQL) v Microsoft Sentinelu ve srovnání s detekcí splunku na základě jazyka SPL (Search Processing Language).
Splunk | Microsoft Sentinel | |
---|---|---|
Typ pravidla | •Naplánovaný •Real-time |
• Naplánovaný dotaz •Fúze • Zabezpečení Microsoftu • Analýza chování strojového učení (ML) |
Kritéria | Definice v SPL | Definice v KQL |
Podmínka triggeru | • Počet výsledků • Počet hostitelů • Počet zdrojů •Zvyk |
Prahová hodnota: Počet výsledků dotazu |
Akce | • Přidání do aktivovaných upozornění • Událost protokolu • Výsledky výstupu pro vyhledání • A další |
• Vytvoření upozornění nebo incidentu • Integruje se s Logic Apps |
Mapování a porovnání ukázek pravidel
Pomocí těchto ukázek můžete porovnat a mapovat pravidla z Splunku na Microsoft Sentinel v různých scénářích.
Běžné vyhledávací příkazy
Příkaz SPL | Popis | Operátor KQL | Příklad KQL |
---|---|---|---|
chart/ timechart |
Vrátí výsledky v tabulkovém výstupu pro grafy časových řad. | render – operátor | … | render timechart |
dedup |
Odebere následné výsledky, které odpovídají zadanému kritériu. | • jedinečné • shrnutí |
… | summarize by Computer, EventID |
eval |
Vypočítá výraz. Přečtěte si o běžných eval příkazech. |
rozšířit | T | extend duration = endTime - startTime |
fields |
Odebere pole z výsledků hledání. | • projekt • projektový pobyt |
T | project cost=price*quantity, price |
head/tail |
Vrátí první nebo poslední N výsledky. | vrchol | T | top 5 by Name desc nulls last |
lookup |
Přidá hodnoty polí z externího zdroje. | • externaldata • vyhledávání |
Příklad KQL |
rename |
Přejmenuje pole. Pomocí zástupných znaků můžete zadat více polí. | přejmenování projektu | T | project-rename new_column_name = column_name |
rex |
Určuje názvy skupin pomocí regulárních výrazů k extrakci polí. | odpovídá regulárnímu výrazu | … | where field matches regex "^addr.*" |
search |
Filtruje výsledky na výsledky, které odpovídají hledanému výrazu. | search | search "X" |
sort |
Seřadí výsledky hledání podle zadaných polí. | sort | T | sort by strlen(country) asc, price desc |
stats |
Poskytuje statistiky, volitelně seskupené podle polí. Přečtěte si další informace o běžných příkazech statistik. | shrnout | Příklad KQL |
mstats |
Podobně jako statistiky se používají u metrik místo událostí. | shrnout | Příklad KQL |
table |
Určuje, která pole se mají uchovávat v sadě výsledků, a uchovává data v tabulkovém formátu. | projekt | T | project columnA, columnB |
top/rare |
Zobrazí nejběžnější hodnoty pole. | vrchol | T | top 5 by Name desc nulls last |
transaction |
Seskupí výsledky hledání do transakcí. Příklad SPL |
Příklad: row_window_session | Příklad KQL |
eventstats |
Vygeneruje souhrnné statistiky z polí ve vašich událostech a uloží tyto statistiky do nového pole. Příklad SPL |
Příklady: • spojení • make_list • mv-expand |
Příklad KQL |
streamstats |
Najděte kumulativní součet pole. Příklad SPL: ... | streamstats sum(bytes) as bytes _ total \| timechart |
row_cumsum | ...\| serialize cs=row_cumsum(bytes) |
anomalydetection |
Vyhledání anomálií v zadaném poli Příklad SPL |
series_decompose_anomalies() | Příklad KQL |
where |
Filtruje výsledky hledání pomocí eval výrazů. Používá se k porovnání dvou různých polí. |
kde | T | where fruit=="apple" |
lookup
command: KQL example
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 example
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
mstats
command: KQL example
T | summarize count() by price_range=bin(price, 10.0)
transaction
command: SPL example
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
transaction
command: KQL example
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
Slouží row_window_session()
k výpočtu počátečních hodnot relace pro sloupec v serializované sadě řádků.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
eventstats
command: SPL example
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
eventstats
command: KQL example
Tady je příklad s příkazem 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
Tady je příklad s příkazem 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
command: SPL example
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
anomalydetection
command: KQL example
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)
Běžné eval
příkazy
Příkaz SPL | Popis | Příklad SPL | Příkaz KQL | Příklad KQL |
---|---|---|---|---|
abs(X) |
Vrátí absolutní hodnotu X. | abs(number) |
abs() |
abs(X) |
case(X,"Y",…) |
Přebírá dvojice argumentů a Y argumentůX , kde X jsou argumenty logickými výrazy. Při vyhodnocení na TRUE vrátí argumenty odpovídající Y argument. |
Příklad SPL | case |
Příklad KQL |
ceil(X) |
Strop čísla X. | ceil(1.9) |
ceiling() |
ceiling(1.9) |
cidrmatch("X",Y) |
Identifikuje IP adresy, které patří do konkrétní podsí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,…) |
Vrátí první hodnotu, která nemá hodnotu null. | coalesce(null(), "Returned val", null()) |
coalesce() |
coalesce(tolong("not a number"), tolong("42"), 33) == 42 |
cos(X) |
Vypočítá kosinus X. | n=cos(0) |
cos() | cos(X) |
exact(X) |
Vyhodnotí výraz X pomocí aritmetiky s plovoucí desetinnou čárkou s dvojitou přesností. | exact(3.14*num) |
todecimal() |
todecimal(3.14*2) |
exp(X) |
Vrátí eX. | exp(3) |
exp() | exp(3) |
if(X,Y,Z) |
Pokud X se vyhodnotí jako TRUE , výsledek je druhý argument Y . Pokud X se vyhodnotí jako FALSE , výsledek se vyhodnotí jako třetí argument Z . |
if(error==200, "OK", "Error") |
iif() |
Příklad KQL |
isbool(X) |
Vrátí TRUE , pokud X je logická hodnota. |
isbool(field) |
• iif() • gettype |
iif(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Vrátí TRUE , pokud X je celé číslo. |
isint(field) |
• iif() • gettype |
Příklad KQL |
isnull(X) |
Vrátí TRUE hodnotu X null. |
isnull(field) |
isnull() |
isnull(field) |
isstr(X) |
Vrátí TRUE , pokud X je řetězec. |
isstr(field) |
• iif() • gettype |
Příklad KQL |
len(X) |
Tato funkce vrátí délku znaku řetězce X . |
len(field) |
strlen() |
strlen(field) |
like(X,"y") |
Vrátí TRUE , pokud a pouze pokud X je jako vzor SQLite v Y . |
like(field, "addr%") |
• has • contains • startswith • odpovídá regulárnímu výrazu |
Příklad KQL |
log(X,Y) |
Vrátí protokol prvního argumentu X pomocí druhého argumentu Y jako základu. Výchozí hodnota atributu Y je 10 . |
log(number,2) |
• log • log2 • log10 |
log(X) log2(X) log10(X) |
lower(X) |
Vrátí hodnotu malá písmena .X |
lower(username) |
tolower | tolower(username) |
ltrim(X,Y) |
Vrátí X znaky v parametru Y oříznuté z levé strany. Výchozí výstup Y je mezery a tabulátory. |
ltrim(" ZZZabcZZ ", " Z") |
trim_start() |
trim_start(“ ZZZabcZZ”,” ZZZ”) |
match(X,Y) |
Vrátí, pokud X odpovídá vzoru regulárního výrazu Y. | match(field, "^\d{1,3}.\d$") |
matches regex |
… | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Vrátí maximální hodnotu ve sloupci. | max(delay, mydelay) |
• max() • arg_max() |
… | summarize max(field) |
md5(X) |
Vrátí hodnotu hash MD5 řetězcové hodnoty X . |
md5(field) |
hash_md5 |
hash_md5("X") |
min(X,…) |
Vrátí minimální hodnotu ve sloupci. | min(delay, mydelay) |
• min_of() • min() • arg_min |
Příklad KQL |
mvcount(X) |
Vrátí číslo (celkem) X hodnot. |
mvcount(multifield) |
dcount |
…| summarize dcount(X) by Y |
mvfilter(X) |
Filtruje pole s více hodnotami na základě logického X výrazu. |
mvfilter(match(email, "net$")) |
mv-apply |
Příklad KQL |
mvindex(X,Y,Z) |
Vrátí podmnožinu argumentu s X více hodnotami z počáteční pozice (založené na nule) Y na Z (volitelné). |
mvindex( multifield, 2) |
array_slice |
array_slice(arr, 1, 2) |
mvjoin(X,Y) |
Při použití vícehodnotového pole X a oddělovače Y řetězců a spojí jednotlivé hodnoty X použití Y . |
mvjoin(address, ";") |
strcat_array |
Příklad KQL |
now() |
Vrátí aktuální čas reprezentovaný v unixovém čase. | now() |
now() |
now() now(-2d) |
null() |
Nepřijímá argumenty a vrací .NULL |
null() |
null | null |
nullif(X,Y) |
Obsahuje dva argumenty a Y vrátí, X pokud jsou argumenty X odlišné. V opačném případě vrátí hodnotu NULL . |
nullif(fieldA, fieldB) |
iif |
iif(fieldA==fieldB, null, fieldA) |
random() |
Vrátí pseudonáhodné číslo mezi 0 hodnotami 2147483647 . |
random() |
rand() |
rand() |
relative_ time(X,Y) |
Vzhledem k času epochy X a specifikátoru Y relativního času vrátí hodnotu času epochy použitého Y na X . |
relative_time(now(),"-1d@d") |
unixový čas | Příklad KQL |
replace(X,Y,Z) |
Vrátí řetězec vytvořený nahrazením řetězce Z pro každý výskyt řetězce Y regulárního výrazu v řetězci X . |
Vrátí datum s přepnulými čísly měsíců a dnů. Například pro 4/30/2015 vstup je 30/4/2009 výstup:replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/") |
replace() |
Příklad KQL |
round(X,Y) |
Vrátí X zaokrouhlenou na počet desetinných míst určených Y hodnotou . Výchozí hodnota je zaokrouhlit na celé číslo. |
round(3.5) |
round |
round(3.5) |
rtrim(X,Y) |
Vrátí X znaky Y oříznuté z pravé strany. Pokud Y není zadáno, mezery a tabulátory se oříznou. |
rtrim(" ZZZZabcZZ ", " Z") |
trim_end() |
trim_end(@"[ Z]+",A) |
searchmatch(X) |
Vrátí TRUE , pokud událost odpovídá hledanému řetězci X . |
searchmatch("foo AND bar") |
iif() | iif(field has "X","Yes","No") |
split(X,"Y") |
Vrátí X jako pole s více hodnotami rozdělené oddělovačem Y . |
split(address, ";") |
split() |
split(address, ";") |
sqrt(X) |
Vrátí druhou odmocninu .X |
sqrt(9) |
sqrt() |
sqrt(9) |
strftime(X,Y) |
Vrátí hodnotu X epochového času vykreslenou pomocí formátu určeného parametrem Y . |
strftime(_time, "%H:%M") |
format_datetime() |
format_datetime(time,'HH:mm') |
strptime(X,Y) |
Vzhledem k času reprezentovaného řetězcem X vrátí hodnotu parsovanou z formátu Y . |
strptime(timeStr, "%H:%M") |
format_datetime() | Příklad KQL |
substr(X,Y,Z) |
Vrátí pole X podřetězdce od počáteční pozice (jedno) Y pro Z (volitelné) znaky. |
substr("string", 1, 3) |
substring() |
substring("string", 0, 3) |
time() |
Vrátí hodinový čas s rozlišením mikrosekund. | time() |
format_datetime() |
Příklad KQL |
tonumber(X,Y) |
Převede vstupní řetězec X na číslo, kde Y (volitelná výchozí hodnota je 10 ) definuje základ čísla, na který se má převést. |
tonumber("0A4",16) |
toint() |
toint("123") |
tostring(X,Y) |
Popis | Příklad SPL | tostring() |
tostring(123) |
typeof(X) |
Vrátí řetězcovou reprezentaci typu pole. | typeof(12) |
gettype() |
gettype(12) |
urldecode(X) |
Vrátí dekódovanou adresu URL X . |
Příklad SPL | url_decode |
Příklad KQL |
case(X,"Y",…)
Příklad SPL
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
case(X,"Y",…)
Příklad KQL
T
| extend Message = case(error == 404, "Not found",
error == 500,"Internal Server Error", "OK")
if(X,Y,Z)
Příklad KQL
iif(floor(Timestamp, 1d)==floor(now(), 1d),
"today", "anotherday")
isint(X)
Příklad KQL
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X)
Příklad KQL
iif(gettype(X) =="string","TRUE","FALSE")
like(X,"y")
příklad
… | where field has "addr"
… | where field contains "addr"
… | where field startswith "addr"
… | where field matches regex "^addr.*"
min(X,…)
Příklad KQL
min_of (expr_1, expr_2 ...)
…|summarize min(expr)
…| summarize arg_min(Price,*) by Product
mvfilter(X)
Příklad KQL
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
mvjoin(X,Y)
Příklad KQL
strcat_array(dynamic([1, 2, 3]), "->")
relative time(X,Y)
Příklad KQL
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s
};
replace(X,Y,Z)
Příklad KQL
replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)
strptime(X,Y)
Příklad KQL
format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')
time()
Příklad KQL
format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')
tostring(X,Y)
Vrátí hodnotu X
pole jako řetězec.
- Pokud je hodnota
X
čísla,X
přeformátuje se na řetězcovou hodnotu. - Je-li
X
logická hodnota,X
je přeformátována naTRUE
neboFALSE
. - Pokud
X
je číslo, druhý argumentY
je nepovinný a může býthex
buď (převedenX
na šestnáctkový),commas
(formátX
s čárkami a dvěma desetinnými místyX
), neboduration
(převede z formátu času v sekundách na čitelný formát času:HH:MM:SS
).
tostring(X,Y)
Příklad SPL
Tento příklad vrátí:
foo=615 and foo2=00:10:15:
… | eval foo=615 | eval foo2 = tostring(
foo, "duration")
urldecode(X)
Příklad SPL
urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
Příklad běžných stats
příkazů KQL
Příkaz SPL | Popis | Příkaz KQL | Příklad KQL |
---|---|---|---|
avg(X) |
Vrátí průměr hodnot pole X . |
avg() | avg(X) |
count(X) |
Vrátí počet výskytů pole X . Chcete-li označit konkrétní hodnotu pole, která se má shodovat, naformátovat X jako eval(field="value") . |
count() | summarize count() |
dc(X) |
Vrátí počet jedinečných hodnot pole X . |
dcount() | …\| summarize countries=dcount(country) by continent |
earliest(X) |
Vrátí chronologicky nejstarší zobrazenou hodnotu X . |
arg_min() | … \| summarize arg_min(TimeGenerated, *) by X |
latest(X) |
Vrátí chronologicky poslední zobrazenou X hodnotu . |
arg_max() | … \| summarize arg_max(TimeGenerated, *) by X |
max(X) |
Vrátí maximální hodnotu pole X . Pokud jsou hodnoty X nečíselné, maximální hodnota se najde v abecedním pořadí. |
max() | …\| summarize max(X) |
median(X) |
Vrátí střední hodnotu pole X . |
percentil() | …\| summarize percentile(X, 50) |
min(X) |
Vrátí minimální hodnotu pole X . Pokud jsou hodnoty X nečíselné, minimální hodnota se najde v abecedním pořadí. |
min() | …\| summarize min(X) |
mode(X) |
Vrátí nejčastější hodnotu pole X . |
top-hitters() | …\| top-hitters 1 of Y by X |
perc(Y) |
Vrátí hodnotu percentilu X pole Y . Například perc5(total) vrátí pátou percentilovou hodnotu pole total . |
percentil() | …\| summarize percentile(Y, 5) |
range(X) |
Vrátí rozdíl mezi maximální a minimální hodnotou pole X . |
range() | range(1, 3) |
stdev(X) |
Vrátí směrodatnou odchylku výběru pole X . |
stdev | stdev() |
stdevp(X) |
Vrátí směrodatnou odchylku základního souboru pole X . |
stdevp() | stdevp() |
sum(X) |
Vrátí součet hodnot pole X . |
sum() | sum(X) |
sumsq(X) |
Vrátí součet čtverců hodnot pole X . |
||
values(X) |
Vrátí seznam všech jedinečných hodnot pole X jako položku s více hodnotami. Pořadí hodnot je abecední. |
make_set() | …\| summarize r = make_set(X) |
var(X) |
Vrátí vzorek rozptylu pole X . |
odchylka | variance(X) |
Další kroky
V tomto článku jste zjistili, jak namapovat pravidla migrace z Splunku na Microsoft Sentinel.