مشاركة عبر


ترحيل قواعد الكشف عن Splunk إلى Azure Sentinel

قواعد الكشف عن Splunk هي مكونات إدارة معلومات الأمان والأحداث (SIEM) التي تقارن بقواعد التحليلات في Microsoft Sentinel. توضح هذه المقالة المفاهيم لتحديدها ومقارنتها وترحيلها إلى Microsoft Sentinel. أفضل طريقة هي البدء بتجربة ترحيل SIEM، والتي تحدد قواعد التحليلات الجاهزة (OOTB) للترجمة إليها تلقائيا.

إذا كنت ترغب في ترحيل نشر Splunk Observability، فتعرف على المزيد حول كيفية الترحيل من Splunk إلى سجلات Azure Monitor.

قواعد التدقيق

يستخدم Microsoft Sentinel تحليلات التعلم الآلي لإنشاء أحداث عالية الدقة وقابلة للتنفيذ. قد تكون بعض عمليات اكتشاف Splunk الموجودة لديك زائدة عن الحاجة في Microsoft Sentinel، لذلك لا تقم بترحيلها جميعا بشكل أعمى. راجع هذه الاعتبارات خلال تحديد قواعد الكشف الحالية.

  • تأكد من تحديد حالات الاستخدام التي تبرر ترحيل القواعد، مع مراعاة أولوية العمل وكفاءته.
  • تحقق من فهمك أنواع قواعد Azure Sentinel.
  • تحقق من فهمك للمصطلحات الخاصة بالقاعدة.
  • راجع القواعد القديمة التي لا تحتوي على تنبيهات خلال الأشهر من 6 إلى 12 شهرا الماضية، وحدد ما إذا كانت لا تزال ذات صلة.
  • تخلص من التهديدات أو التنبيهات منخفضة المستوى التي تتجاهلها بشكل روتيني.
  • أكد مصادر البيانات المتصلة وراجع طرق اتصال البيانات الخاصة بك. يتطلب Microsoft Sentinel Analytics أن يكون نوع البيانات موجودا في مساحة عمل Log Analytics قبل تمكين قاعدة. أعد زيارة محادثات جمع البيانات لضمان عمق البيانات واتساعها عبر حالات الاستخدام التي تخطط للكشف عنها. ثم استخدم تجربة ترحيل SIEM لضمان تعيين مصادر البيانات بشكل مناسب.

قواعد الترحيل

بعد تحديد اكتشافات Splunk المراد ترحيلها، راجع هذه الاعتبارات لعملية الترحيل:

  • قارن الوظائف الحالية لقواعد تحليلات OOTB الخاصة ب Microsoft Sentinel بحالات الاستخدام الحالية. استخدم تجربة ترحيل SIEM لمعرفة اكتشافات Splunk التي يتم تحويلها تلقائيا إلى قوالب OOTB.
  • ترجمة عمليات الكشف التي لا تتوافق مع قواعد تحليلات OOTB. أفضل طريقة لترجمة اكتشافات Splunk تلقائيا هي مع تجربة ترحيل SIEM.
  • اكتشف المزيد من الخوارزميات لحالات الاستخدام الخاصة بك عن طريق استكشاف موارد المجتمع مثل SOC Prime Threat Detection Marketplace.
  • ترجمة عمليات الكشف يدويا إذا لم تكن القواعد المضمنة متوفرة أو لم تتم ترجمتها تلقائيا. إنشاء استعلامات KQL الجديدة ومراجعة تعيين القواعد.

لمزيد من المعلومات، راجع أفضل الممارسات لترحيل قواعد الكشف.

