Megosztás a következőn keresztül:


Splunk-észlelési szabályok migrálása a Microsoft Sentinelbe

A Splunk-észlelési szabályok olyan biztonsági információk és eseménykezelési (SIEM) összetevők, amelyek összehasonlítják a Microsoft Sentinel elemzési szabályait. Ez a cikk azokat a fogalmakat ismerteti, amelyek azonosítják, összehasonlítják és migrálják őket a Microsoft Sentinelbe. A legjobb módszer az, ha a SIEM migrálási felületével kezdjük, amely a beépített (OOTB) elemzési szabályokat azonosítja, amelyek automatikusan lefordíthatóak.

Ha át szeretné migrálni a Splunk Megfigyelhetőség üzembe helyezését, tudjon meg többet arról, hogyan migrálhat a Splunkból az Azure Monitor-naplókba.

Naplózási szabályok

A Microsoft Sentinel gépi tanulási analitikát használ a magas megbízhatóságú és végrehajtható incidensek létrehozásához. Egyes meglévő Splunk-észlelések redundánsak lehetnek a Microsoft Sentinelben, ezért ne migrálja őket vakon. Tekintse át ezeket a szempontokat a meglévő észlelési szabályok azonosításakor.

  • Ügyeljen arra, hogy olyan használati eseteket válasszon, amelyek indokolják a szabálymigrálást, figyelembe véve az üzleti prioritást és a hatékonyságot.
  • Ellenőrizze, hogy ismeri-e a Microsoft Sentinel-szabálytípusokat.
  • Ellenőrizze, hogy ismeri-e a szabály terminológiát.
  • Tekintse át az elavult szabályokat, amelyek nem rendelkeznek riasztásokkal az elmúlt 6–12 hónapban, és állapítsa meg, hogy továbbra is relevánsak-e.
  • Kiküszöbölheti azokat az alacsony szintű fenyegetéseket vagy riasztásokat, amelyeket rendszeresen figyelmen kívül hagy.
  • Erősítse meg a csatlakoztatott adatforrásokat, és tekintse át az adatkapcsolati módszereket. A Microsoft Sentinel Analytics megköveteli, hogy az adattípus jelen legyen a Log Analytics-munkaterületen egy szabály engedélyezése előtt. Az adatgyűjtési beszélgetések újbóli megtekintése az észlelni kívánt használati esetek adatmélységének és szélességének biztosítása érdekében. Ezután a SIEM migrálási felületével győződjön meg arról, hogy az adatforrások megfelelően vannak leképezve.

Szabályok migrálása

Miután azonosította a migrálni kívánt Splunk-észleléseket, tekintse át az áttelepítési folyamat alábbi szempontjait:

  • Hasonlítsa össze a Microsoft Sentinel OOTB-elemzési szabályainak meglévő funkcióit az aktuális használati esetekkel. A SIEM migrálási felületével megtekintheti, hogy mely Splunk-észlelések lesznek automatikusan OOTB-sablonokká konvertálva.
  • Olyan észlelések fordítása, amelyek nem igazodnak az OOTB-elemzési szabályokhoz. A Splunk-észlelések automatikus lefordításának legjobb módja a SIEM migrálási felülete.
  • További algoritmusokat fedezhet fel a használati esetekhez olyan közösségi erőforrások feltárásával, mint például az SOC Prime Threat Detection Marketplace.
  • Az észlelések manuális fordítása, ha a beépített szabályok nem érhetők el, vagy nem lesznek automatikusan lefordítva. Hozza létre az új KQL-lekérdezéseket, és tekintse át a szabályok leképezését.

További információkért tekintse meg az észlelési szabályok migrálásának ajánlott eljárásait.

