Udostępnij za pośrednictwem


Migrowanie reguł wykrywania splunk do usługi Microsoft Sentinel

Reguły wykrywania splunk to składniki zarządzania informacjami i zdarzeniami zabezpieczeń (SIEM), które porównują się z regułami analizy w usłudze Microsoft Sentinel. W tym artykule opisano pojęcia dotyczące identyfikowania, porównywania i migrowania ich do usługi Microsoft Sentinel. Najlepszym sposobem jest rozpoczęcie od środowiska migracji rozwiązania SIEM, które identyfikuje gotowe do użycia reguły analizy (OOTB) w celu automatycznego tłumaczenia na.

Jeśli chcesz przeprowadzić migrację wdrożenia funkcji Obserwacja splunk, dowiedz się więcej o sposobie migracji z rozwiązania Splunk do dzienników usługi Azure Monitor.

Reguły inspekcji

Usługa Microsoft Sentinel używa analizy uczenia maszynowego do tworzenia zdarzeń o wysokiej wierności i z możliwością działania. Niektóre z istniejących wykryć splunk mogą być nadmiarowe w usłudze Microsoft Sentinel, więc nie migruj ich wszystkich ślepo. Zapoznaj się z tymi zagadnieniami, aby zidentyfikować istniejące reguły wykrywania.

  • Pamiętaj, aby wybrać przypadki użycia, które uzasadniają migrację reguł, biorąc pod uwagę priorytet biznesowy i wydajność.
  • Sprawdź, czy rozumiesz typy reguł usługi Microsoft Sentinel.
  • Sprawdź, czy rozumiesz terminologię dotyczącą reguł.
  • Przejrzyj nieaktualne reguły, które nie mają alertów z ostatnich 6–12 miesięcy, i ustal, czy są one nadal istotne.
  • Wyeliminuj zagrożenia niskiego poziomu lub alerty, które rutynowo ignorujesz.
  • Potwierdź połączone źródła danych i przejrzyj metody połączenia danych. Analiza usługi Microsoft Sentinel wymaga, aby typ danych był obecny w obszarze roboczym usługi Log Analytics przed włączeniem reguły. Ponownie zajmij się konwersacjami zbierania danych, aby zapewnić głębokość i szerokość danych w różnych przypadkach użycia, które mają być wykrywane. Następnie użyj środowiska migracji rozwiązania SIEM, aby upewnić się, że źródła danych są odpowiednio mapowane.

Migrowanie reguł

Po zidentyfikowaniu wykrywania splunk do migracji zapoznaj się z tymi zagadnieniami dotyczącymi procesu migracji:

  • Porównaj istniejące funkcje reguł analizy OOTB usługi Microsoft Sentinel z bieżącymi przypadkami użycia. Użyj środowiska migracji rozwiązania SIEM, aby sprawdzić, które wykrycia splunk są automatycznie konwertowane na szablony OOTB.
  • Przetłumacz wykrycia, które nie są zgodne z regułami analizy OOTB. Najlepszym sposobem automatycznego tłumaczenia wykrywania splunk jest użycie środowiska migracji rozwiązania SIEM.
  • Odkryj więcej algorytmów dla Twoich przypadków użycia, eksplorując zasoby społeczności, takie jak witryna Marketplace wykrywania zagrożeń SOC Prime.
  • Ręczne tłumaczenie wykryć, jeśli wbudowane reguły nie są dostępne lub nie są automatycznie tłumaczone. Utwórz nowe zapytania KQL i przejrzyj mapowanie reguł.

Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące migrowania reguł wykrywania.