خطوات ترحيل القواعد

  1. تأكد من وجود نظام اختبار لكل قاعدة تريد ترحيلها.

    1. أعد عملية التحقق من الصحة للقواعد التي تم ترحيلها، بما في ذلك سيناريوهات الاختبار الكاملة والبرامج النصية.

    2. تأكد من أن فريقك لديه موارد مفيدة لاختبار القواعد التي رحلت.

    3. تأكد من توصيل مصادر البيانات المطلوبة، وراجع أساليب اتصال البيانات.

  2. تحقق مما إذا كانت عمليات الكشف الخاصة بك متوفرة كقوالب OOTB في Microsoft Sentinel:

    • استخدم تجربة ترحيل SIEM لأتمتة ترجمة قوالب OOTB وتثبيتها.

      لمزيد من المعلومات، راجع استخدام تجربة ترحيل SIEM.

    • إذا كانت لديك حالات استخدام لا تنعكس في عمليات الكشف، فبادر بإنشاء قواعد لمساحة العمل الخاصة بك باستخدام قوالب قواعد OOTB.

      في Microsoft Sentinel، انتقل إلى مركز المحتوى.

      تصفية نوع المحتوى لقوالب قواعد التحليلات.

      ابحث عن كل حل لمركز المحتوى أو قالب قاعدة تحليلات مستقل وتثبيته/تحديثه.

      لمزيد من المعلومات، راجع الكشف عن التهديدات الجاهزة.

    • إذا كان لديك اكتشافات لا تغطيها قواعد OOTB الخاصة ب Microsoft Sentinel، فجرب أولا تجربة ترحيل SIEM للترجمة التلقائية.

    • إذا لم تترجم قواعد OOTB أو ترحيل SIEM الكشف تماما، فبادر بإنشاء القاعدة يدويا. في مثل هذه الحالات، استخدم الخطوات التالية لإنشاء القاعدة الخاصة بك:

      1. حدد مصادر البيانات التي ترغب استخدامها في القاعدة الخاصة بك. حدد جداول Microsoft Sentinel التي تريد الاستعلام بها عن طريق إنشاء جدول تعيين بين مصادر البيانات وجداول البيانات.

      2. حدد أي سمات أو حقول أو كيانات في البيانات الخاصة بك تريد استخدامها في القواعد.

      3. حدد المعايير الخاصة بالقاعدة والمنطق. في هذه المرحلة، ضع في اعتبارك العثور على قوالب القواعد كعينات لكيفية إنشاء استعلامات KQL الخاصة بك.

        النظر في عوامل التصفية وقواعد الارتباط والقوائم النشطة ومجموعات المراجع وقوائم المشاهدة والحالات الشاذة للكشف والتجميعات، وما إلى ذلك. يمكنك استخدام المراجع التي يوفرها SIEM القديم لفهم كيفية أفضل طريقة لتعيين بناء جملة الاستعلام الخاص بك.

      4. حدد شرط المشغل وقاعدة الإجراء، ثم أنشئ استعلام KQL الخاص بك ومراجعته. أثناء مراجعة الاستعلام الخاص بك، ضع في اعتبارك موارد إرشادات التحسين KQL.

  3. تأكد من اختبار القاعدة مع كل حالة من حالات الاستخدام ذات الصلة. إذا لم يوفر النتائج المتوقعة، فراجع KQL وحرره واختبره مرة أخرى.

  4. عندما تكون راضيا، ضع في اعتبارك القاعدة التي تم ترحيلها. أنشئ دليل المبادئ لإجراءات القاعدة الخاصة بك عند الحاجة. للمزيد من المعلومات، راجع أتمتة الاستجابة للمخاطر باستخدام أدلة المبادئ في Azure Sentinel.

تعرف على المزيد عن قواعد التحليلات:

مقارنة مصطلحات القاعدة

يساعدك هذا الجدول على توضيح مفهوم قاعدة تستند إلى لغة استعلام Kusto (KQL) في Microsoft Sentinel مقارنة بالكشف عن Splunk استنادا إلى لغة معالجة البحث (SPL).

Splunk Microsoft Sentinel
نوع القاعدة • مجدولة
• الوقت الحقيقي
• استعلام مجدول
• Fusion
• Microsoft Security
• تحليلات سلوك التعلم الآلي من Microsoft Azure
المعايير التعريف في SPL تعريف في KQL
شرط المشغل • عدد النتائج
• عدد المضيفين
• عدد المصادر
• مخصص
الحد: عدد نتائج الاستعلام
الإجراء • إضافة إلى التنبيهات التي شغلت
• حدث التسجيل
• نتائج الإخراج للبحث عن
• وأكثر
• أنشئ تنبيه أو حدث
• تكامل مع Logic Apps