Szabálymigrálási lépések

  1. Ellenőrizze, hogy minden áttelepítendő szabályhoz rendelkezik-e tesztelési rendszerrel.

    1. Készítsen elő egy érvényesítési folyamatot a migrált szabályokhoz, beleértve a teljes tesztelési forgatókönyveket és szkripteket.

    2. Győződjön meg arról, hogy csapata hasznos erőforrásokkal rendelkezik a migrált szabályok teszteléséhez.

    3. Győződjön meg arról, hogy a szükséges adatforrások csatlakoztatva vannak, és tekintse át az adatkapcsolati módszereket.

  2. Ellenőrizze, hogy az észlelések OOTB-sablonokként érhetők-e el a Microsoft Sentinelben:

    • A SIEM migrálási felületével automatizálhatja az OOTB-sablonok fordítását és telepítését.

      További információ: A SIEM migrálási felületének használata.

    • Ha olyan eseteket használ, amelyek nem tükröződnek az észlelésekben, hozzon létre szabályokat a saját munkaterületéhez OOTB-szabálysablonokkal.

      A Microsoft Sentinelben nyissa meg a Content Hubot.

      Az Analytics-szabálysablonok tartalomtípusának szűrése.

      Keresse meg és telepítse/frissítse az egyes tartalomközpont-megoldásokat vagy önálló elemzési szabálysablonokat.

      További információ: Veszélyforrások észlelése beépítetten.

    • Ha olyan észlelésekkel rendelkezik, amelyekre nem vonatkoznak a Microsoft Sentinel OOTB-szabályai, először próbálja ki a SIEM migrálási felületét az automatikus fordításhoz.

    • Ha sem az OOTB-szabályok, sem az SIEM-migrálás nem fordítja le teljesen az észlelést, hozza létre manuálisan a szabályt. Ilyen esetekben a következő lépésekkel hozhatja létre a szabályt:

      1. Azonosítsa a szabályban használni kívánt adatforrásokat. Az adatforrások és adattáblák közötti leképezési tábla létrehozásával azonosíthatja a lekérdezni kívánt Microsoft Sentinel-táblákat.

      2. Azonosítsa az adatokban a szabályokban használni kívánt attribútumokat, mezőket vagy entitásokat .

      3. Azonosítsa a szabályfeltételeket és a logikát. Ebben a szakaszban érdemes lehet mintaként megtalálni a szabálysablonokat a KQL-lekérdezések létrehozásához.

        Fontolja meg a szűrőket, korrelációs szabályokat, aktív listákat, referenciakészleteket, figyelőlistákat, észlelési rendellenességeket, összesítéseket stb. Az örökölt SIEM-hez megadott hivatkozásokkal megtudhatja , hogyan képezheti le legjobban a lekérdezés szintaxisát.

      4. Azonosítsa az eseményindító feltételt és a szabályműveletet, majd hozza létre és tekintse át a KQL-lekérdezést. A lekérdezés áttekintésekor fontolja meg a KQL optimalizálási útmutató erőforrásait.

  3. Tesztelje a szabályt minden releváns használati esettel. Ha nem adja meg a várt eredményeket, tekintse át és szerkessze a KQL-t, és tesztelje újra.

  4. Ha elégedett, fontolja meg a migrált szabályt. Szükség szerint hozzon létre egy forgatókönyvet a szabályművelethez. További információért lásd: A fenyegetésekre való reagálás automatizálása a Microsoft Sentinel forgatókönyveivel.

