Migrasikan aturan deteksi Splunk ke Microsoft Sentinel
Artikel ini menjelaskan cara mengidentifikasi, membandingkan, dan memigrasikan aturan deteksi Splunk ke aturan bawaan Microsoft Sentinel.
Jika Anda ingin memigrasikan penyebaran Splunk Observability Anda, pelajari selengkapnya tentang cara bermigrasi dari Splunk ke Log Azure Monitor.
Mengidentifikasi dan memigrasi aturan
Microsoft Sentinel menggunakan analisis pembelajaran mesin untuk menciptakan insiden dengan keakuratan tinggi dan dapat ditindaklanjuti, serta beberapa deteksi yang ada mungkin redundan di Microsoft Sentinel. Oleh karena itu, jangan migrasikan semua aturan deteksi dan analitik Anda secara sembarangan. 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 apa pun yang belum memicu peringatan apa pun dalam 6-12 bulan terakhir, dan tentukan apakah aturan tersebut masih relevan.
- Hilangkan ancaman atau peringatan tingkat rendah yang secara rutin Anda abaikan.
- Gunakan fungsionalitas yang ada, dan periksa apakah aturan analitik bawaan Microsoft Sentinel mungkin mengatasi kasus penggunaan Anda saat ini. Karena Microsoft Azure Sentinel menggunakan analitik pembelajaran mesin untuk menghasilkan insiden dengan keakuratan tinggi dan dapat ditindaklanjuti, kemungkinan beberapa deteksi yang ada tidak akan diperlukan lagi.
- Konfirmasikan sumber data yang terhubung dan ulas metode koneksi data Anda. Tinjau kembali percakapan kumpulan data untuk memastikan kedalaman dan keluasan data di seluruh kasus penggunaan yang Anda rencanakan untuk dideteksi.
- Uji kemampuan pengalaman migrasi SIEM untuk menentukan apakah terjemahan otomatis cocok.
- Jelajahi sumber daya komunitas seperti SOC Prime Threat Detection Marketplace untuk memeriksa apakah aturan Anda tersedia.
- Pertimbangkan apakah konverter kueri online seperti Uncoder.io dapat berfungsi untuk aturan Anda.
- Jika aturan tidak tersedia atau tidak dapat dikonversi, aturan perlu dibuat secara manual, menggunakan kueri KQL. Tinjau pemetaan aturan untuk membuat kueri baru.
Pelajari lebih lanjut tentang praktik terbaik untuk memigrasikan aturan deteksi.
Untuk memigrasikan aturan analitik Anda ke Microsoft Sentinel:
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.
Konfirmasi apakah Anda memiliki sumber data terhubung yang diperlukan, dan tinjau metode koneksi data Anda.
Verifikasi apakah deteksi Anda tersedia sebagai templat bawaan di Microsoft Sentinel:
Gunakan pengalaman migrasi SIEM untuk mengotomatiskan terjemahan dan migrasi.
Untuk informasi selengkapnya, lihat Menggunakan pengalaman migrasi SIEM.
Jika aturan bawaan cukup, gunakan templat aturan bawaan untuk membuat aturan untuk ruang kerja Anda sendiri.
Di Microsoft Sentinel, buka tab Konfigurasi > Analitik > Templat aturan, dan buat serta perbarui setiap aturan analitik yang relevan.
Untuk informasi selengkapnya, lihat Mendeteksi ancaman yang tidak biasa.
Jika Anda memiliki deteksi yang tidak tercakup oleh aturan bawaan Microsoft Sentinel, coba konverter kueri online, seperti Uncoder.io atau SPL2KQL untuk mengonversi kueri Anda ke KQL.
Identifikasi kondisi pemicu dan tindakan aturan, lalu bangun dan tinjau kueri KQL Anda.l.
Jika aturan bawaan atau pengonversi aturan online tidak cukup, Anda harus membuat aturan secara manual. Dalam kasus seperti itu, gunakan langkah-langkah berikut untuk mulai membuat aturan Anda:
Mengidentifikasi sumber data yang ingin Anda gunakan dalam aturan Anda. Anda akan membuat tabel pemetaan antara sumber data dan tabel data di MIcrosoft Sentinel untuk mengidentifikasi tabel yang ingin Anda kueri.
Mengidentifikasi atribut, bidang, atau entitas dalam data Anda yang ingin Anda gunakan dalam aturan Anda.
Mengidentifikasi kriteria dan logika aturan Anda. Pada tahap ini, Anda mungkin ingin menggunakan templat aturan sebagai sampel cara membangun 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, Anda mungkin perlu mengulas KQL dan mengujinya kembali.
Ketika Anda puas, Anda dapat mempertimbangkan 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 untuk memperjelas konsep aturan di Microsoft Sentinel dibandingkan dengan Splunk.
Splunk | Microsoft Sentinel | |
---|---|---|
Jenis aturan | • Terjadwal • Real-time |
• 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 perintah evaluasi umum. | perpanjang | T | extend duration = endTime - startTime |
fields |
Menghapus bidang dari hasil pencarian. | • proyek • project-away |
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. | • externaldata • lookup |
Contoh KQL |
rename |
Mengganti nama bidang. Gunakan wildcard untuk menentukan beberapa bidang. | project-rename | 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: • join • make_list • mv-expand |
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" |
perintah pencarian: 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
])) | ...
perintah statistik: Contoh KQL
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
perintah mstats: Contoh KQL
T | summarize count() by price_range=bin(price, 10.0)
perintah transaksi: Contoh SPL
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
perintah transaksi: 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 awal sesi untuk kolom dalam rangkaian baris bersambung.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
perintah eventstats: Contoh SPL
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
perintah eventstats: 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
perintah deteksi anomali: Contoh SPL
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
perintah deteksi anomali: 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 evaluasi umum
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") |
iif() | Contoh KQL |
isbool(X) |
Mengembalikan TRUE jika X adalah boolean. |
isbool(field) |
• iif() • gettype |
iif(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Mengembalikan TRUE jika X adalah bilangan bulat. |
isint(field) |
• iif() • 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) |
• iif() • 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%") |
• memiliki • berisi • dimulai dengan • 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$") |
kecocokan regex | … | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Mengembalikan nilai maksimum dalam kolom. | max(delay, mydelay) |
• maks() • 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) |
iif | iif(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") |
unix time | 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") |
iif() | iif(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) |
Keterangan | 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 |
kasus(X,"Y",...) contoh SPL
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
kasus(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) KQL contoh
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X) KQL contoh
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
};
ganti (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')
waktu() 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 perintah statistik umum KQL
Perintah SPL | Deskripsi | Perintah KQL | Contoh KQL |
---|---|---|---|
avg(X) |
Mengembalikan nilai rata-rata bidang X . |
avg() | 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 . |
top-hitters() | …\| 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 . |
variance | variance(X) |
Langkah berikutnya
Dalam artikel ini, Anda mempelajari cara memetakan aturan migrasi Anda dari Splunk ke Microsoft Sentinel.