تعيين نماذج القواعد ومقارنتها

استخدم هذه العينات لمقارنة القواعد وتعيينها من Splunk إلى Azure Sentinel في سيناريوهات مختلفة.

أوامر البحث العامة

الأمر الخاص بـ SPL ‏‏الوصف عامل تشغيل خاص بـ KQL مثال خاص بـ KQL
chart/ timechart تُرجع النتائج في إخراج جدولي لتخطيط السلاسل الزمنية. عامل تشغيل العرض … | render timechart
dedup يعمل علي إزالة النتائج اللاحقة التي تطابق معيارًا محددًا. distinct
summarize
… | summarize by Computer, EventID
eval يحسب التعبير. تعرف على الأوامر الشائعةeval. extend T | extend duration = endTime - startTime
fields يزيل الحقول من نتائج البحث. project
project-away
T | project cost=price*quantity, price
head/tail يُرجع أول أو آخر نتيجتين. top T | top 5 by Name desc nulls last
lookup يضيف قيم الحقل من مصدر خارجي. externaldata
بحث
مثال خاص بـ KQL
rename يعيد تسمية حقل. استخدم أحرف بدل لتحديد حقول متعددة. إعادة تسمية المشروع T | project-rename new_column_name = column_name
rex يحدد أسماء المجموعات باستخدام التعبيرات العادية لاستخراج الحقول. matches regex … | where field matches regex "^addr.*"
search يقوم بتصفية النتائج إلى النتائج التي تطابق تعبير البحث. search search "X"
sort يفرز نتائج البحث حسب الحقول المحددة. sort T | sort by strlen(country) asc, price desc
stats يوفر الإحصائيات، مجمعة اختيارياً حسب الحقول. تعرف على المزيد عن أوامر الإحصائيات الشائعة. summarize مثال خاص بـ KQL
mstats على غرار الإحصائيات، تُستخدم في المقاييس بدلاً من الأحداث. summarize مثال خاص بـ KQL
table يحدد الحقول المطلوب الاحتفاظ بها في مجموعة النتائج، ويحتفظ بالبيانات بتنسيق جدولي. project T | project columnA, columnB
top/rare يعرض القيم الأكثر شيوعًا أو الأقل شيوعًا للحقل. top T | top 5 by Name desc nulls last
transaction مجموعات نتائج البحث في المعاملات.

مثال على SPL
مثال: row_window_session مثال خاص بـ KQL
eventstats يولد إحصائيات موجزة من الحقول في الأحداث الخاصة بك ويحفظ تلك الإحصائيات في حقل جديد.

مثال على SPL
أمثلة:
join
make_list
mv-expand
مثال خاص بـ KQL
streamstats أوجد المجموع التراكمي للحقل.

مثال علي SPL:
... | streamstats sum(bytes) as bytes _ total \| timechart
row_cumsum ...\| serialize cs=row_cumsum(bytes)
anomalydetection ابحث عن الحالات الشاذة في الحقل المُحدد.

مثال على SPL
series_decompose_anomalies() مثال خاص بـ KQL
where تصفية نتائج البحث باستخدام التعبيرات eval. تستخدم للمقارنة بين مجالين مختلفين. حيث T | where fruit=="apple"

lookup الأمر: مثال 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 الأمر: مثال KQL

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

mstats الأمر: مثال KQL

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

transaction الأمر: مثال على SPL

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

transaction الأمر: مثال 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

يستخدم row_window_session() لحساب قيم بدء جلسة العمل لعمود في مجموعة صفوف متسلسل.

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

eventstats الأمر: مثال على SPL

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

eventstats الأمر: مثال KQL

فيما يلي مثال على العبارة 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

فيما يلي مثال على العبارة 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 الأمر: مثال على SPL

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

anomalydetection الأمر: مثال 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)

الأوامر الشائعة eval