További információ az elemzési szabályokról:

  • Egyéni elemzési szabályok létrehozása a fenyegetések észleléséhez. A riasztások csoportosításával csökkentheti a riasztások kifáradását egy adott időkereten belül előforduló riasztások csoportosításával.
  • Adatmezők leképezése a Microsoft Sentinel entitásaihoz annak érdekében, hogy az SOC mérnökei entitásokat definiálhassanak a vizsgálat során nyomon követhető bizonyítékok részeként. Az entitásleképezés lehetővé teszi az SOC-elemzők számára, hogy kihasználják az intuitív [vizsgálati gráf] (investigation-cases.md#use-the-investigation-graph-to-deep-dive) előnyeit, amelyek csökkenthetik az időt és az erőfeszítést.
  • Vizsgálja meg az incidenseket UEBA-adatokkal, példaként arra, hogyan lehet bizonyítékokat használni az incidensek, riasztások és az incidens előnézeti paneljén egy adott incidenshez társított könyvjelzők felszínre hozására.
  • Kusto lekérdezésnyelv (KQL), amellyel írásvédett kérelmeket küldhet a Log Analytics-adatbázisnak az adatok feldolgozásához és az eredmények visszaadásához. A KQL más Microsoft-szolgáltatások is használható, például Végponthoz készült Microsoft Defender és Application Insights.

Szabály terminológiája összehasonlítása

Ez a táblázat segít tisztázni a Microsoft Sentinelben Kusto lekérdezésnyelv (KQL) alapuló szabály fogalmát a keresési feldolgozási nyelven (SPL) alapuló Splunk-észleléshez képest.

Splunk Microsoft Sentinel
Szabály típusa •Ütemezett
•Valós idejű
• Ütemezett lekérdezés
•Fúzió
• Microsoft Security
• Machine Learning (ML) Behavior Analytics
Feltételek Definiálás az SPL-ben Definiálás a KQL-ben
Eseményindító feltétel • Találatok száma
• Gazdagépek száma
• Források száma
•Szokás
Küszöbérték: Lekérdezési eredmények száma
Művelet • Hozzáadás az aktivált riasztásokhoz
• Naplóesemény
• A találatok keresése
• És még sok más
• Riasztás vagy incidens létrehozása
• Integrálható a Logic Appsszel

Szabályminták leképezése és összehasonlítása

Ezekkel a mintákkal összehasonlíthatja és megfeleltethet szabályokat a Splunktól a Microsoft Sentinelig különböző helyzetekben.

Gyakori keresési parancsok

SPL-parancs Leírás KQL operátor KQL-példa
chart/ timechart Táblázatos kimenetet ad vissza az idősoros diagramkészítéshez. renderelési operátor … | render timechart
dedup Eltávolítja a megadott feltételnek megfelelő későbbi eredményeket. eltérő
összegzés
… | summarize by Computer, EventID
eval Kifejezés kiszámítása. Tudnivalók a gyakori eval parancsokról. meghosszabbít T | extend duration = endTime - startTime
fields Eltávolítja a mezőket a keresési eredményekből. projekt
projekten kívüli
T | project cost=price*quantity, price
head/tail Az első vagy az utolsó N eredményt adja vissza. felső T | top 5 by Name desc nulls last
lookup Mezőértékeket ad hozzá külső forrásból. externaldata
keresés
KQL-példa
rename Egy mező átnevezése. Több mező megadása helyettesítő karakterekkel. projekt átnevezése T | project-rename new_column_name = column_name
rex A mezők kinyeréséhez használt reguláris kifejezéseket használó csoportneveket adja meg. egyezés regex … | where field matches regex "^addr.*"
search A keresési kifejezésnek megfelelő találatok szűrése. search search "X"
sort A keresési eredményeket a megadott mezők szerint rendezi. fajta T | sort by strlen(country) asc, price desc
stats Statisztikai adatokat biztosít, mezők szerint csoportosítva. További információ a gyakori statisztikai parancsokról. összegez KQL-példa
mstats A statisztikákhoz hasonlóan, események helyett metrikákban használatos. összegez KQL-példa
table Megadja, hogy mely mezők legyenek megtartva az eredményhalmazban, és táblázatos formátumban tárolja az adatokat. projekt T | project columnA, columnB
top/rare Egy mező leggyakoribb vagy legkevésbé gyakori értékeit jeleníti meg. felső T | top 5 by Name desc nulls last
transaction A keresési eredményeket tranzakciókba csoportosítja.

SPL-példa
Példa: row_window_session KQL-példa
eventstats Összegző statisztikákat hoz létre az események mezőiből, és ezeket a statisztikákat egy új mezőbe menti.

SPL-példa
Példák:
csatlakozás
make_list
mv-expand
KQL-példa
streamstats Egy mező összegének megkeresése.

SPL-példa:
... | streamstats sum(bytes) as bytes _ total \| timechart
row_cumsum ...\| serialize cs=row_cumsum(bytes)
anomalydetection Keresse meg az anomáliákat a megadott mezőben.

SPL-példa
series_decompose_anomalies() KQL-példa
where Kifejezésekkel eval szűri a keresési eredményeket. Két különböző mező összehasonlítására szolgál. hol T | where fruit=="apple"

lookup parancs: KQL-példa

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 parancs: KQL-példa

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

mstats parancs: KQL-példa

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

transaction parancs: SPL-példa

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

transaction parancs: KQL-példa

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

A szerializált sorkészlet egy oszlopának munkamenet-kezdési értékeinek kiszámítására használható row_window_session() .

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

eventstats parancs: SPL-példa

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

eventstats parancs: KQL-példa

Íme egy példa az utasításra 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

Íme egy példa az utasításra 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 parancs: SPL-példa

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

anomalydetection parancs: KQL-példa

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)

