Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aturan deteksi Splunk adalah komponen informasi keamanan dan manajemen peristiwa (SIEM) yang dibandingkan dengan aturan analitik di Microsoft Azure Sentinel. Artikel ini menjelaskan konsep untuk mengidentifikasi, membandingkannya, dan memigrasikannya ke Microsoft Sentinel. Cara terbaik adalah memulai dengan pengalaman migrasi SIEM, yang mengidentifikasi aturan analitik out-of-the-box (OOTB) untuk diterjemahkan secara otomatis.
Jika Anda ingin memigrasikan penyebaran Splunk Observability Anda, pelajari selengkapnya tentang cara bermigrasi dari Splunk ke Log Azure Monitor.
Aturan audit
Microsoft Sentinel menggunakan analitik pembelajaran mesin untuk menciptakan insiden dengan keakuratan tinggi dan dapat ditindaklanjuti. Beberapa deteksi Splunk yang ada mungkin berlebihan di Microsoft Azure Sentinel, jadi jangan migrasikan semuanya secara membabi buta. Ulas pertimbangan ini saat Anda mengidentifikasi aturan deteksi yang ada.
- Pastikan untuk memilih kasus penggunaan yang membenarkan migrasi aturan, mempertimbangkan prioritas dan efisiensi bisnis.
- Pastikan Anda memahami jenis aturan Microsoft Sentinel.
- Pastikan Anda memahami terminologi aturan.
- Tinjau aturan usang yang tidak memiliki pemberitahuan selama 6-12 bulan terakhir, dan tentukan apakah aturan tersebut masih relevan.
- Hilangkan ancaman atau peringatan tingkat rendah yang secara rutin Anda abaikan.
- Konfirmasikan sumber data yang terhubung dan ulas metode koneksi data Anda. Microsoft Sentinel Analytics mengharuskan jenis data ada di ruang kerja Analitik Log sebelum aturan diaktifkan. Tinjau kembali percakapan kumpulan data untuk memastikan kedalaman dan keluasan data di seluruh kasus penggunaan yang Anda rencanakan untuk dideteksi. Kemudian gunakan pengalaman migrasi SIEM untuk memastikan sumber data dipetakan dengan tepat.
Aturan migrasi
Setelah Anda mengidentifikasi deteksi Splunk untuk dimigrasikan, tinjau pertimbangan ini untuk proses migrasi:
- Bandingkan fungsionalitas aturan analitik OOTB Microsoft Sentinel yang ada dengan kasus penggunaan Anda saat ini. Gunakan pengalaman migrasi SIEM untuk melihat deteksi Splunk mana yang secara otomatis dikonversi ke templat OOTB.
- Terjemahkan deteksi yang tidak selaras dengan aturan analitik OOTB. Cara terbaik untuk menerjemahkan deteksi Splunk secara otomatis adalah dengan pengalaman migrasi SIEM.
- Temukan lebih banyak algoritma untuk kasus penggunaan Anda dengan menjelajahi sumber daya komunitas seperti SOC Prime Threat Detection Marketplace.
- Terjemahkan deteksi secara manual jika aturan bawaan tidak tersedia atau tidak diterjemahkan secara otomatis. Buat kueri KQL baru dan tinjau pemetaan aturan.
Untuk informasi selengkapnya, lihat praktik terbaik untuk memigrasikan aturan deteksi.
Langkah-langkah migrasi aturan
Verifikasi bahwa Anda memiliki sistem pengujian untuk setiap aturan yang ingin Anda migrasikan.
Siapkan proses validasi untuk aturan Anda yang dimigrasikan, termasuk skrip dan skenario pengujian lengkap.
Pastikan tim Anda memiliki sumber daya yang bermanfaat untuk menguji aturan Anda yang dimigrasikan.
Konfirmasikan bahwa Anda memiliki sumber data yang diperlukan yang tersambung, dan tinjau metode koneksi data Anda.
Verifikasi apakah deteksi Anda tersedia sebagai templat OOTB di Microsoft Azure Sentinel:
Gunakan pengalaman migrasi SIEM untuk mengotomatiskan terjemahan dan penginstalan templat OOTB.
Untuk informasi selengkapnya, lihat Menggunakan pengalaman migrasi SIEM.
Jika Anda memiliki kasus penggunaan yang tidak tercermin dalam deteksi, buat aturan untuk ruang kerja Anda sendiri dengan templat aturan OOTB.
Di Microsoft Azure Sentinel, buka Hub konten.
Filter Jenis konten untuk templat aturan Analitik.
Temukan dan Instal/Perbarui setiap solusi Hub konten yang sesuai atau templat aturan analitik mandiri.
Untuk informasi selengkapnya, lihat Mendeteksi ancaman yang tidak biasa.
Jika Anda memiliki deteksi yang tidak tercakup oleh aturan OOTB Microsoft Sentinel, pertama-tama coba pengalaman migrasi SIEM untuk terjemahan otomatis.
Jika aturan OOTB atau migrasi SIEM tidak sepenuhnya menerjemahkan deteksi, buat aturan secara manual. Dalam kasus seperti itu, gunakan langkah-langkah berikut untuk membuat aturan Anda:
Mengidentifikasi sumber data yang ingin Anda gunakan dalam aturan Anda. Identifikasi tabel Microsoft Azure Sentinel yang ingin Anda kueri dengan membuat tabel pemetaan antara sumber data dan tabel data.
Mengidentifikasi atribut, bidang, atau entitas dalam data Anda yang ingin Anda gunakan dalam aturan Anda.
Mengidentifikasi kriteria dan logika aturan Anda. Pada tahap ini, pertimbangkan untuk menemukan templat aturan sebagai sampel cara membuat kueri KQL Anda.
Pertimbangkan filter, aturan korelasi, daftar aktif, set referensi, daftar tonton, anomali deteksi, agregasi, dan sebagainya. Anda dapat menggunakan referensi yang disediakan oleh SIEM lama Anda untuk memahami cara terbaik memetakan sintaks kueri Anda.
Identifikasi kondisi pemicu dan tindakan aturan, lalu bangun dan tinjau kueri KQL Anda.l. Saat meninjau kueri Anda, pertimbangkan sumber daya panduan pengoptimalan KQL.
Uji aturan dengan masing-masing kasus penggunaan yang relevan. Jika tidak memberikan hasil yang diharapkan, tinjau dan edit KQL dan uji lagi.
Saat Anda puas, pertimbangkan aturan yang dimigrasikan. Buat playbook untuk tindakan aturan Anda sesuai kebutuhan. Untuk mengetahui informasi selengkapnya, lihat Mengotomatiskan respons ancaman dengan playbook di Microsoft Sentinel.
Pelajari lebih lanjut tentang aturan analitik:
- Membuat aturan analitik kustom untuk mendeteksi ancaman. Gunakan pengelompokan pemberitahuan untuk mengurangi kelelahan pemberitahuan dengan mengelompokkan pemberitahuan yang terjadi dalam kerangka waktu tertentu.
- Petakan bidang data ke entitas di Microsoft Sentinel untuk memungkinkan teknisi SOC menentukan entitas sebagai bagian dari bukti untuk melacak selama investigasi. Pemetaan entitas juga memungkinkan analis SOC untuk memanfaatkan [grafik investigasi] intuitif (investigate-cases.md#use-the-investigation-graph-to-deep-dive) yang dapat membantu mengurangi waktu dan upaya.
- Selidiki insiden dengan data UEBA, sebagai contoh cara menggunakan bukti untuk memunculkan peristiwa, pemberitahuan, dan marka buku yang terkait dengan insiden tertentu dalam panel pratinjau insiden.
- Bahasa Kueri Kusto(KQL), yang dapat Anda gunakan untuk mengirimkan permintaan baca-saja ke database Log Analytics Anda untuk memproses data dan mengembalikan hasil. KQL juga digunakan di seluruh layanan Microsoft lainnya, seperti Pertahanan Microsoft untuk Titik Akhir dan Application Insights.
Membandingkan terminologi aturan
Tabel ini membantu Anda mengklarifikasi konsep aturan berdasarkan Bahasa Kueri Kusto (KQL) di Microsoft Azure Sentinel dibandingkan dengan deteksi Splunk berdasarkan Search Processing Language (SPL).
Splunk | Microsoft Sentinel | |
---|---|---|
Jenis aturan | • Terjadwal • Waktu nyata |
• Kueri terjadwal • Fusi • Keamanan Microsoft • Analitik Perilaku Pembelajaran Mesin (ML) |
Kriteria | Tentukan dalam SPL | Ditentukan dalam KQL |
Kondisi pemicu | • Jumlah hasil • Jumlah host • Jumlah sumber • Kustom |
Ambang: Jumlah hasil kueri |
Perbuatan | • Tambahkan ke peringatan yang dipicu • Catat Peristiwa • Hasil output untuk mencari • Dan banyak lagi |
• Membuat peringatan atau insiden • Mengintegrasi dengan Logic Apps |
Memetakan dan membandingkan sampel aturan
Gunakan contoh ini untuk membandingkan dan memetakan aturan dari Splunk ke Microsoft Sentinel dalam berbagai skenario.
Perintah pencarian umum
Perintah SPL | Deskripsi | Operator KQL | Contoh KQL |
---|---|---|---|
chart/ timechart |
Mengembalikan hasil dalam output tabel untuk pembuatan charting rangkaian waktu. | operator render | … | render timechart |
dedup |
Menghapus hasil berikutnya yang cocok dengan kriteria yang ditentukan. | • berbeda • ringkas |
… | summarize by Computer, EventID |
eval |
Menghitung ekspresi. Pelajari tentang eval umum. |
perpanjang | T | extend duration = endTime - startTime |
fields |
Menghapus bidang dari hasil pencarian. | • proyek • meluncurkan proyek |
T | project cost=price*quantity, price |
head/tail |
Mengembalikan hasil N pertama atau terakhir. | top | T | top 5 by Name desc nulls last |
lookup |
Menambahkan nilai bidang dari sumber eksternal. | • data eksternal • pencarian |
Contoh KQL |
rename |
Mengganti nama bidang. Gunakan wildcard untuk menentukan beberapa bidang. | proyek-ganti nama | T | project-rename new_column_name = column_name |
rex |
Menentukan nama grup menggunakan ekspresi reguler untuk mengekstrak bidang. | kecocokan regex | … | where field matches regex "^addr.*" |
search |
Memfilter hasil ke hasil yang cocok dengan ekspresi penelusuran. | cari | search "X" |
sort |
Mengurutkan hasil pencarian berdasarkan bidang yang ditentukan. | urutkan | T | sort by strlen(country) asc, price desc |
stats |
Menyediakan statistik, dikelompokkan secara opsional berdasarkan bidang. Pelajari selengkapnya tentang perintah statistik umum. | meringkas | Contoh KQL |
mstats |
Mirip dengan statistik, digunakan pada metrik, bukan peristiwa. | meringkas | Contoh KQL |
table |
Menentukan bidang mana yang akan disimpan dalam tataan hasil, dan menyimpan data dalam format tabel. | proyek | T | project columnA, columnB |
top/rare |
Menampilkan nilai paling umum atau paling tidak umum dari suatu bidang. | top | T | top 5 by Name desc nulls last |
transaction |
Mengelompokkan hasil pencarian ke dalam transaksi. Contoh SPL |
Contoh: row_window_session | Contoh KQL |
eventstats |
Menghasilkan statistik ringkasan dari bidang peristiwa Anda dan menyimpan statistik tersebut di bidang baru. Contoh SPL |
Contoh: • bergabung • make_list • MV-Perluas |
Contoh KQL |
streamstats |
Temukan jumlah kumulatif bidang. Contoh SPL: ... | streamstats sum(bytes) as bytes _ total \| timechart |
row_cumsum | ...\| serialize cs=row_cumsum(bytes) |
anomalydetection |
Temukan anomali di bidang yang ditentukan. Contoh SPL |
series_decompose_anomalies() | Contoh KQL |
where |
Filter hasil penelusuran menggunakan eval ekspresi. Digunakan untuk membandingkan dua bidang yang berbeda. |
di mana | T | where fruit=="apple" |
lookup
perintah: Contoh 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
perintah: Contoh KQL
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
mstats
perintah: Contoh KQL
T | summarize count() by price_range=bin(price, 10.0)
transaction
perintah: Contoh SPL
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
transaction
perintah: Contoh 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
Gunakan row_window_session()
untuk menghitung nilai mulai sesi untuk kolom dalam kumpulan baris berseri.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
eventstats
perintah: Contoh SPL
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
eventstats
perintah: Contoh KQL
Berikut ini contoh dengan pernyataan 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
Berikut ini contoh dengan pernyataan 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
perintah: Contoh SPL
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
anomalydetection
perintah: Contoh 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)
Perintah umum eval
Perintah SPL | Deskripsi | Contoh SPL | Perintah KQL | Contoh KQL |
---|---|---|---|---|
abs(X) |
Mengembalikan nilai absolut X. | abs(number) |
abs() |
abs(X) |
case(X,"Y",…) |
Mengambil pasangan argumen X dan Y , di mana argumen X adalah ekspresi boolean. Saat dievaluasi ke TRUE , argumen mengembalikan argumen Y yang sesuai. |
Contoh SPL | case |
Contoh KQL |
ceil(X) |
Plafon angka X. | ceil(1.9) |
ceiling() |
ceiling(1.9) |
cidrmatch("X",Y) |
Mengidentifikasi alamat IP milik subnet tertentu. | 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,…) |
Mengembalikan nilai pertama yang bukan null. | coalesce(null(), "Returned val", null()) |
coalesce() |
coalesce(tolong("not a number"), tolong("42"), 33) == 42 |
cos(X) |
Menghitung kosinus dari X. | n=cos(0) |
cos() | cos(X) |
exact(X) |
Mengevaluasi ekspresi X menggunakan aritmatika floating point presisi ganda. | exact(3.14*num) |
todecimal() |
todecimal(3.14*2) |
exp(X) |
Mengembalikan eX. | exp(3) |
exp() | exp(3) |
if(X,Y,Z) |
Jika X bernilai TRUE , hasilnya adalah argumen kedua Y . Jika X dievaluasi ke FALSE , hasilnya dievaluasi ke argumen ketiga Z . |
if(error==200, "OK", "Error") |
iff() |
Contoh KQL |
isbool(X) |
Mengembalikan TRUE jika X adalah boolean. |
isbool(field) |
• iff() • gettype |
iff(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Mengembalikan TRUE jika X adalah bilangan bulat. |
isint(field) |
• iff() • gettype |
Contoh KQL |
isnull(X) |
Mengembalikan TRUE jika X adalah null. |
isnull(field) |
isnull() |
isnull(field) |
isstr(X) |
Mengembalikan TRUE jika X adalah string. |
isstr(field) |
• iff() • gettype |
Contoh KQL |
len(X) |
Fungsi ini mengembalikan panjang karakter string X . |
len(field) |
strlen() |
strlen(field) |
like(X,"y") |
Mengembalikan TRUE jika dan hanya jika X seperti pola SQLite di Y . |
like(field, "addr%") |
• has • contains • startswith • cocok dengan regex |
Contoh KQL |
log(X,Y) |
Mengembalikan log argumen pertama X menggunakan argumen kedua Y sebagai basis. Nilai default Y adalah 10 . |
log(number,2) |
• log • log2 • log10 |
log(X) log2(X) log10(X) |
lower(X) |
Mengembalikan nilai huruf kecil dari X . |
lower(username) |
tolower | tolower(username) |
ltrim(X,Y) |
Mengembalikan X dengan karakter dalam parameter Y dipangkas dari sisi kiri. Keluaran default dari Y adalah spasi dan tab. |
ltrim(" ZZZabcZZ ", " Z") |
trim_start() |
trim_start(“ ZZZabcZZ”,” ZZZ”) |
match(X,Y) |
Mengembalikan jika X cocok dengan pola regex Y. | match(field, "^\d{1,3}.\d$") |
matches regex |
… | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Mengembalikan nilai maksimum dalam kolom. | max(delay, mydelay) |
• max() • arg_max() |
… | summarize max(field) |
md5(X) |
Mengembalikan hash MD5 dari nilai string X . |
md5(field) |
hash_md5 |
hash_md5("X") |
min(X,…) |
Mengembalikan nilai minimum dalam kolom. | min(delay, mydelay) |
• min_of() • mnt() • arg_min |
Contoh KQL |
mvcount(X) |
Mengembalikan jumlah (total) dari X nilai. |
mvcount(multifield) |
dcount |
…| summarize dcount(X) by Y |
mvfilter(X) |
Memfilter bidang multinilai berdasarkan ekspresi boolean X . |
mvfilter(match(email, "net$")) |
mv-apply |
Contoh KQL |
mvindex(X,Y,Z) |
Mengembalikan subkumpulan argumen X multinilai dari posisi awal (berbasis nol) Y ke Z (opsional). |
mvindex( multifield, 2) |
array_slice |
array_slice(arr, 1, 2) |
mvjoin(X,Y) |
Diberikan bidang multi-nilai X dan pembatas string Y , dan menggabungkan nilai individual X menggunakan Y . |
mvjoin(address, ";") |
strcat_array |
Contoh KQL |
now() |
Mengembalikan waktu saat ini, direpresentasikan dalam waktu Unix. | now() |
now() |
now() now(-2d) |
null() |
Tidak menerima argumen dan mengembalikan NULL . |
null() |
nihil | null |
nullif(X,Y) |
Menyertakan dua argumen, X dan Y , dan mengembalikan X jika argumennya berbeda. Jika tidak, kembalikan NULL . |
nullif(fieldA, fieldB) |
iff |
iff(fieldA==fieldB, null, fieldA) |
random() |
Mengembalikan angka pseudo-acak antara 0 hingga 2147483647 . |
random() |
rand() |
rand() |
relative_ time(X,Y) |
Diberikan waktu epoch X dan penentu waktu relatif Y , mengembalikan nilai waktu epoch Y yang diterapkan ke X . |
relative_time(now(),"-1d@d") |
waktu unix | Contoh KQL |
replace(X,Y,Z) |
Mengembalikan string yang dibentuk dengan mengganti string Z untuk setiap kemunculan string ekspresi reguler Y dalam string X . |
Mengembalikan tanggal dengan nomor bulan dan hari dialihkan. Misalnya, untuk 4/30/2015 masukan, keluarannya adalah 30/4/2009 :replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/") |
replace() |
Contoh KQL |
round(X,Y) |
Mengembalikan X dibulatkan ke jumlah desimal yang ditentukan oleh Y . Standarnya adalah dibulatkan ke bilangan bulat. |
round(3.5) |
round |
round(3.5) |
rtrim(X,Y) |
Mengembalikan X dengan karakter Y yang dipangkas dari sisi kanan. Jika Y tidak ditentukan, spasi dan tab akan dipangkas. |
rtrim(" ZZZZabcZZ ", " Z") |
trim_end() |
trim_end(@"[ Z]+",A) |
searchmatch(X) |
Mengembalikan TRUE jika peristiwa cocok dengan string penelusuran X . |
searchmatch("foo AND bar") |
iff() | iff(field has "X","Yes","No") |
split(X,"Y") |
Mengembalikan X sebagai bidang multi-nilai, dipisahkan dengan pemisah Y . |
split(address, ";") |
split() |
split(address, ";") |
sqrt(X) |
Menghasilkan akar kuadrat X . |
sqrt(9) |
sqrt() |
sqrt(9) |
strftime(X,Y) |
Mengembalikan nilai waktu epoch X yang dirender menggunakan format yang ditentukan oleh Y . |
strftime(_time, "%H:%M") |
format_datetime() |
format_datetime(time,'HH:mm') |
strptime(X,Y) |
Diberikan waktu yang diwakili oleh string X , mengembalikan nilai yang diurai dari format Y . |
strptime(timeStr, "%H:%M") |
format_datetime() | Contoh KQL |
substr(X,Y,Z) |
Mengembalikan bidang substring X dari posisi awal (berbasis satu) Y untuk karakter Z (opsional). |
substr("string", 1, 3) |
substring() |
substring("string", 0, 3) |
time() |
Mengembalikan waktu jam dinding dengan resolusi mikrodetik. | time() |
format_datetime() |
Contoh KQL |
tonumber(X,Y) |
Mengonversi string input X menjadi angka, di mana Y (opsional, nilai defaultnya adalah 10 ) menentukan basis angka yang akan dikonversi. |
tonumber("0A4",16) |
toint() |
toint("123") |
tostring(X,Y) |
Deskripsi | Contoh SPL | tostring() |
tostring(123) |
typeof(X) |
Mengembalikan representasi string dari tipe bidang. | typeof(12) |
gettype() |
gettype(12) |
urldecode(X) |
Mengembalikan URL yang X didekodekan. |
Contoh SPL | url_decode |
Contoh KQL |
case(X,"Y",…)
Contoh SPL
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
case(X,"Y",…)
Contoh KQL
T
| extend Message = case(error == 404, "Not found",
error == 500,"Internal Server Error", "OK")
if(X,Y,Z)
Contoh KQL
iif(floor(Timestamp, 1d)==floor(now(), 1d),
"today", "anotherday")
isint(X)
Contoh KQL
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X)
Contoh KQL
iif(gettype(X) =="string","TRUE","FALSE")
like(X,"y")
contoh
… | where field has "addr"
… | where field contains "addr"
… | where field startswith "addr"
… | where field matches regex "^addr.*"
min(X,…)
Contoh KQL
min_of (expr_1, expr_2 ...)
…|summarize min(expr)
…| summarize arg_min(Price,*) by Product
mvfilter(X)
Contoh KQL
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
mvjoin(X,Y)
Contoh KQL
strcat_array(dynamic([1, 2, 3]), "->")
relative time(X,Y)
Contoh KQL
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s
};
replace(X,Y,Z)
Contoh KQL
replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)
strptime(X,Y)
Contoh KQL
format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')
time()
Contoh KQL
format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')
tostring(X,Y)
Mengembalikan nilai bidang X
sebagai string.
- Jika nilai
X
adalah angka,X
diformat ulang menjadi nilai string. - Jika
X
adalah nilai boolean,X
diformat ulang menjadiTRUE
atauFALSE
. - Jika
X
adalah angka, argumen keduaY
adalah opsional dan dapat berupahex
(mengubahX
menjadi heksadesimal),commas
(memformatX
dengan koma dan dua tempat desimal), atauduration
(mengonversiX
dari format waktu dalam detik ke format waktu yang dapat dibaca:HH:MM:SS
).
tostring(X,Y)
Contoh SPL
Contoh ini mengembalikan:
foo=615 and foo2=00:10:15:
… | eval foo=615 | eval foo2 = tostring(
foo, "duration")
urldecode(X)
Contoh SPL
urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
Contoh KQL perintah umum stats
Perintah SPL | Deskripsi | Perintah KQL | Contoh KQL |
---|---|---|---|
avg(X) |
Mengembalikan nilai rata-rata bidang X . |
rata-rata() | avg(X) |
count(X) |
Mengembalikan jumlah kemunculan bidang X . Untuk menunjukkan nilai bidang tertentu yang akan dicocokkan, format X sebagai eval(field="value") . |
count() | summarize count() |
dc(X) |
Mengembalikan jumlah nilai yang berbeda dari bidang X . |
dcount() | …\| summarize countries=dcount(country) by continent |
earliest(X) |
Mengembalikan nilai yang terlihat paling awal secara kronologis dari X . |
arg_min() | … \| summarize arg_min(TimeGenerated, *) by X |
latest(X) |
Mengembalikan nilai yang dilihat terakhir secara kronologis dari X . |
arg_max() | … \| summarize arg_max(TimeGenerated, *) by X |
max(X) |
Mengembalikan nilai maksimum bidang X . Jika nilai X adalah non-numerik, nilai maksimum ditemukan melalui urutan abjad. |
max() | …\| summarize max(X) |
median(X) |
Mengembalikan nilai paling tengah dari bidang X . |
percentile() | …\| summarize percentile(X, 50) |
min(X) |
Mengembalikan nilai minimum bidang X . Jika nilai X adalah non-numerik, nilai minimum ditemukan melalui urutan abjad. |
min() | …\| summarize min(X) |
mode(X) |
Mengembalikan nilai bidang yang paling sering X . |
pemukul teratas() | …\| top-hitters 1 of Y by X |
perc(Y) |
Mengembalikan nilai persentil X bidang Y . Misalnya, perc5(total) mengembalikan nilai persentil kelima bidang total . |
percentile() | …\| summarize percentile(Y, 5) |
range(X) |
Mengembalikan selisih antara nilai maksimum dan minimum bidang X . |
range() | range(1, 3) |
stdev(X) |
Mengembalikan simpangan baku sampel bidang X . |
stdev | stdev() |
stdevp(X) |
Mengembalikan simpangan baku populasi bidang X . |
stdevp() | stdevp() |
sum(X) |
Mengembalikan jumlah nilai bidang X . |
sum() | sum(X) |
sumsq(X) |
Mengembalikan jumlah kuadrat dari nilai bidang X . |
||
values(X) |
Mengembalikan daftar semua nilai yang berbeda dari bidang X sebagai entri multi-nilai. Urutan nilainya adalah abjad. |
make_set() | …\| summarize r = make_set(X) |
var(X) |
Mengembalikan varians sampel bidang X . |
varian | variance(X) |
Langkah berikutnya
Dalam artikel ini, Anda mempelajari cara memetakan aturan migrasi Anda dari Splunk ke Microsoft Sentinel.