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

توضح هذه المقالة كيفية تحديد قواعد الكشف عن ArcSight ومقارنتها وترحيلها إلى قواعد التحليلات Microsoft Sentinel.

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

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

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

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

لترحيل قواعد التحليلات إلى Microsoft Sentinel:

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

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

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

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

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

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

      في Microsoft Sentinel، انتقل إلى علامة التبويب قوالب قاعدة تحليلات > التكوين>، وقم بإنشاء وتحديث كل قاعدة تحليلات ذات صلة.

      لتعلم كيفية إنشاء القواعد من القوالب المدمجة، راجع إنشاء قواعد التحليلات المجدولة من القوالب.

    • إذا كان لديك اكتشافات لا تغطيها القواعد المضمنة في Microsoft Sentinel، فجرب محول استعلام عبر الإنترنت، مثل Uncoder.io لتحويل استعلاماتك إلى KQL.

      حدد شرط المشغل وإجراء القاعدة، ثم قم بإنشاء استعلام KQL ومراجعته.

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

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

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

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

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

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

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

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

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

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

يساعدك هذا الجدول على توضيح مفهوم القاعدة في 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:

  1. احفظ الاستعلام التالي كدالة KQL بالاسم ExcludeValidUsers المستعار.

        SecurityEvent
        | where EventID == 4728
        | where isnotempty(SubjectDomainName)
        | where SubjectUserName =~ "AutoMatedService"
        | project SubjectUserName
    
  2. استخدم الاستعلام التالي لتصفية ExcludeValidUsers الاسم المستعار.

        SecurityEvent    
        | where EventID == 4728
        | where isnotempty(SubjectDomainName) or 
        isnotempty(TargetDomainName)
        | where SubjectUserName !in (ExcludeValidUsers)
    

كخيار ثالث، استخدم دالة معلمة:

  1. إنشاء دالة معلمة بالاسم ExcludeValidUsers والاسم المستعار.

  2. حدد معلمات الدالة. على سبيل المثال:

        Tbl: (TimeGenerated:datetime, Computer:string, 
        EventID:string, SubjectDomainName:string, 
        TargetDomainName:string, SubjectUserName:string)
    
  3. parameter تحتوي الدالة على الاستعلام التالي:

        Tbl
        | where SubjectUserName !~ "AutoMatedService"
    
  4. قم بتشغيل الاستعلام التالي لاستدعاء دالة المعلمة:

        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

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