Gyakori eval parancsok

SPL-parancs Leírás SPL-példa KQL-parancs KQL-példa
abs(X) Az X abszolút értékét adja vissza. abs(number) abs() abs(X)
case(X,"Y",…) Párokat X és Y argumentumokat vesz fel, ahol az X argumentumok logikai kifejezések. A kiértékeléskor TRUEaz argumentumok a megfelelő Y argumentumot adják vissza. SPL-példa case KQL-példa
ceil(X) Az X szám plafonja. ceil(1.9) ceiling() ceiling(1.9)
cidrmatch("X",Y) Egy adott alhálózathoz tartozó IP-címeket azonosí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,…) Az első nem null értékű értéket adja eredményül. coalesce(null(), "Returned val", null()) coalesce() coalesce(tolong("not a number"),
tolong("42"), 33) == 42
cos(X) Kiszámítja az X koszinuszát. n=cos(0) cos() cos(X)
exact(X) Az X kifejezés kiértékelése dupla pontosságú lebegőpontos aritmetikai módszerrel. exact(3.14*num) todecimal() todecimal(3.14*2)
exp(X) EX értéket ad vissza. exp(3) exp() exp(3)
if(X,Y,Z) Ha X a kiértékelés eredménye TRUEa második argumentum Y. Ha X a kiértékelés eredménye FALSEa harmadik argumentum Z. if(error==200,
"OK", "Error")
iif() KQL-példa
isbool(X) Logikai értéket ad TRUEX vissza. isbool(field) iif()
gettype
iif(gettype(X) =="bool","TRUE","FALSE")
isint(X) TRUE X Egész szám esetén adja vissza. isint(field) iif()
gettype
KQL-példa
isnull(X) Null értéket ad TRUEX vissza. isnull(field) isnull() isnull(field)
isstr(X) Visszaadja TRUE , ha X sztring. isstr(field) iif()
gettype
KQL-példa
len(X) Ez a függvény egy sztring Xkarakterhosszát adja vissza. len(field) strlen() strlen(field)
like(X,"y") TRUE Ha és csak akkor X ad vissza értéket, mint a SQLite minta.Y like(field, "addr%") has
contains
startswith
egyezik a regex
KQL-példa
log(X,Y) Az első argumentum X naplóját adja vissza a második argumentum Y alapján. Az alapértelmezett érték az Y10. log(number,2) log
log2
log10
log(X)

log2(X)

log10(X)
lower(X) A kisbetű értékét Xadja vissza. lower(username) tolower tolower(username)
ltrim(X,Y) X A bal oldalról levágott paraméterben Y szereplő karaktereket adja vissza. Az alapértelmezett kimenet a Y szóközök és a lapok. ltrim(" ZZZabcZZ ", " Z") trim_start() trim_start(“ ZZZabcZZ”,” ZZZ”)
match(X,Y) Visszaadja, ha X megegyezik az Y regex mintával. match(field, "^\d{1,3}.\d$") matches regex … | where field matches regex @"^\d{1,3}.\d$")
max(X,…) Egy oszlop maximális értékét adja vissza. max(delay, mydelay) max()
arg_max()
… | summarize max(field)
md5(X) Egy sztringérték XMD5 kivonatát adja vissza. md5(field) hash_md5 hash_md5("X")
min(X,…) Egy oszlop minimális értékét adja vissza. min(delay, mydelay) min_of()
min()
arg_min
KQL-példa
mvcount(X) Az értékek számát (összegét) adja eredményül X . mvcount(multifield) dcount …| summarize dcount(X) by Y
mvfilter(X) Szűr egy többértékű mezőt a logikai X kifejezés alapján. mvfilter(match(email, "net$")) mv-apply KQL-példa
mvindex(X,Y,Z) A többértékű X argumentum egy részhalmazát adja vissza egy kezdő pozícióból (nulla alapú) a (nem kötelező) Y értékre Z . mvindex( multifield, 2) array_slice array_slice(arr, 1, 2)
mvjoin(X,Y) Többértékű mezőt X és sztringelválasztót Yad meg, és összekapcsolja a használat Yegyedi értékeitX. mvjoin(address, ";") strcat_array KQL-példa
now() Az aktuális időt adja vissza, unix időpontban ábrázolva. now() now() now()