الأمر الخاص بـ SPL ‏‏الوصف مثال على SPL أمر KQL مثال خاص بـ KQL
abs(X) تُرجع القيمة المطلقة لـ X. abs(number) abs() abs(X)
case(X,"Y",…) يأخذ أزواجا من X وY، وسيطات إذ X تكون الوسيطات تعبيرات منطقية. أثناء تقييمها إلى TRUE، ترجع الوسيطات الوسيطة المقابلة Y. مثال على SPL case مثال خاص بـ KQL
ceil(X) حد أعلي رقم X. ceil(1.9) ceiling() ceiling(1.9)
cidrmatch("X",Y) يحدد عناوين IP التي تنتمي إلى شبكة فرعية معينة. 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,…) تُرجع القيمة الأولى غير الفارغة. coalesce(null(), "Returned val", null()) coalesce() coalesce(tolong("not a number"),
tolong("42"), 33) == 42
cos(X) يحسب جيب تمام X. n=cos(0) cos() cos(X)
exact(X) يقيّم التعبير X باستخدام حساب النقطة العائمة مزدوج الدقة. exact(3.14*num) todecimal() todecimal(3.14*2)
exp(X) ترجع eX. exp(3) exp() exp(3)
if(X,Y,Z) في حالة X تقييم إلى TRUE، تكون النتيجة هي الوسيطة الثانية Y. في حالة X تقييم إلى FALSE، تقيم النتيجة إلى الوسيطة الثالثة Z. if(error==200,
"OK", "Error")
iif() مثال خاص بـ KQL
isbool(X) يرجع TRUE إذا كان X منطقيًا. isbool(field) iif()
gettype
iif(gettype(X) =="bool","TRUE","FALSE")
isint(X) يرجع TRUE إذا كان X عددًا صحيحًا. isint(field) iif()
gettype
مثال خاص بـ KQL
isnull(X) يرجع TRUE إذا كان X فارغًا. isnull(field) isnull() isnull(field)
isstr(X) يرجع TRUE إذا كانت X سلسلة. isstr(field) iif()
gettype
مثال خاص بـ KQL
len(X) تُرجع هذه الدالة طول حرف سلسلة X. len(field) strlen() strlen(field)
like(X,"y") يرجع TRUE إذا كان و فقط إذا كان X مثل نمط SQLite في Y. like(field, "addr%") has
contains
startswith
matches regex
مثال خاص بـ KQL
log(X,Y) يرجع سجل الوسيطة X الأولى باستخدام الوسيطة Y الثانية كأساس. وتكون القيمة الافتراضية لـ Y هي 10. log(number,2) log
log2
log10
log(X)

log2(X)

log10(X)
lower(X) ترجع القيمة الصغيرة لـ X. lower(username) tolower tolower(username)
ltrim(X,Y) ترجع X مع اقتطاع الأحرف في المعلمة Y من الجانب الأيسر. الإخراج الافتراضي هو مسافات Y وعلامات تبويب. ltrim(" ZZZabcZZ ", " Z") trim_start() trim_start(“ ZZZabcZZ”,” ZZZ”)
match(X,Y) تُرجع إذا تطابق X مع نمط التعبير العادي Y. match(field, "^\d{1,3}.\d$") matches regex … | where field matches regex @"^\d{1,3}.\d$")
max(X,…) ترجع القيمة القصوى في عمود. max(delay, mydelay) max()
arg_max()
… | summarize max(field)
md5(X) تُرجع تجزئة MD5 لقيمة سلسلةX. md5(field) hash_md5 hash_md5("X")
min(X,…) تُرجع الحد الأدنى للقيمة في عمود. min(delay, mydelay) min_of()
min()
arg_min
مثال خاص بـ KQL
mvcount(X) يرجع عدد (إجمالي) X القيم. mvcount(multifield) dcount …| summarize dcount(X) by Y
mvfilter(X) يصفي حقل متعدد القيم استنادًا إلى التعبير المنطقي X. mvfilter(match(email, "net$")) mv-apply مثال خاص بـ KQL
mvindex(X,Y,Z) ترجع مجموعة فرعية من الوسيطة متعددة القيم X من موضع البدء (المستند إلى الصفر) Y إلى Z (اختياري). mvindex( multifield, 2) array_slice array_slice(arr, 1, 2)
mvjoin(X,Y) نظرًا لحقل X متعدد القيم ومحدد Yسلسلة، ويربط القيم X الفردية لاستخدام Y. mvjoin(address, ";") strcat_array مثال خاص بـ KQL
now() لعرض الوقت الحالي المُمثل بوقت Unix. now() now() now()

