Splunk algılama kurallarını Microsoft Sentinel'e geçirme
Splunk algılama kuralları, Microsoft Sentinel'deki analiz kurallarıyla karşılaştıran güvenlik bilgileri ve olay yönetimi (SIEM) bileşenleridir. Bu makalede bunları tanımlama, karşılaştırma ve Microsoft Sentinel'e geçirme kavramları açıklanmaktadır. En iyi yol, otomatik olarak çevrilecek hazır (OOTB) analiz kurallarını tanımlayan SIEM geçiş deneyimiyle başlamaktır.
Splunk Gözlemlenebilirlik dağıtımınızı geçirmek istiyorsanız, Splunk'tan Azure İzleyici Günlüklerine geçiş hakkında daha fazla bilgi edinin.
Denetim kuralları
Microsoft Sentinel, yüksek kaliteli ve eyleme dönüştürülebilir olaylar oluşturmak için makine öğrenmesi analizini kullanır. Mevcut Splunk algılamalarınızdan bazıları Microsoft Sentinel'de yedekli olabilir, bu nedenle bunların tümünü körü körüne geçirmeyin. Mevcut algılama kurallarınızı tanımlarken bu noktaları gözden geçirin.
- İş önceliğini ve verimliliğini göz önünde bulundurarak kural geçişine gerekçe gösteren kullanım örneklerini seçtiğinizden emin olun.
- Microsoft Sentinel kural türlerini anlayıp anlamadığınızı denetleyin.
- Kural terminolojisini anlayıp anlamadığınızı denetleyin.
- Son 6-12 ay boyunca uyarıları olmayan güncel olmayan kuralları gözden geçirin ve bunların hala uygun olup olmadığını belirleyin.
- Düzenli olarak yoksaydığınız düşük düzeyli tehditleri veya uyarıları ortadan kaldırın.
- Bağlı veri kaynaklarını onaylayın ve veri bağlantısı yöntemlerinizi gözden geçirin. Microsoft Sentinel Analytics, bir kural etkinleştirilmeden önce veri türünün Log Analytics çalışma alanında bulunmasını gerektirir. Algılamayı planladığınız kullanım örnekleri arasında veri derinliği ve genişliği sağlamak için veri toplama konuşmalarını yeniden ziyaret edin. Ardından veri kaynaklarının uygun şekilde eşlendiğinden emin olmak için SIEM geçiş deneyimini kullanın.
Kuralları geçirme
Geçiş için Splunk algılamalarını belirledikten sonra, geçiş işlemi için şu noktaları gözden geçirin:
- Microsoft Sentinel'in OOTB analiz kurallarının mevcut işlevlerini geçerli kullanım örneklerinizle karşılaştırın. Hangi Splunk algılamalarının otomatik olarak OOTB şablonlarına dönüştürüldüğünü görmek için SIEM geçiş deneyimini kullanın.
- OOTB analiz kurallarına uygun olmayan algılamaları çevirin. Splunk algılamalarını otomatik olarak çevirmenin en iyi yolu SIEM geçiş deneyimidir.
- SOC Prime Threat Detection Marketplace gibi topluluk kaynaklarını keşfederek kullanım örnekleriniz için daha fazla algoritma keşfedin.
- Yerleşik kurallar kullanılamıyorsa veya otomatik olarak çevrilmiyorsa algılamaları el ile çevirin. Yeni KQL sorgularını oluşturun ve kural eşlemesini gözden geçirin.
Daha fazla bilgi için bkz . Algılama kurallarını geçirmek için en iyi yöntemler.
Kural geçişi adımları
Geçirmek istediğiniz her kural için bir test sisteminiz olduğunu doğrulayın.
Tam test senaryoları ve betikler de dahil olmak üzere geçirilen kurallarınız için bir doğrulama işlemi hazırlayın.
Ekibinizin geçirilen kurallarınızı test etmek için yararlı kaynaklara sahip olduğundan emin olun.
Gerekli veri kaynaklarının bağlı olduğunu onaylayın ve veri bağlantısı yöntemlerinizi gözden geçirin.
Algılamalarınızın Microsoft Sentinel'de OOTB şablonları olarak kullanılabilir olup olmadığını doğrulayın:
OOTB şablonlarının çevirisini ve yüklemesini otomatikleştirmek için SIEM geçiş deneyimini kullanın.
Daha fazla bilgi için bkz . SIEM geçiş deneyimini kullanma.
Algılamalara yansıtılmayan kullanım örnekleriniz varsa, OOTB kural şablonlarıyla kendi çalışma alanınız için kurallar oluşturun.
Microsoft Sentinel'de İçerik hub'ına gidin.
Analiz kuralı şablonları için filtre İçerik türü.
İlgili İçerik hub'ı çözümünü veya tek başına analiz kuralı şablonunu bulun ve yükleyin/güncelleştirin .
Daha fazla bilgi için bkz . Tehditleri kullanıma hazır olarak algılama.
Microsoft Sentinel'in OOTB kuralları kapsamında olmayan algılamalarınız varsa, önce otomatik çeviri için SIEM geçiş deneyimini deneyin.
Ne OOTB kuralları ne de SIEM geçişi algılamayı tamamen çevirirse kuralı el ile oluşturun. Böyle durumlarda kuralınızı oluşturmak için aşağıdaki adımları kullanın:
Kuralınızda kullanmak istediğiniz veri kaynaklarını belirleyin. Veri kaynakları ve veri tabloları arasında bir eşleme tablosu oluşturarak sorgulamak istediğiniz Microsoft Sentinel tablolarını tanımlayın.
Verilerinizde kurallarınızda kullanmak istediğiniz öznitelikleri, alanları veya varlıkları tanımlayın.
Kural ölçütlerinizi ve mantığınızı tanımlayın. Bu aşamada, KQL sorgularınızı oluşturmaya yönelik örnek olarak kural şablonlarını bulmayı göz önünde bulundurun.
Filtreleri, bağıntı kurallarını, etkin listeleri, başvuru kümelerini, izleme listelerini, algılama anomalilerini, toplamaları vb. göz önünde bulundurun. Sorgu söz diziminizi en iyi şekilde eşlemeyi anlamak için eski SIEM'iniz tarafından sağlanan başvuruları kullanabilirsiniz.
Tetikleyici koşulu ve kural eylemini belirleyin ve ardından KQL sorgunuzu oluşturun ve gözden geçirin. Sorgunuzu gözden geçirirken KQL iyileştirme kılavuzu kaynaklarını göz önünde bulundurun.
Kuralı ilgili kullanım örneklerinizin her biriyle test edin. Beklenen sonuçları sağlamıyorsa KQL'yi gözden geçirip düzenleyin ve yeniden test edin.
Memnun olduğunuzda, kuralın geçirildiğinden emin olun. Kural eyleminiz için gerektiğinde bir playbook oluşturun. Daha fazla bilgi için bkz . Microsoft Sentinel'de playbook'larla tehdit yanıtlarını otomatikleştirme.
Analiz kuralları hakkında daha fazla bilgi edinin:
- Tehditleri algılamak için özel analiz kuralları oluşturun. Belirli bir zaman çerçevesi içinde oluşan uyarıları gruplandırarak uyarı yorgunluğunu azaltmak için uyarı gruplandırma özelliğini kullanın.
- SOC mühendislerinin araştırma sırasında izlemesi gereken kanıtların bir parçası olarak varlıkları tanımlamasını sağlamak için veri alanlarını Microsoft Sentinel'deki varlıklarla eşleyin. Varlık eşlemesi, SOC analistlerinin zaman ve çabayı azaltmaya yardımcı olabilecek sezgisel bir [araştırma grafı] (investigation-cases.md#use-the-investigation-graph-to-deep-dive) avantajından yararlanmasını da mümkün kılar.
- Olay önizleme bölmesindeki belirli bir olayla ilişkili olayları, uyarıları ve yer işaretlerini ortaya çıkarmada kanıt kullanma örneği olarak UEBA verileriyle olayları araştırın.
- Kusto Sorgu Dili (KQL), verileri işlemek ve sonuçları döndürmek için Log Analytics veritabanınıza salt okunur istekler göndermek için kullanabilirsiniz. KQL, Uç Nokta için Microsoft Defender ve Application Insights gibi diğer Microsoft hizmetleri de kullanılır.
Kural terminolojisini karşılaştırma
Bu tablo, Microsoft Sentinel'deki Kusto Sorgu Dili (KQL) temelinde bir kural kavramını, Arama İşleme Dili'ne (SPL) dayalı splunk algılamaya kıyasla netleştirmenize yardımcı olur.
Splunk | Microsoft Sentinel | |
---|---|---|
Kural türü | •Planlanan •Gerçek zamanlı |
• Zamanlanmış sorgu •Füzyon • Microsoft Güvenliği • Machine Learning (ML) Davranış Analizi |
Ölçütler | SPL'de tanımla | KQL'de tanımla |
Tetikleyici koşulu | • Sonuç sayısı • Konak sayısı • Kaynak sayısı •Töre |
Eşik: Sorgu sonucu sayısı |
Eylem | • Tetiklenen uyarılara ekleme • Günlük Olayı • Arama için çıkış sonuçları • Ve daha fazlası |
• Uyarı veya olay oluşturma • Logic Apps ile tümleşir |
Kural örneklerini eşleme ve karşılaştırma
Çeşitli senaryolarda splunk ile Microsoft Sentinel arasındaki kuralları karşılaştırmak ve eşlemek için bu örnekleri kullanın.
Yaygın arama komutları
SPL komutu | Açıklama | KQL işleci | KQL örneği |
---|---|---|---|
chart/ timechart |
Zaman serisi grafik oluşturma için sonuçları tablosal bir çıktı olarak döndürür. | işleme işleci | … | render timechart |
dedup |
Belirtilen ölçütle eşleşen sonraki sonuçları kaldırır. | • ayrı • özetleme |
… | summarize by Computer, EventID |
eval |
bir ifadeyi hesaplar. Yaygın eval komutlar hakkında bilgi edinin. |
uzatmak | T | extend duration = endTime - startTime |
fields |
Arama sonuçlarından alanları kaldırır. | • proje • proje dışı |
T | project cost=price*quantity, price |
head/tail |
İlk veya son N sonucunu döndürür. | Sayfanın Üstü | T | top 5 by Name desc nulls last |
lookup |
Dış kaynaktan alan değerleri ekler. | • externaldata • arama |
KQL örneği |
rename |
Bir alanı yeniden adlandırır. Birden çok alan belirtmek için joker karakterler kullanın. | project-rename | T | project-rename new_column_name = column_name |
rex |
Alanları ayıklamak için normal ifadeleri kullanan grup adlarını belirtir. | regex ile eşleşir | … | where field matches regex "^addr.*" |
search |
Sonuçları arama ifadesiyle eşleşen sonuçlara filtreler. | search | search "X" |
sort |
Arama sonuçlarını belirtilen alanlara göre sıralar. | sıralayın | T | sort by strlen(country) asc, price desc |
stats |
İsteğe bağlı olarak alanlara göre gruplandırılmış istatistikler sağlar. Yaygın istatistik komutları hakkında daha fazla bilgi edinin. | Özetle | KQL örneği |
mstats |
olaylar yerine ölçümlerde kullanılan istatistiklere benzer. | Özetle | KQL örneği |
table |
Sonuç kümesinde tutulacak alanları belirtir ve verileri tablo biçiminde tutar. | proje | T | project columnA, columnB |
top/rare |
Bir alanın en yaygın veya en az kullanılan değerlerini görüntüler. | Sayfanın Üstü | T | top 5 by Name desc nulls last |
transaction |
Arama sonuçlarını işlemler halinde gruplandırma. SPL örneği |
Örnek: row_window_session | KQL örneği |
eventstats |
Olaylarınızdaki alanlardan özet istatistikleri oluşturur ve bu istatistikleri yeni bir alana kaydeder. SPL örneği |
Örnekler: • birleştirme • make_list • mv-expand |
KQL örneği |
streamstats |
Alanın birikmeli toplamını bulur. SPL örneği: ... | streamstats sum(bytes) as bytes _ total \| timechart |
row_cumsum | ...\| serialize cs=row_cumsum(bytes) |
anomalydetection |
Belirtilen alanda anomalileri bulun. SPL örneği |
series_decompose_anomalies() | KQL örneği |
where |
İfadeleri kullanarak eval arama sonuçlarını filtreler. İki farklı alanı karşılaştırmak için kullanılır. |
nerede | T | where fruit=="apple" |
lookup
command: KQL örneği
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 örneği
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
mstats
command: KQL örneği
T | summarize count() by price_range=bin(price, 10.0)
transaction
komut: SPL örneği
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
transaction
command: KQL örneği
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
Serileştirilmiş satır kümesindeki bir sütunun oturum başlangıç değerlerini hesaplamak için kullanın row_window_session()
.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
eventstats
komut: SPL örneği
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
eventstats
command: KQL örneği
Deyimiyle ilgili bir örnek aşağıda verilmişti 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
Deyimiyle ilgili bir örnek aşağıda verilmişti 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
komut: SPL örneği
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
anomalydetection
command: KQL örneği
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)
Yaygın eval
komutlar
SPL komutu | Açıklama | SPL örneği | KQL komutu | KQL örneği |
---|---|---|---|---|
abs(X) |
X'in mutlak değerini döndürür. | abs(number) |
abs() |
abs(X) |
case(X,"Y",…) |
ve Y bağımsız değişken çiftlerini X alır; burada X bağımsız değişkenler boole ifadeleridir. olarak değerlendirildiğinde TRUE , bağımsız değişkenler karşılık gelen Y bağımsız değişkeni döndürür. |
SPL örneği | case |
KQL örneği |
ceil(X) |
X sayısının tavanı. | ceil(1.9) |
ceiling() |
ceiling(1.9) |
cidrmatch("X",Y) |
Belirli bir alt ağa ait IP adreslerini tanımlar. | 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,…) |
Null olmayan ilk değeri döndürür. | coalesce(null(), "Returned val", null()) |
coalesce() |
coalesce(tolong("not a number"), tolong("42"), 33) == 42 |
cos(X) |
X kosinüsünü hesaplar. | n=cos(0) |
cos() | cos(X) |
exact(X) |
Çift duyarlıklı kayan nokta aritmetiği kullanarak X ifadesini değerlendirir. | exact(3.14*num) |
todecimal() |
todecimal(3.14*2) |
exp(X) |
eX döndürür. | exp(3) |
exp() | exp(3) |
if(X,Y,Z) |
olarak değerlendirilirse X TRUE , sonuç ikinci bağımsız değişkendir Y . olarak değerlendirilirse X FALSE , sonuç üçüncü bağımsız değişken Z olarak değerlendirilir. |
if(error==200, "OK", "Error") |
iif() |
KQL örneği |
isbool(X) |
X Boole ise döndürürTRUE . |
isbool(field) |
• iif() • gettype |
iif(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Bir tamsayı ise X döndürürTRUE . |
isint(field) |
• iif() • gettype |
KQL örneği |
isnull(X) |
Null ise X döndürürTRUE . |
isnull(field) |
isnull() |
isnull(field) |
isstr(X) |
Dize ise X döndürürTRUE . |
isstr(field) |
• iif() • gettype |
KQL örneği |
len(X) |
Bu işlev bir dizenin X karakter uzunluğunu döndürür. |
len(field) |
strlen() |
strlen(field) |
like(X,"y") |
ve yalnızca içindeki SQLite deseni Y gibiyse X döndürürTRUE . |
like(field, "addr%") |
• has • contains • startswith • regex ile eşleşir |
KQL örneği |
log(X,Y) |
temel olarak ikinci bağımsız değişkeni X kullanarak ilk bağımsız değişkenin Y günlüğünü döndürür. Y için varsayılan değer 10 değeridir. |
log(number,2) |
• log • log2 • log10 |
log(X) log2(X) log10(X) |
lower(X) |
küçük harf değerini X döndürür. |
lower(username) |
tolower | tolower(username) |
ltrim(X,Y) |
Parametredeki Y karakterleri sol taraftan kırpılmış olarak döndürürX . varsayılan çıkışı Y boşluklar ve sekmeler şeklindedir. |
ltrim(" ZZZabcZZ ", " Z") |
trim_start() |
trim_start(“ ZZZabcZZ”,” ZZZ”) |
match(X,Y) |
X, Y regex deseni ile eşleşiyorsa döndürür. | match(field, "^\d{1,3}.\d$") |
matches regex |
… | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Bir sütundaki en büyük değeri döndürür. | max(delay, mydelay) |
• max() • arg_max() |
… | summarize max(field) |
md5(X) |
Dize değerinin X MD5 karması döndürür. |
md5(field) |
hash_md5 |
hash_md5("X") |
min(X,…) |
Bir sütundaki en küçük değeri döndürür. | min(delay, mydelay) |
• min_of() • min() • arg_min |
KQL örneği |
mvcount(X) |
Değerlerin sayısını (toplam) X döndürür. |
mvcount(multifield) |
dcount |
…| summarize dcount(X) by Y |
mvfilter(X) |
Boole X ifadesini temel alarak çok değerli bir alanı filtreler. |
mvfilter(match(email, "net$")) |
mv-apply |
KQL örneği |
mvindex(X,Y,Z) |
Başlangıç konumundan (sıfır tabanlı) (isteğe bağlı) Y kadar Z çok değerli X bağımsız değişkenin bir alt kümesini döndürür. |
mvindex( multifield, 2) |
array_slice |
array_slice(arr, 1, 2) |
mvjoin(X,Y) |
Çok değerli bir alan X ve dize sınırlayıcısı Y verilip kullanarak Y tek tek değerlerini X birleştirir. |
mvjoin(address, ";") |
strcat_array |
KQL örneği |
now() |
Unix saati ile temsil edilen geçerli saati döndürür. | now() |
now() |
now() now(-2d) |
null() |
Bağımsız değişkenleri kabul etmez ve döndürür NULL . |
null() |
boş | null |
nullif(X,Y) |
ve iki bağımsız değişken X içerir ve Y bağımsız değişkenler farklıysa döndürür X . Aksi takdirde döndürür NULL . |
nullif(fieldA, fieldB) |
iif |
iif(fieldA==fieldB, null, fieldA) |
random() |
ile arasında 0 2147483647 sahte rastgele bir sayı döndürür. |
random() |
rand() |
rand() |
relative_ time(X,Y) |
Bir dönem süresi X ve göreli saat belirticisi Y verüldüğünde, öğesine uygulanan X dönem süresi değerini Y döndürür. |
relative_time(now(),"-1d@d") |
unix saati | KQL örneği |
replace(X,Y,Z) |
dizesinde normal ifade dizesinin Z her oluşumu için dizenin yerini alarak oluşturulan bir dize Y X döndürür. |
Ay ve gün numaralarının değiştirildiğinde tarihi döndürür. Örneğin, giriş için 4/30/2015 çıkış şöyledir 30/4/2009 :replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/") |
replace() |
KQL örneği |
round(X,Y) |
tarafından Y belirtilen ondalık basamak sayısına yuvarlanmış olarak döndürürX . Varsayılan değer bir tamsayıya yuvarlanmaktır. |
round(3.5) |
round |
round(3.5) |
rtrim(X,Y) |
Sağ taraftan kırpılmış karakterleriyle Y birlikte döndürürX . Belirtilmezse Y , boşluklar ve sekmeler kırpılır. |
rtrim(" ZZZZabcZZ ", " Z") |
trim_end() |
trim_end(@"[ Z]+",A) |
searchmatch(X) |
Olay arama dizesiyle X eşleşiyorsa döndürürTRUE . |
searchmatch("foo AND bar") |
iif() | iif(field has "X","Yes","No") |
split(X,"Y") |
Çok değerli bir alan olarak verir X ve sınırlayıcıya Y göre bölünür. |
split(address, ";") |
split() |
split(address, ";") |
sqrt(X) |
değerinin karekökünü X döndürür. |
sqrt(9) |
sqrt() |
sqrt(9) |
strftime(X,Y) |
tarafından Y belirtilen biçim kullanılarak işlenen dönem süresi değerini X döndürür. |
strftime(_time, "%H:%M") |
format_datetime() |
format_datetime(time,'HH:mm') |
strptime(X,Y) |
Dizeyle X temsil edilen bir süre verildiğinde, biçiminden Y ayrıştırılan değeri döndürür. |
strptime(timeStr, "%H:%M") |
format_datetime() | KQL örneği |
substr(X,Y,Z) |
(isteğe bağlı) karakterler için Z başlangıç konumundan (tek tabanlı) Y bir alt dize alanı X döndürür. |
substr("string", 1, 3) |
substring() |
substring("string", 0, 3) |
time() |
Duvar saati süresini mikrosaniye çözünürlükle verir. | time() |
format_datetime() |
KQL örneği |
tonumber(X,Y) |
Giriş dizesini X sayıya dönüştürür; burada Y (isteğe bağlı, varsayılan değer) 10 dönüştürülecek sayının tabanını tanımlar. |
tonumber("0A4",16) |
toint() |
toint("123") |
tostring(X,Y) |
Açıklama | SPL örneği | tostring() |
tostring(123) |
typeof(X) |
Alan türünün dize gösterimini döndürür. | typeof(12) |
gettype() |
gettype(12) |
urldecode(X) |
Kodu çözülen URL'yi X döndürür. |
SPL örneği | url_decode |
KQL örneği |
case(X,"Y",…)
SPL örneği
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
case(X,"Y",…)
KQL örneği
T
| extend Message = case(error == 404, "Not found",
error == 500,"Internal Server Error", "OK")
if(X,Y,Z)
KQL örneği
iif(floor(Timestamp, 1d)==floor(now(), 1d),
"today", "anotherday")
isint(X)
KQL örneği
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X)
KQL örneği
iif(gettype(X) =="string","TRUE","FALSE")
like(X,"y")
örnek
… | where field has "addr"
… | where field contains "addr"
… | where field startswith "addr"
… | where field matches regex "^addr.*"
min(X,…)
KQL örneği
min_of (expr_1, expr_2 ...)
…|summarize min(expr)
…| summarize arg_min(Price,*) by Product
mvfilter(X)
KQL örneği
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
mvjoin(X,Y)
KQL örneği
strcat_array(dynamic([1, 2, 3]), "->")
relative time(X,Y)
KQL örneği
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s
};
replace(X,Y,Z)
KQL örneği
replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)
strptime(X,Y)
KQL örneği
format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')
time()
KQL örneği
format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')
tostring(X,Y)
öğesinin X
alan değerini dize olarak döndürür.
- değeri
X
bir sayıysa,X
bir dize değerine yeniden biçimlendirilir. - Boole değeriyse
X
veyaX
olarakTRUE
FALSE
yeniden biçimlendirilir. - Sayı ise
X
, ikinci bağımsız değişkenY
isteğe bağlıdır vehex
(onaltılık değere dönüştürülürX
),commas
(virgül ve iki ondalık basamaklı biçimlerX
X
) veyaduration
(saniye cinsinden bir saat biçiminden okunabilir bir saat biçimine dönüştürülür:HH:MM:SS
).
tostring(X,Y)
SPL örneği
Bu örnek şunu döndürür:
foo=615 and foo2=00:10:15:
… | eval foo=615 | eval foo2 = tostring(
foo, "duration")
urldecode(X)
SPL örneği
urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
Yaygın stats
komutlar KQL örneği
SPL komutu | Açıklama | KQL komutu | KQL örneği |
---|---|---|---|
avg(X) |
alanının X değerlerinin ortalamasını döndürür. |
avg() | avg(X) |
count(X) |
alanının X yineleme sayısını döndürür. Eşleşecek belirli bir alan değerini belirtmek için olarak eval(field="value") biçimlendirinX . |
count() | summarize count() |
dc(X) |
alanının X ayrı değerlerinin sayısını döndürür. |
dcount() | …\| summarize countries=dcount(country) by continent |
earliest(X) |
kronolojik olarak en erken görülen değerini X döndürür. |
arg_min() | … \| summarize arg_min(TimeGenerated, *) by X |
latest(X) |
kronolojik olarak en son görülen değerini X döndürür. |
arg_max() | … \| summarize arg_max(TimeGenerated, *) by X |
max(X) |
alanının X en büyük değerini döndürür. değerleri X sayısal değilse, en yüksek değer alfabetik sıralamayla bulunur. |
max() | …\| summarize max(X) |
median(X) |
alanının X orta en orta değerini döndürür. |
percentile() | …\| summarize percentile(X, 50) |
min(X) |
alanının X en düşük değerini döndürür. değerleri X sayısal değilse, en düşük değer alfabetik sıralamayla bulunur. |
min() | …\| summarize min(X) |
mode(X) |
alanının X en sık kullanılan değerini döndürür. |
top-hitters() | …\| top-hitters 1 of Y by X |
perc(Y) |
alanının Y yüzdebirlik X değerini döndürür. Örneğin, perc5(total) bir alanın total beşinci yüzdebirlik değerini döndürür. |
percentile() | …\| summarize percentile(Y, 5) |
range(X) |
alanının X en büyük ve en düşük değerleri arasındaki farkı döndürür. |
range() | range(1, 3) |
stdev(X) |
alanının X örnek standart sapması döndürür. |
stdev | stdev() |
stdevp(X) |
alanının X popülasyon standart sapması verir. |
stdevp() | stdevp() |
sum(X) |
alanının X değerlerinin toplamını döndürür. |
sum() | sum(X) |
sumsq(X) |
alanının X değerlerinin karelerinin toplamını döndürür. |
||
values(X) |
Alanın X tüm ayrı değerlerinin listesini çok değerli bir giriş olarak döndürür. Değerlerin sırası alfabetiktir. |
make_set() | …\| summarize r = make_set(X) |
var(X) |
alanının X örnek varyansını döndürür. |
Varyans | variance(X) |
Sonraki adımlar
Bu makalede, geçiş kurallarınızı Splunk'ten Microsoft Sentinel'e eşlemeyi öğrendiniz.