Kroki migracji reguł

  1. Sprawdź, czy masz system testowania dla każdej reguły, którą chcesz migrować.

    1. Przygotuj proces weryfikacji dla zmigrowanych reguł, w tym scenariusze i skrypty pełnego testu.

    2. Upewnij się, że zespół ma przydatne zasoby do testowania migrowanych reguł.

    3. Upewnij się, że masz połączone wymagane źródła danych i przejrzyj metody połączenia danych.

  2. Sprawdź, czy twoje wykrycia są dostępne jako szablony OOTB w usłudze Microsoft Sentinel:

    • Użyj środowiska migracji rozwiązania SIEM, aby zautomatyzować tłumaczenie i instalację szablonów OOTB.

      Aby uzyskać więcej informacji, zobacz Używanie środowiska migracji rozwiązania SIEM.

    • Jeśli przypadki użycia nie zostały odzwierciedlone w wykrywaniu, utwórz reguły dla własnego obszaru roboczego za pomocą szablonów reguł OOTB.

      W usłudze Microsoft Sentinel przejdź do centrum zawartości.

      Filtruj typ zawartości dla szablonów reguł analizy.

      Znajdź i zainstaluj/zaktualizuj każde odpowiednie rozwiązanie centrum zawartości lub autonomiczny szablon reguły analizy.

      Aby uzyskać więcej informacji, zobacz Wykrywanie zagrożeń poza urządzeniem.

    • Jeśli masz wykrycia, które nie są objęte regułami OOTB usługi Microsoft Sentinel, najpierw wypróbuj środowisko migracji rozwiązania SIEM na potrzeby automatycznego tłumaczenia.

    • Jeśli ani reguły OOTB, ani migracja rozwiązania SIEM całkowicie nie przetłumaczą wykrywania, utwórz regułę ręcznie. W takich przypadkach wykonaj następujące kroki, aby utworzyć regułę:

      1. Zidentyfikuj źródła danych, których chcesz użyć w regule. Zidentyfikuj tabele usługi Microsoft Sentinel, które chcesz wykonać, tworząc tabelę mapowania między źródłami danych i tabelami danych.

      2. Zidentyfikuj wszystkie atrybuty, pola lub jednostki w danych, które mają być używane w regułach.

      3. Zidentyfikuj kryteria i logikę reguły. Na tym etapie rozważ znalezienie szablonów reguł jako przykłady tworzenia zapytań KQL.

        Rozważ filtry, reguły korelacji, aktywne listy, zestawy odwołań, listy kontrolne, anomalie wykrywania, agregacje itd. Możesz użyć odwołań dostarczonych przez starsze rozwiązanie SIEM, aby zrozumieć , jak najlepiej mapować składnię zapytań.

      4. Zidentyfikuj warunek wyzwalacza i akcję reguły, a następnie skonstruuj i przejrzyj zapytanie KQL. Podczas przeglądania zapytania rozważ zasoby wskazówek dotyczących optymalizacji języka KQL.

  3. Przetestuj regułę przy użyciu każdego z odpowiednich przypadków użycia. Jeśli nie dostarczy oczekiwanych wyników, przejrzyj i zmodyfikuj język KQL i przetestuj go ponownie.

  4. Jeśli masz pewność, że reguła została zmigrowana. Utwórz podręcznik dla akcji reguły zgodnie z potrzebami. Aby uzyskać więcej informacji, zobacz artykuł Automatyzowanie reagowania na zagrożenia za pomocą podręczników w usłudze Microsoft Sentinel.

Dowiedz się więcej o regułach analizy:

Porównanie terminologii dotyczącej reguł

Ta tabela ułatwia wyjaśnienie koncepcji reguły opartej na język zapytań Kusto (KQL) w usłudze Microsoft Sentinel w porównaniu z wykrywaniem splunk na podstawie języka przetwarzania wyszukiwania (SPL).

Splunk Microsoft Sentinel
Typ reguły •Zaplanowane
•Czasu rzeczywistego
• Zaplanowane zapytanie
•Fuzja
• Zabezpieczenia firmy Microsoft
• Analiza zachowań uczenia maszynowego
Kryteria Definiowanie w usłudze SPL Definiowanie w języku KQL
Warunek wyzwalacza • Liczba wyników
• Liczba hostów
• Liczba źródeł
•Zwyczaj
Próg: liczba wyników zapytania
Akcja • Dodawanie do wyzwalanych alertów
• Zdarzenie dziennika
• Wyniki wyjściowe do wyszukania
• I więcej
• Tworzenie alertu lub zdarzenia
• Integruje się z usługą Logic Apps