now(-2d)
null() Nem fogadja el az argumentumokat és a visszaadott értékeket NULL. null() nulla null
nullif(X,Y) Két argumentumot tartalmaz, X és Ya visszaadott X értéket, ha az argumentumok eltérnek. Ellenkező esetben a visszaadott érték NULL. nullif(fieldA, fieldB) iif iif(fieldA==fieldB, null, fieldA)
random() Egy pszeudo-véletlenszerű számot 0 ad vissza.2147483647 random() rand() rand()
relative_ time(X,Y) Az idő X és a relatív idő megadása Yesetén a rendszer az alkalmazott Xidőszak időértékét Y adja vissza. relative_time(now(),"-1d@d") unix time KQL-példa
replace(X,Y,Z) Egy sztringet ad vissza, amelyet a sztringben Z szereplő reguláris kifejezési sztringek Y minden előfordulásához sztring helyettesítésével alakítottak Xki. Dátumot ad vissza a hónap és a nap számának kapcsolójával.
A bemenet esetében például a 4/30/2015 kimenet a következő 30/4/2009:

replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/")
replace() KQL-példa
round(X,Y) X A függvény a megadott tizedesjegyek Yszámára kerekítve adja vissza. Az alapértelmezett érték egy egész számra kerekítése. round(3.5) round round(3.5)
rtrim(X,Y) X A jobb oldalon levágott karaktereket Y tartalmazó visszatérési érték. Ha Y nincs megadva, a rendszer levágja a szóközöket és a lapokat. rtrim(" ZZZZabcZZ ", " Z") trim_end() trim_end(@"[ Z]+",A)
searchmatch(X) Visszaadja TRUE , ha az esemény megfelel a keresési sztringnek X. searchmatch("foo AND bar") iif() iif(field has "X","Yes","No")
split(X,"Y") X Többértékű mezőként ad vissza, elválasztójelek Yszerint felosztva. split(address, ";") split() split(address, ";")
sqrt(X) A négyzetgyökét Xadja vissza. sqrt(9) sqrt() sqrt(9)
strftime(X,Y) A megadott formátummal Yrenderelt időértéket X adja vissza. strftime(_time, "%H:%M") format_datetime() format_datetime(time,'HH:mm')
strptime(X,Y) Egy sztring Xáltal képviselt idő alapján a formátumból Yelemezett értéket ad vissza. strptime(timeStr, "%H:%M") format_datetime() KQL-példa
substr(X,Y,Z) Egy részszűkítési mezőt X ad vissza a kezdő pozícióból (egy-alapú) Y a (nem kötelező) karakterekhez Z . substr("string", 1, 3) substring() substring("string", 0, 3)
time() A fali óra időt adja vissza mikroszekundumos felbontással. time() format_datetime() KQL-példa
tonumber(X,Y) A bemeneti sztringet X számmá alakítja, ahol Y (nem kötelező, alapértelmezett érték 10) határozza meg a konvertálni kívánt szám alapjait. tonumber("0A4",16) toint() toint("123")
tostring(X,Y) Leírás SPL-példa tostring() tostring(123)
typeof(X) A mezőtípus sztring-ábrázolását adja vissza. typeof(12) gettype() gettype(12)
urldecode(X) A dekódolt URL-címet X adja vissza. SPL-példa url_decode KQL-példa

