إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية تحديد قواعد الكشف عن ArcSight ومقارنتها وترحيلها إلى قواعد التحليلات Microsoft Sentinel.
تحديد القواعد وترحيلها
يستخدم Microsoft Sentinel تحليلات التعلم الآلي لإنشاء حوادث عالية الدقة وقابلة للتنفيذ، وقد تكون بعض عمليات الكشف الحالية زائدة عن الحاجة في Microsoft Sentinel. لذلك، لا تقم بترحيل جميع قواعد الكشف والتحليلات بشكل أعمى. راجع الاعتبارات التالية أثناء تحديد قواعد الكشف الحالية.
- تأكد من تحديد حالات الاستخدام التي تبرر ترحيل القاعدة، مع مراعاة أولوية الأعمال وكفاءتها.
- تحقق من فهم أنواع القواعد Microsoft Sentinel.
- تحقق من فهمك لمصطلحات القاعدة.
- راجع أي قواعد لم تتسبب في أي تنبيهات خلال الستة إلى الاثني عشر شهرا الماضية، وحدد ما إذا كانت لا تزال ذات صلة.
- قم بإزالة التهديدات أو التنبيهات منخفضة المستوى التي تتجاهلها بشكل روتيني.
- استخدم الوظائف الموجودة، وتحقق مما إذا كانت قواعد التحليلات المضمنة في Microsoft Sentinel قد تعالج حالات الاستخدام الحالية. نظرا لأن Microsoft Sentinel يستخدم تحليلات التعلم الآلي لإنتاج حوادث عالية الدقة وقابلة للتنفيذ، فمن المحتمل أن بعض عمليات الكشف الحالية لن تكون مطلوبة بعد الآن.
- قم بتأكيد مصادر البيانات المتصلة ومراجعة أساليب اتصال البيانات. أعد زيارة محادثات جمع البيانات لضمان عمق البيانات واتساعها عبر حالات الاستخدام التي تخطط لاكتشافها.
- استكشف موارد المجتمع مثل SOC Prime Threat Detection Marketplace للتحقق مما إذا كانت قواعدك متوفرة أم لا.
- ضع في اعتبارك ما إذا كان محول استعلام عبر الإنترنت مثل Uncoder.io قد يعمل مع القواعد الخاصة بك.
- إذا لم تكن القواعد متوفرة أو لا يمكن تحويلها، فيجب إنشاؤها يدويا، باستخدام استعلام KQL. راجع تعيين القواعد لإنشاء استعلامات جديدة.
تعرف على المزيد حول أفضل الممارسات لترحيل قواعد الكشف.
لترحيل قواعد التحليلات إلى Microsoft Sentinel:
تحقق من وجود نظام اختبار لكل قاعدة تريد ترحيلها.
قم بإعداد عملية التحقق من الصحة للقواعد التي تم ترحيلها، بما في ذلك سيناريوهات الاختبار الكاملة والبرامج النصية.
تأكد من أن فريقك لديه موارد مفيدة لاختبار القواعد التي تم ترحيلها.
تأكد من أن لديك أي مصادر بيانات مطلوبة متصلة، وراجع أساليب اتصال البيانات.
تحقق مما إذا كانت عمليات الكشف الخاصة بك متوفرة كقوالب مضمنة في Microsoft Sentinel:
إذا كانت القواعد المضمنة كافية، فاستخدم قوالب القواعد المضمنة لإنشاء قواعد لمساحة العمل الخاصة بك.
في Microsoft Sentinel، انتقل إلى علامة التبويب قوالب قاعدة تحليلات > التكوين>، وقم بإنشاء وتحديث كل قاعدة تحليلات ذات صلة.
لتعلم كيفية إنشاء القواعد من القوالب المدمجة، راجع إنشاء قواعد التحليلات المجدولة من القوالب.
إذا كان لديك اكتشافات لا تغطيها القواعد المضمنة في Microsoft Sentinel، فجرب محول استعلام عبر الإنترنت، مثل Uncoder.io لتحويل استعلاماتك إلى KQL.
حدد شرط المشغل وإجراء القاعدة، ثم قم بإنشاء استعلام KQL ومراجعته.
إذا لم تكن القواعد المضمنة أو محول القواعد عبر الإنترنت كافيا، فستحتاج إلى إنشاء القاعدة يدويا. في مثل هذه الحالات، استخدم الخطوات التالية لبدء إنشاء القاعدة الخاصة بك:
حدد مصادر البيانات التي تريد استخدامها في القاعدة الخاصة بك. ستحتاج إلى إنشاء جدول تعيين بين مصادر البيانات وجداول البيانات في Microsoft Sentinel لتحديد الجداول التي تريد الاستعلام فيها.
حدد أي سمات أو حقول أو كيانات في بياناتك تريد استخدامها في القواعد الخاصة بك.
حدد معايير القاعدة والمنطق. في هذه المرحلة، قد تحتاج إلى استخدام قوالب القواعد كنماذج لكيفية إنشاء استعلامات KQL الخاصة بك.
ضع في اعتبارك عوامل التصفية وقواعد الارتباط والقوائم النشطة والمجموعات المرجعية وقوائم المشاهدة والكشف عن الحالات الشاذة والتجميعات وما إلى ذلك. قد تستخدم المراجع التي يوفرها SIEM القديم لربط بناء جملة استعلام ArcSight ب KQL.
حدد شرط المشغل وإجراء القاعدة، ثم قم بإنشاء استعلام KQL ومراجعته. عند مراجعة الاستعلام الخاص بك، ضع في اعتبارك موارد إرشادات تحسين KQL.
اختبر القاعدة مع كل حالة من حالات الاستخدام ذات الصلة. إذا لم يوفر النتائج المتوقعة، فقد تحتاج إلى مراجعة KQL واختباره مرة أخرى.
عندما تكون راضيا، يمكنك التفكير في ترحيل القاعدة. إنشاء دليل مبادئ لإجراء القاعدة حسب الحاجة. لإنشاء واستخدام دفاتر اللعب لإجراءات القواعد، راجع أتمتة الاستجابة للتهديدات باستخدام دفاتر اللعب في Microsoft Sentinel.
تعرف على المزيد حول قواعد التحليلات:
- قواعد التحليلات المجدولة في Microsoft Sentinel: استخدم تجميع التنبيهات لتقليل إرهاق التنبيهات عن طريق تجميع التنبيهات التي تحدث ضمن إطار زمني معين.
- تعيين حقول البيانات إلى الكيانات في Microsoft Sentinel: لتمكين مهندسي SOC من تعريف الكيانات كجزء من الأدلة التي يجب تتبعها أثناء التحقيق. كما يتيح تعيين الكيان لمحللي SOC الاستفادة من الرسم البياني للتحقيق البديهي الذي يمكن أن يساعد في تقليل الوقت والجهد.
- التحقيق في الحوادث باستخدام بيانات UEBA: كمثال على كيفية استخدام الأدلة لعرض الأحداث والتنبيهات وأي إشارات مرجعية مرتبطة بحادث معين في لوحة معاينة الحادث.
- لغة Kusto Query Language (KQL): يمكنك استخدام KQL لإرسال طلبات القراءة فقط إلى قاعدة بيانات Log Analytics الخاصة بك لمعالجة البيانات وإرجاع النتائج. يتم استخدام KQL أيضا عبر خدمات Microsoft الأخرى، مثل Microsoft Defender لنقطة النهايةوApplication Insights.
مقارنة مصطلحات القاعدة
يساعدك هذا الجدول على توضيح مفهوم القاعدة في Microsoft Sentinel مقارنة ب ArcSight.
| ArcSight | Microsoft Sentinel | |
|---|---|---|
| نوع القاعدة | - قاعدة التصفية - قاعدة الانضمام - قاعدة القائمة النشطة - والمزيد |
- الاستعلام المجدول - الاندماج - الأمان من Microsoft - تحليلات السلوك التعلم الآلي (ML) |
| معايير | تعريف في شروط القاعدة | تعريف في KQL |
| شرط المشغل | - تعريف في الفعل - تعريف في التجميع (لتجميع الأحداث) |
الحد: عدد نتائج الاستعلام |
| العمل | - حقل الحدث المعين - إرسال إشعار - إنشاء قضية جديدة - إضافة إلى القائمة النشطة - والمزيد |
- إنشاء تنبيه أو حادث - يتكامل مع تطبيقات المنطق |
تعيين نماذج القواعد ومقارنتها
استخدم العينات التالية لمقارنة قواعد اكتشاف ArcSight مع استعلامات Microsoft Sentinel المكافئة المكتوبة بلغة Kusto Query Language (KQL).
| القاعده | الوصف | قاعدة الكشف عن العينات (ArcSight) | نموذج استعلام KQL | الموارد |
|---|---|---|---|---|
عامل التصفية (AND) |
نموذج قاعدة مع AND شروط. يجب أن يتطابق الحدث مع جميع الشروط. |
مثال على عامل التصفية (AND) | مثال على عامل التصفية (AND) | عامل تصفية السلسلة: - مؤثرات السلسلة عامل التصفية العددي: - المؤثرات العددية عامل تصفية التاريخ والوقت: - منذ - تاريخ الزمن - بين - الآن تحليل: - تحليل - مقتطف - parse_json - parse_csv - parse_path - parse_url |
عامل التصفية (OR) |
نموذج قاعدة مع OR شروط. يمكن أن يتطابق الحدث مع أي من الشروط. |
مثال على عامل التصفية (OR) | مثال على عامل التصفية (OR) |
-
مؤثرات السلسلة - في |
| عامل تصفية متداخل | نموذج قاعدة مع شروط تصفية متداخلة. تتضمن MatchesFilter القاعدة عبارة ، والتي تتضمن أيضا شروط التصفية. |
مثال عامل تصفية متداخل | مثال عامل تصفية متداخل |
-
استخدم دوال KQL لتسريع التحليل - إثراء أحداث الأمان في Windows بدالة معلمية - انضم - حيث |
| قائمة نشطة (بحث) | قاعدة بحث نموذجية تستخدم العبارة InActiveList . |
مثال على القائمة النشطة (البحث) | مثال على القائمة النشطة (البحث) | - قائمة المراقبة تعادل ميزة القائمة النشطة. تعرف على المزيد حول قوائم المشاهدة. - طرق أخرى لتنفيذ عمليات البحث |
| الارتباط (مطابقة) | قاعدة عينة تحدد شرطا مقابل مجموعة من الأحداث الأساسية، باستخدام العبارة Matching Event . |
مثال على الارتباط (المطابقة) | مثال على الارتباط (المطابقة) | عامل تشغيل الانضمام: - انضم - انضم إلى نافذة الزمن - خلط - البث - الاتحاد تعريف العبارة: - لتكن تجميع: - make_set - make_list - make_bag - bag_pack |
| الارتباط (النافذة الزمنية) | قاعدة عينة تحدد شرطا مقابل مجموعة من الأحداث الأساسية، باستخدام العبارة Matching Event ، وتستخدم شرط عامل التصفية Wait time . |
مثال على الارتباط (النافذة الزمنية) | مثال على الارتباط (النافذة الزمنية) |
-
انضم - قواعد Microsoft Sentinel وبيان الانضمام |
مثال على عامل التصفية (AND): ArcSight
فيما يلي قاعدة تصفية نموذجية مع AND شروط في ArcSight.
مثال على عامل التصفية (AND): KQL
فيما يلي قاعدة عامل التصفية مع AND الشروط في KQL.
SecurityEvent
| where EventID == 4728
| where SubjectUserName =~ "AutoMatedService"
| where isnotempty(SubjectDomainName)
تفترض هذه القاعدة أن عامل مراقبة Azure (AMA) يجمع أحداث أمن Windows. لذلك، تستخدم القاعدة جدول Microsoft Sentinel SecurityEvent.
ضع في اعتبارك أفضل الممارسات التالية:
- لتحسين استعلاماتك، تجنب عوامل التشغيل غير الحساسة لحالة الأحرف عندما يكون ذلك ممكنا:
=~. - استخدم
==إذا كانت القيمة غير حساسة لحالة الأحرف. - قم بترتيب عوامل التصفية عن طريق البدء بالجملة
where، والتي تقوم بتصفية معظم البيانات.
مثال على عامل التصفية (OR): ArcSight
فيما يلي قاعدة تصفية نموذجية مع OR شروط في ArcSight.
مثال على عامل التصفية (OR): KQL
فيما يلي بعض الطرق لكتابة قاعدة التصفية مع OR الشروط في KQL.
كخيار أول، استخدم العبارة in :
SecurityEvent
| where SubjectUserName in
("Adm1","ServiceAccount1","AutomationServices")
كخيار ثان، استخدم العبارة or :
SecurityEvent
| where SubjectUserName == "Adm1" or
SubjectUserName == "ServiceAccount1" or
SubjectUserName == "AutomationServices"
في حين أن كلا الخيارين متطابقان في الأداء، نوصي بالخيار الأول، والذي يسهل قراءته.
مثال عامل تصفية متداخل: ArcSight
فيما يلي نموذج قاعدة تصفية متداخلة في ArcSight.
فيما يلي قاعدة لعامل التصفية /All Filters/Soc Filters/Exclude Valid Users .
مثال عامل تصفية متداخل: KQL
فيما يلي بعض الطرق لكتابة قاعدة التصفية مع OR الشروط في KQL.
كخيار أول، استخدم عامل تصفية مباشر مع عبارة where :
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName) or
isnotempty(TargetDomainName)
| where SubjectUserName !~ "AutoMatedService"
كخيار ثان، استخدم دالة KQL:
احفظ الاستعلام التالي كدالة KQL بالاسم
ExcludeValidUsersالمستعار.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) | where SubjectUserName =~ "AutoMatedService" | project SubjectUserNameاستخدم الاستعلام التالي لتصفية
ExcludeValidUsersالاسم المستعار.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) or isnotempty(TargetDomainName) | where SubjectUserName !in (ExcludeValidUsers)
كخيار ثالث، استخدم دالة معلمة:
إنشاء دالة معلمة بالاسم
ExcludeValidUsersوالاسم المستعار.حدد معلمات الدالة. على سبيل المثال:
Tbl: (TimeGenerated:datetime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)parameterتحتوي الدالة على الاستعلام التالي:Tbl | where SubjectUserName !~ "AutoMatedService"قم بتشغيل الاستعلام التالي لاستدعاء دالة المعلمة:
let Events = ( SecurityEvent | where EventID == 4728 ); ExcludeValidUsers(Events)
كخيار رابع، استخدم الدالة join :
let events = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
or isnotempty(TargetDomainName)
);
let ExcludeValidUsers = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
| where SubjectUserName =~ "AutoMatedService"
);
events
| join kind=leftanti ExcludeValidUsers on
$left.SubjectUserName == $right.SubjectUserName
Considerations
- نوصي باستخدام عامل تصفية مباشر مع عبارة
where(الخيار الأول) بسبب بساطته. للحصول على أداء محسن، تجنب استخدامjoin(الخيار الرابع). - لتحسين استعلاماتك، تجنب
=~عوامل التشغيل غير الحساسة لحالة الأحرف و!~عندما يكون ذلك ممكنا. استخدم عاملي==التشغيل و!=إذا لم تكن القيمة حساسة لحالة الأحرف.
مثال على القائمة النشطة (البحث): ArcSight
فيما يلي قاعدة قائمة نشطة (بحث) في ArcSight.
مثال على القائمة النشطة (البحث): KQL
مهم
قبل أن تدير هذا الاستعلام، أنشئ قائمة مراقبة حسابات الاستثناءCyber-Ark في Microsoft Sentinel وأضف حقل حساب.
يستخدم استعلام KQL التالي قائمة مراقبة حسابات الاستثناءات Cyber-Ark لتصفية نتائج البحث.
let Activelist=(
_GetWatchlist('Cyber-Ark Exception Accounts')
| project Account );
CommonSecurityLog
| where DestinationUserName in (Activelist)
| where DeviceVendor == "Cyber-Ark"
| where DeviceAction == "Get File Request"
| where DeviceCustomNumber1 != ""
| project DeviceAction, DestinationUserName,
TimeGenerated,SourceHostName,
SourceUserName, DeviceEventClassID
قم بترتيب عوامل التصفية عن طريق البدء بالجملة where التي تقوم بتصفية معظم البيانات.
مثال على الارتباط (المطابقة): ArcSight
فيما يلي نموذج لقاعدة ArcSight التي تحدد شرطا مقابل مجموعة من الأحداث الأساسية، باستخدام العبارة Matching Event .
مثال على الارتباط (المطابقة): KQL
يوضح مثال KQL التالي كيفية تنفيذ قاعدة ارتباط مطابقة ArcSight في Microsoft Sentinel.
let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2
on $left.TargetUserName==$right.TargetUserName
أفضل الممارسات
- لتحسين الاستعلام، تأكد من أن الجدول الأصغر موجود على الجانب الأيسر من الدالة
join. - إذا كان الجانب الأيسر من الجدول صغيرا نسبيا (حتى 100 K سجل)، أضف
hint.strategy=broadcastللحصول على أداء أفضل.
مثال على الارتباط (النافذة الزمنية): ArcSight
فيما يلي نموذج لقاعدة ArcSight التي تحدد شرطا مقابل مجموعة من الأحداث الأساسية، باستخدام العبارة Matching Event ، وتستخدم شرط عامل التصفية Wait time .
مثال على الارتباط (النافذة الزمنية): KQL
ينفذ مثال KQL التالي قاعدة ارتباط مع نافذة زمنية مكافئة لمثال ArcSight.
let waittime = 10m;
let lookback = 1d;
let event1 = (
SecurityEvent
| where TimeGenerated > ago(waittime+lookback)
| where EventID == 4728
| project event1_time = TimeGenerated,
event1_ID = EventID, event1_Activity= Activity,
event1_Host = Computer, TargetUserName,
event1_UPN=UserPrincipalName,
AccountUsedToAdd = SubjectUserName
);
let event2 = (
SecurityEvent
| where TimeGenerated > ago(waittime)
| where EventID == 4729
| project event2_time = TimeGenerated,
event2_ID = EventID, event2_Activity= Activity,
event2_Host= Computer, TargetUserName,
event2_UPN=UserPrincipalName,
AccountUsedToRemove = SubjectUserName
);
event1
| join kind=inner event2 on TargetUserName
| where event2_time - event1_time < lookback
| where tolong(event2_time - event1_time ) >=0
| project delta_time = event2_time - event1_time,
event1_time, event2_time,
event1_ID,event2_ID,event1_Activity,
event2_Activity, TargetUserName, AccountUsedToAdd,
AccountUsedToRemove,event1_Host,event2_Host,
event1_UPN,event2_UPN
مثال التجميع: ArcSight
فيما يلي نموذج لقاعدة ArcSight مع إعدادات التجميع: ثلاث تطابقات في غضون 10 دقائق.
مثال التجميع: KQL
يوضح استعلام KQL التالي كيفية الكشف عن ثلاث تطابقات أو أكثر باستخدام التجميع.
SecurityEvent
| summarize Count = count() by SubjectUserName,
SubjectDomainName
| where Count >3