Mapuj i porównaj przykłady reguł

Skorzystaj z tych przykładów, aby porównać i mapować reguły z rozwiązania Splunk do usługi Microsoft Sentinel w różnych scenariuszach.

Typowe polecenia wyszukiwania

Polecenie SPL opis Operator KQL Przykład KQL
chart/ timechart Zwraca wyniki w tabelarycznych danych wyjściowych wykresów szeregów czasowych. operator renderowania … | render timechart
dedup Usuwa kolejne wyniki zgodne z określonym kryterium. odrębne
podsumowywanie
… | summarize by Computer, EventID
eval Oblicza wyrażenie. Dowiedz się więcej o typowych eval poleceniach. rozszerzyć T | extend duration = endTime - startTime
fields Usuwa pola z wyników wyszukiwania. projekt
odejście od projektu
T | project cost=price*quantity, price
head/tail Zwraca pierwsze lub ostatnie N wyników. Do góry T | top 5 by Name desc nulls last
lookup Dodaje wartości pól ze źródła zewnętrznego. dane zewnętrzne
wyszukiwanie
Przykład KQL
rename Zmienia nazwę pola. Użyj symboli wieloznacznych, aby określić wiele pól. zmiana nazwy projektu T | project-rename new_column_name = column_name
rex Określa nazwy grup używające wyrażeń regularnych do wyodrębniania pól. dopasowanie wyrażeń regularnych … | where field matches regex "^addr.*"
search Filtruje wyniki do wyników odpowiadających wyrażeniu wyszukiwania. search search "X"
sort Sortuje wyniki wyszukiwania według określonych pól. sort T | sort by strlen(country) asc, price desc
stats Udostępnia statystyki, opcjonalnie pogrupowane według pól. Dowiedz się więcej o typowych poleceniach statystyk. podsumować Przykład KQL
mstats Podobnie jak w przypadku statystyk, używanych w metrykach zamiast zdarzeń. podsumować Przykład KQL
table Określa, które pola mają być przechowywane w zestawie wyników, i przechowuje dane w formacie tabelarycznym. projekt T | project columnA, columnB
top/rare Wyświetla najbardziej lub najmniej typowe wartości pola. Do góry T | top 5 by Name desc nulls last
transaction Grupuje wyniki wyszukiwania w transakcjach.

Przykład spl
Przykład: row_window_session Przykład KQL
eventstats Generuje statystyki podsumowania z pól w zdarzeniach i zapisuje te statystyki w nowym polu.

Przykład spl
Przykłady:
sprzężenia
make_list
rozszerzenie mv-expand
Przykład KQL
streamstats Znajdź sumę skumulowaną pola.

Przykład spl:
... | streamstats sum(bytes) as bytes _ total \| timechart
row_cumsum ...\| serialize cs=row_cumsum(bytes)
anomalydetection Znajdź anomalie w określonym polu.

Przykład spl
series_decompose_anomalies() Przykład KQL
where Filtruje wyniki wyszukiwania przy użyciu eval wyrażeń. Służy do porównywania dwóch różnych pól. gdzie T | where fruit=="apple"

lookup polecenie: przykład KQL

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 polecenie: przykład KQL

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

mstats polecenie: przykład KQL

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

transaction polecenie: przykład spl

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

transaction polecenie: przykład KQL

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

Służy row_window_session() do obliczania wartości rozpoczęcia sesji dla kolumny w serializowanym zestawie wierszy.

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

eventstats polecenie: przykład spl

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

eventstats polecenie: przykład KQL

Oto przykład z instrukcją 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

Oto przykład z instrukcją 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 polecenie: przykład spl

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

anomalydetection polecenie: przykład KQL

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)