now(-2d)
null() لا يقبل الوسيطات والعوائد NULL. null() قيمة فارغة null
nullif(X,Y) يشمل وسيطتين، X، وY وإرجاع X في حالة كانت الوسيطات مختلفة. خلاف ذلك، يعود NULL. nullif(fieldA, fieldB) iif iif(fieldA==fieldB, null, fieldA)
random() ترجع هذه الدالة رقما عشوائيًا مستعارًا بين 0 إلى 2147483647. random() rand() rand()
relative_ time(X,Y) نظرا إلى وقت X الفترة ومحدد Yالوقت النسبي، تُرجع قيمة Y وقت الفترة المطبقة على X. relative_time(now(),"-1d@d") unix time مثال خاص بـ KQL
replace(X,Y,Z) ترجع سلسلة تم تشكيلها عن طريق استبدال سلسلة Z لكل تكرار لسلسلة Y التعبير العادية في السلسلة X. تاريخ الإرجاع مع تبديل أرقام الشهر واليوم.
على سبيل المثال، فيما يتعلق بـ 4/30/2015 الإدخال، يكون الإخراج هو 30/4/2009:

replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/")
replace() مثال خاص بـ KQL
round(X,Y) يرجع X مقربًا إلى عدد المنازل العشرية المحددة بواسطة Y. الافتراضي هو التقريب إلى عدد صحيح. round(3.5) round round(3.5)
rtrim(X,Y) يرجع X مع أحرف Y اقتطاع من الجانب الأيمن. في حالة Y لم يتم تحديدها، يتم اقتطاع المسافات وعلامات التبويب. rtrim(" ZZZZabcZZ ", " Z") trim_end() trim_end(@"[ Z]+",A)
searchmatch(X) ترجع TRUE إذا كان الحدث يطابق سلسلة البحثX. searchmatch("foo AND bar") iif() iif(field has "X","Yes","No")
split(X,"Y") ترجع X كخانة متعددة القيم، مقسمة حسب المحدد Y. split(address, ";") split() split(address, ";")
sqrt(X) يرجع الجذر التربيعي لرقم X. sqrt(9) sqrt() sqrt(9)
strftime(X,Y) ترجع قيمة X وقت الفترة المعروضة باستخدام التنسيق المحدد بواسطة Y. strftime(_time, "%H:%M") format_datetime() format_datetime(time,'HH:mm')
strptime(X,Y) بالنظر إلى الوقت الذي تمثله سلسلة X، ترجع القيمة التي حللت من التنسيق Y. strptime(timeStr, "%H:%M") format_datetime() مثال خاص بـ KQL
substr(X,Y,Z) يرجع حقل X سلسلة فرعية من موضع البدء (مستند إلى واحد) Y للأحرف Z (اختياري). substr("string", 1, 3) substring() substring("string", 0, 3)
time() يرجع وقت ساعة الحائط بدقة ميكروثانية. time() format_datetime() مثال خاص بـ KQL
tonumber(X,Y) تحول سلسلة X الإدخال إلى رقم، إذ أن Y (القيمة الافتراضية الاختيارية هي 10) تحدد قاعدة الرقم الذي سيحول إليه. tonumber("0A4",16) toint() toint("123")
tostring(X,Y) الوصف مثال على SPL tostring() tostring(123)
typeof(X) ترجع تمثيل سلسلة لنوع الحقل. typeof(12) gettype() gettype(12)
urldecode(X) يرجع عنوان URL X الذي تم فك ترميزه. مثال على SPL url_decode مثال خاص بـ KQL

case(X,"Y",…) مثال SPL

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

case(X,"Y",…) مثال KQL

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

if(X,Y,Z) مثال KQL

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

isint(X) مثال KQL

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