case(X,"Y",…) SPL-példa

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

case(X,"Y",…) KQL-példa

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

if(X,Y,Z) KQL-példa

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

isint(X) KQL-példa

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

isstr(X) KQL-példa

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

like(X,"y") példa

… | where field has "addr"

… | where field contains "addr"

… | where field startswith "addr"

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

min(X,…) KQL-példa

min_of (expr_1, expr_2 ...)

…|summarize min(expr)

…| summarize arg_min(Price,*) by Product

mvfilter(X) KQL-példa

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

mvjoin(X,Y) KQL-példa

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

relative time(X,Y) KQL-példa

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

replace(X,Y,Z) KQL-példa

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

strptime(X,Y) KQL-példa

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

time() KQL-példa

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

tostring(X,Y)

Sztringként megadott X mezőértéket ad vissza.

  • Ha a szám értéke X egy szám, X akkor a program sztringértékre újraformálja.
  • Ha X logikai érték, X akkor a program újraformázva lesz a logikai értékre TRUE vagy FALSEa .
  • Ha X szám, akkor a második argumentum Y nem kötelező, és lehet hex (hexadecimálisra konvertálja X ), commas ( X vesszővel és két tizedesjegygel formázza), vagy duration (másodpercek alatt konvertálja X az időformátumot olvasható időformátumra: HH:MM:SS).
tostring(X,Y) SPL-példa

Ez a példa a következőt adja vissza:

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

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

urldecode(X) SPL-példa

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

Gyakori stats parancsok – KQL-példa

SPL-parancs Leírás KQL-parancs KQL-példa
avg(X) A mező Xértékeinek átlagát adja eredményül. avg() avg(X)
count(X) A mező előfordulásainak számát adja eredményül X. Ha meg szeretne jelölni egy adott mezőértéket, formázza X a következőképpen eval(field="value"): . darabszám() summarize count()
dc(X) A mező Xkülönböző értékeinek számát adja vissza. dcount() …\| summarize countries=dcount(country) by continent
earliest(X) A kronológiailag legkorábbi látható értéket Xadja vissza. arg_min() … \| summarize arg_min(TimeGenerated, *) by X
latest(X) Az időrendben utoljára látható értéket adja eredményül X. arg_max() … \| summarize arg_max(TimeGenerated, *) by X
max(X) A mező Xmaximális értékét adja vissza. Ha az értékek X nem numerikusak, a maximális érték betűrendbe rendezéssel lesz megadva. max() …\| summarize max(X)
median(X) A mező Xközépértékét adja vissza. percentilis() …\| summarize percentile(X, 50)
min(X) A mező Xminimális értékét adja vissza. Ha az értékek X nem numerikusak, a minimális érték betűrendbe rendezéssel lesz megadva. min() …\| summarize min(X)
mode(X) A mező Xleggyakoribb értékét adja vissza. top-hitters() …\| top-hitters 1 of Y by X
perc(Y) A mező Ypercentilisértékét X adja vissza. Egy mező totalötödik percentilisértékét adja vissza. perc5(total) percentilis() …\| summarize percentile(Y, 5)
range(X) A mező Xmaximális és minimális értékei közötti különbséget adja eredményül. tartomány() range(1, 3)
stdev(X) A mező Xminta szórását adja vissza. stdev stdev()
stdevp(X) A mező statisztikai szórását adja eredményül X. stdevp() stdevp()
sum(X) A mező Xértékeinek összegét adja vissza. sum() sum(X)
sumsq(X) A mező Xértékeinek négyzeteinek összegét adja vissza.
values(X) A mező X összes különböző értékének listáját adja vissza többértékű bejegyzésként. Az értékek sorrendje betűrendben van. make_set() …\| summarize r = make_set(X)
var(X) A mező Xminta varianciáját adja vissza. eltérés variance(X)

Következő lépések

Ebben a cikkben megtanulta, hogyan képezheti le a migrálási szabályokat a Splunkból a Microsoft Sentinelbe.