Typowe eval polecenia

Polecenie SPL opis Przykład spl Polecenie KQL Przykład KQL
abs(X) Zwraca wartość bezwzględną X. abs(number) abs() abs(X)
case(X,"Y",…) Przyjmuje pary argumentów X i Y , gdzie X argumenty są wyrażeniami logicznymi. Po obliczeniu TRUEwartości argumenty zwracają odpowiedni Y argument. Przykład spl case Przykład KQL
ceil(X) Sufit liczby X. ceil(1.9) ceiling() ceiling(1.9)
cidrmatch("X",Y) Identyfikuje adresy IP należące do określonej podsieci. 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,…) Zwraca pierwszą wartość, która nie ma wartości null. coalesce(null(), "Returned val", null()) coalesce() coalesce(tolong("not a number"),
tolong("42"), 33) == 42
cos(X) Oblicza cosinus X. n=cos(0) cos() cos(X)
exact(X) Oblicza wyrażenie X przy użyciu arytmetyki zmiennoprzecinkowych o podwójnej precyzji. exact(3.14*num) todecimal() todecimal(3.14*2)
exp(X) Zwraca wartość eX. exp(3) exp() exp(3)
if(X,Y,Z) Jeśli X zostanie obliczona TRUEwartość , wynikiem jest drugi argument Y. Jeśli X zostanie obliczona FALSEwartość , wynik zwróci wynik do trzeciego argumentu Z. if(error==200,
"OK", "Error")
iif() Przykład KQL
isbool(X) Zwraca wartość TRUE , jeśli X jest wartością logiczną. isbool(field) iif()
gettype
iif(gettype(X) =="bool","TRUE","FALSE")
isint(X) Zwraca wartość TRUE , jeśli X jest liczbą całkowitą. isint(field) iif()
gettype
Przykład KQL
isnull(X) Zwraca wartość TRUE , jeśli X ma wartość null. isnull(field) isnull() isnull(field)
isstr(X) Zwraca wartość TRUE , jeśli X jest ciągiem. isstr(field) iif()
gettype
Przykład KQL
len(X) Ta funkcja zwraca długość znaku ciągu X. len(field) strlen() strlen(field)
like(X,"y") Zwraca wartość TRUE if i tylko wtedy, gdy X jest jak wzorzec SQLite w pliku Y. like(field, "addr%") has
contains
startswith
dopasowanie wyrażeń regularnych
Przykład KQL
log(X,Y) Zwraca dziennik pierwszego argumentu X przy użyciu drugiego argumentu Y jako podstawy. Wartość domyślna Y to 10. log(number,2) log
log2
log10
log(X)

log2(X)

log10(X)
lower(X) Zwraca małą wartość .X lower(username) tolower tolower(username)
ltrim(X,Y) Zwraca X znaki w parametrze Y przyciętym z lewej strony. Domyślne dane wyjściowe to Y spacje i karty. ltrim(" ZZZabcZZ ", " Z") trim_start() trim_start(“ ZZZabcZZ”,” ZZZ”)
match(X,Y) Zwraca wartość , jeśli X pasuje do wzorca wyrażenia regularnego Y. match(field, "^\d{1,3}.\d$") matches regex … | where field matches regex @"^\d{1,3}.\d$")
max(X,…) Zwraca wartość maksymalną w kolumnie. max(delay, mydelay) max()
arg_max()
… | summarize max(field)
md5(X) Zwraca skrót MD5 wartości Xciągu . md5(field) hash_md5 hash_md5("X")
min(X,…) Zwraca wartość minimalną w kolumnie. min(delay, mydelay) min_of()
min()
arg_min
Przykład KQL
mvcount(X) Zwraca liczbę (łączną X ) wartości. mvcount(multifield) dcount …| summarize dcount(X) by Y
mvfilter(X) Filtruje pole wielowarte na podstawie wyrażenia logicznego X . mvfilter(match(email, "net$")) mv-apply Przykład KQL
mvindex(X,Y,Z) Zwraca podzbiór argumentu wielowartościowego X z pozycji początkowej (na podstawie zera) Y do Z (opcjonalnie). mvindex( multifield, 2) array_slice array_slice(arr, 1, 2)
mvjoin(X,Y) Biorąc pod uwagę wielowartościowe pole X i ogranicznik Yciągu , i łączy poszczególne wartości X przy użyciu metody Y. mvjoin(address, ";") strcat_array Przykład KQL
now() Zwraca bieżący czas reprezentowany w czasie systemu Unix. now() now() now()