isstr(X) مثال KQL

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

like(X,"y") على سبيل المثال

… | where field has "addr"

… | where field contains "addr"

… | where field startswith "addr"

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

min(X,…) مثال KQL

min_of (expr_1, expr_2 ...)

…|summarize min(expr)

…| summarize arg_min(Price,*) by Product

mvfilter(X) مثال KQL

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

mvjoin(X,Y) مثال KQL

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

relative time(X,Y) مثال KQL

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

replace(X,Y,Z) مثال KQL

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

strptime(X,Y) مثال KQL

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

time() مثال KQL

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

tostring(X,Y)

ترجع قيمة X حقل كسلسلة.

  • في حالة كانت قيمة X رقمًا، X يعاد تنسيقها إلى قيمة سلسلة.
  • إذا كانت X قيمة منطقية، X يعاد تنسيقها إلى TRUE أو FALSE.
  • في حالة كانت X الوسيطة رقمًا، فإن الوسيطة Y الثانية اختيارية ويمكن أن تكون hex إما (تحويل X إلى رقم سداسي عشري)، commas أو (تنسيقات X بفواصل ومنزلتين عشريتين)، أو duration (تحويل X من تنسيق زمني بالثواني إلى تنسيق زمني قابل للقراءة: HH:MM:SS).
tostring(X,Y) مثال SPL

هذا المثال يرجع:

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

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

urldecode(X) مثال SPL

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

مثال KQL للأوامر الشائعة stats

الأمر الخاص بـ SPL ‏‏الوصف أمر KQL مثال خاص بـ KQL
avg(X) ترجع متوسط قيم الحقل X. avg() avg(X)
count(X) ترجع عدد تكرارات الحقل X. للإشارة إلى قيمة حقل معينة لمطابقتها، نسق X باعتباره eval(field="value"). count() summarize count()
dc(X) ترجع عدد القيم المميزة للحقل X. dcount() …\| summarize countries=dcount(country) by continent
earliest(X) ترجع القيمة التي تمت عرضها حسب الترتيب الزمني لـ X. arg_min() … \| summarize arg_min(TimeGenerated, *) by X
latest(X) يعرض القيمة التي تمت عرضها حسب الترتيب الزمني لـ X. arg_max() … \| summarize arg_max(TimeGenerated, *) by X
max(X) ترجع القيمة القصوى للحقل X. إذا كانت قيم X غير رقمية، يعثر على القيمة القصوى عبر الترتيب الأبجدي. max() …\| summarize max(X)
median(X) تعيد هذه الدالة القيمة المتوسطة للحقل X. القيمة المئوية() …\| summarize percentile(X, 50)
min(X) تعيد القيمة القصوى للحقل X. إذا كانت قيم X غير رقمية، يعثر على القيمة الدنيا من خلال الترتيب الأبجدي. min() …\| summarize min(X)
mode(X) ترجع القيمة الأكثر تكراراً للحقل X. top-hitters() …\| top-hitters 1 of Y by X
perc(Y) ترجع القيمة المئوية X للحقل Y. على سبيل المثال، perc5(total) ترجع القيمة المئوية الخامسة الخاصة بحقل total. القيمة المئوية() …\| summarize percentile(Y, 5)
range(X) ترجع الفرق بين القيم القصوى والحد الأدنى للحقل X. range() range(1, 3)
stdev(X) يرجع نموذج الانحراف المعياري للحقل X. stdev stdev()
stdevp(X) يرجع الانحراف المعياري لفحص المحتوى للحقل X. stdevp() stdevp()
sum(X) يرجع مجموع قيم الحقل X. sum() sum(X)
sumsq(X) يرجع مجموع مربعات قيم الحقل X.
values(X) ترجع قائمة بجميع القيم المميزة للحقل X كإدخال متعدد القيم. ترتب القيم أبجديًا. make_set() …\| summarize r = make_set(X)
var(X) يرجع تباين العينة للحقل X. variance variance(X)

الخطوات التالية

في هذه المقالة، تعلمت كيفية تعيين قواعد الترحيل الخاصة بك من Splunk إلى Azure Sentinel.