now(-2d)
null() Nie akceptuje argumentów i zwraca wartość NULL. null() null null
nullif(X,Y) Zawiera dwa argumenty i X Y, i zwraca X , jeśli argumenty są różne. W przeciwnym razie zwraca wartość NULL. nullif(fieldA, fieldB) iif iif(fieldA==fieldB, null, fieldA)
random() Zwraca pseudolosową liczbę z zakresu od 0 do 2147483647. random() rand() rand()
relative_ time(X,Y) Biorąc pod uwagę czas X epoki i specyfikator Yczasu względnego , zwraca wartość czasu epoki zastosowaną Y do X. relative_time(now(),"-1d@d") czas systemu unix Przykład KQL
replace(X,Y,Z) Zwraca ciąg utworzony przez podstawianie ciągu Z dla każdego wystąpienia ciągu wyrażenia Y regularnego w ciągu X. Zwraca datę z przełączonymi liczbami miesięcy i dni.
Na przykład dla danych wejściowych 4/30/2015 dane wyjściowe to 30/4/2009:

replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/")
replace() Przykład KQL
round(X,Y) Zwraca zaokrąglone X do liczby miejsc dziesiętnych określonych przez Y. Wartość domyślna to zaokrąglenie do liczby całkowitej. round(3.5) round round(3.5)
rtrim(X,Y) Zwraca X znaki Y przycięte z prawej strony. Jeśli Y nie zostanie określony, spacje i karty zostaną przycięte. rtrim(" ZZZZabcZZ ", " Z") trim_end() trim_end(@"[ Z]+",A)
searchmatch(X) Zwraca TRUE wartość , jeśli zdarzenie pasuje do ciągu Xwyszukiwania . searchmatch("foo AND bar") iif() iif(field has "X","Yes","No")
split(X,"Y") Zwraca X jako pole wielowarte podzielone przez ogranicznik Y. split(address, ";") split() split(address, ";")
sqrt(X) Zwraca pierwiastek kwadratowy elementu X. sqrt(9) sqrt() sqrt(9)
strftime(X,Y) Zwraca wartość X czasu epoki renderowaną przy użyciu formatu określonego przez Y. strftime(_time, "%H:%M") format_datetime() format_datetime(time,'HH:mm')
strptime(X,Y) Biorąc pod uwagę czas reprezentowany przez ciąg X, zwraca wartość przeanalizowaną z formatu Y. strptime(timeStr, "%H:%M") format_datetime() Przykład KQL
substr(X,Y,Z) Zwraca pole X podciągów z pozycji początkowej (opartej na jednej) Y dla Z (opcjonalnie) znaków. substr("string", 1, 3) substring() substring("string", 0, 3)
time() Zwraca czas zegara ściany z mikrosekundową rozdzielczością. time() format_datetime() Przykład KQL
tonumber(X,Y) Konwertuje ciąg X wejściowy na liczbę, gdzie Y (opcjonalna wartość domyślna to 10) definiuje podstawę liczby do konwersji na. tonumber("0A4",16) toint() toint("123")
tostring(X,Y) Opis Przykład spl tostring() tostring(123)
typeof(X) Zwraca reprezentację ciągu typu pola. typeof(12) gettype() gettype(12)
urldecode(X) Zwraca zdekodowany adres URL X . Przykład spl url_decode Przykład KQL

case(X,"Y",…) Przykład spl

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

case(X,"Y",…) Przykład KQL

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

if(X,Y,Z) Przykład KQL

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

isint(X) Przykład KQL

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

isstr(X) Przykład KQL

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

like(X,"y") przykład

… | where field has "addr"

… | where field contains "addr"

… | where field startswith "addr"

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

min(X,…) Przykład KQL

min_of (expr_1, expr_2 ...)

…|summarize min(expr)

…| summarize arg_min(Price,*) by Product

mvfilter(X) Przykład KQL

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

mvjoin(X,Y) Przykład KQL

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

relative time(X,Y) Przykład KQL

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

replace(X,Y,Z) Przykład KQL

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

strptime(X,Y) Przykład KQL

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

time() Przykład KQL

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

tostring(X,Y)

Zwraca wartość pola jako X ciąg.

  • Jeśli wartość X jest liczbą, X jest ponownie sformatowana na wartość ciągu.
  • Jeśli X wartość logiczna jest wartością logiczną, X jest ponownie sformatowana na TRUE lub FALSE.
  • Jeśli X jest liczbą, drugi argument Y jest opcjonalny i może być hex (konwertowany X na szesnastkowy), commas (formaty z przecinkami X i dwoma miejscami dziesiętnymi) lub duration (konwertuje format z formatu czasu w sekundach X na format czasu czytelny: HH:MM:SS).
tostring(X,Y) Przykład spl

Ten przykład zwraca następujące dane:

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

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

urldecode(X) Przykład spl

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

Przykład języka KQL typowych stats poleceń

Polecenie SPL opis Polecenie KQL Przykład KQL
avg(X) Zwraca średnią wartości pola X. avg() avg(X)
count(X) Zwraca liczbę wystąpień pola X. Aby wskazać konkretną wartość pola do dopasowania, sformatuj X jako eval(field="value"). count() summarize count()
dc(X) Zwraca liczbę unikatowych wartości pola X. dcount() …\| summarize countries=dcount(country) by continent
earliest(X) Zwraca chronologicznie najwcześniejszą widzianą wartość .X arg_min() … \| summarize arg_min(TimeGenerated, *) by X
latest(X) Zwraca chronologicznie ostatnią widzianą wartość .X arg_max() … \| summarize arg_max(TimeGenerated, *) by X
max(X) Zwraca maksymalną wartość pola X. Jeśli wartości są X nieliczbowe, maksymalna wartość zostanie znaleziona za pomocą kolejności alfabetycznej. max() …\| summarize max(X)
median(X) Zwraca wartość najbardziej środkową pola X. percentyl() …\| summarize percentile(X, 50)
min(X) Zwraca minimalną wartość pola X. Jeśli wartości są X nieliczbowe, minimalna wartość zostanie znaleziona za pomocą kolejności alfabetycznej. min() …\| summarize min(X)
mode(X) Zwraca najczęstszą wartość pola X. top-hitters() …\| top-hitters 1 of Y by X
perc(Y) Zwraca wartość percentyla X pola Y. Na przykład perc5(total) zwraca piątą wartość percentyla pola total. percentyl() …\| summarize percentile(Y, 5)
range(X) Zwraca różnicę między wartościami maksymalnymi i minimalnymi pola X. range() range(1, 3)
stdev(X) Zwraca odchylenie standardowe próbki pola X. stdev stdev()
stdevp(X) Zwraca odchylenie standardowe populacji pola X. stdevp() stdevp()
sum(X) Zwraca sumę wartości pola X. sum() sum(X)
sumsq(X) Zwraca sumę kwadratów wartości pola X.
values(X) Zwraca listę wszystkich unikatowych wartości pola X jako wpis wielowartościowy. Kolejność wartości jest alfabetyczna. make_set() …\| summarize r = make_set(X)
var(X) Zwraca wariancję próbki pola X. wariancja variance(X)

Następne kroki

W tym artykule przedstawiono sposób mapowania reguł migracji z rozwiązania Splunk do usługi Microsoft Sentinel.