تجميع بيانات Microsoft Sentinel مع قواعد الملخص (معاينة)
استخدم قواعد الملخص في Microsoft Sentinel لتجميع مجموعات كبيرة من البيانات في الخلفية للحصول على تجربة عمليات أمان أكثر سلاسة عبر جميع طبقات السجل. يتم تحويل بيانات الملخص برمجيا مسبقا في جداول السجل المخصصة وتوفر أداء استعلام سريع، بما في ذلك الاستعلامات التي يتم تشغيلها على البيانات المشتقة من مستويات السجل منخفضة التكلفة. يمكن أن تساعد قواعد الملخص في تحسين بياناتك من أجل:
- التحليل والتقارير، خاصة عبر مجموعات البيانات الكبيرة والنطاقات الزمنية، كما هو مطلوب لتحليل الأمان والحوادث، وتقارير الأعمال الشهرية أو السنوية، وما إلى ذلك.
- توفير التكاليف على السجلات المطولة، والتي يمكنك الاحتفاظ بها بأقل قدر ممكن أو طالما كنت بحاجة إلى مستوى سجل أقل تكلفة، وإرسالها كبيانات ملخصة فقط إلى جدول Analytics للتحليل والتقارير.
- الأمان وخصوصية البيانات، عن طريق إزالة تفاصيل الخصوصية أو تعتيمها في البيانات القابلة للمشاركة الملخصة والحد من الوصول إلى الجداول التي تحتوي على بيانات أولية.
الوصول إلى نتائج قاعدة ملخص عبر لغة استعلام Kusto (KQL) عبر أنشطة الكشف والتحقيق والتتبع وإعداد التقارير. استخدم نتائج قاعدة التلخيص لفترات أطول في التحقيقات التاريخية والتتبع وأنشطة التوافق.
يتم تخزين نتائج قاعدة الملخص في جداول منفصلة ضمن خطة بيانات التحليلات ، ويتم تحصيل الرسوم وفقا لذلك. لمزيد من المعلومات حول خطط البيانات وتكاليف التخزين، راجع تحديد خطة جدول استنادا إلى أنماط الاستخدام في مساحة عمل Log Analytics
هام
قواعد الملخص موجودة حاليا في PREVIEW. راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure للحصول على شروط قانونية إضافية تنطبق على ميزات Azure الموجودة في الإصدار التجريبي أو المعاينة أو غير ذلك من المزايا التي لم يتم إصدارها بعد في التوفر العام.
يتوفر Microsoft Sentinel بشكل عام داخل النظام الأساسي لعمليات الأمان الموحدة من Microsoft في مدخل Microsoft Defender. للمعاينة، يتوفر Microsoft Sentinel في مدخل Defender بدون Microsoft Defender XDR أو ترخيص E5. لمزيد من المعلومات، راجع Microsoft Sentinel في مدخل Microsoft Defender.
المتطلبات الأساسية
لإنشاء قواعد الملخص في Microsoft Sentinel:
يجب تمكين Microsoft Sentinel في مساحة عمل واحدة على الأقل، واستهلاك السجلات بنشاط.
يجب أن تكون قادرا على الوصول إلى Microsoft Sentinel باستخدام أذونات Microsoft Sentinel Contributor. لمزيد من المعلومات، راجع الأدوار والأذونات في Microsoft Sentinel.
لإنشاء قواعد ملخص في مدخل Microsoft Defender، يجب أولا إلحاق مساحة العمل بمدخل Defender. لمزيد من المعلومات، راجع توصيل Microsoft Sentinel بمدخل Microsoft Defender.
نوصي بتجربة استعلام قاعدة الملخص في صفحة السجلات قبل إنشاء القاعدة. تحقق من أن الاستعلام لا يصل إلى حد الاستعلام أو يقترب منه، وتحقق من أن الاستعلام ينتج المخطط المقصود والنتائج المتوقعة. إذا كان الاستعلام قريبا من حدود الاستعلام، ففكر في استخدام أصغر binSize
لمعالجة بيانات أقل لكل سلة. يمكنك أيضا تعديل الاستعلام لإرجاع عدد أقل من السجلات أو إزالة الحقول ذات الحجم الأعلى.
إنشاء قاعدة ملخص
إنشاء قاعدة ملخص جديدة لتجميع مجموعة كبيرة معينة من البيانات في جدول ديناميكي. قم بتكوين تكرار القاعدة لتحديد عدد المرات التي يتم فيها تحديث مجموعة البيانات المجمعة من البيانات الأولية.
في مدخل Microsoft Azure، من قائمة التنقل في Microsoft Sentinel، ضمن Configuration، حدد Summary rules (Preview). في مدخل Defender، حدد Microsoft Sentinel > Configuration > Summary rules (Preview). على سبيل المثال:
حدد + Create وأدخل التفاصيل التالية:
الاسم. أدخل اسما ذا معنى للقاعدة الخاصة بك.
الوصف. أدخل وصفا اختياريا.
جدول الوجهة. حدد جدول السجل المخصص حيث يتم تجميع بياناتك:
إذا حددت جدول سجل مخصص موجود، فحدد الجدول الذي تريد استخدامه.
إذا قمت بتحديد جدول سجل مخصص جديد، أدخل اسما ذا معنى للجدول. يستخدم اسم الجدول الكامل بناء الجملة التالي:
<tableName>_CL
.
نوصي بتمكين إعدادات تشخيص SummaryLogs على مساحة العمل الخاصة بك للحصول على رؤية للتشغيلات التاريخية والفشل. إذا لم يتم تمكين إعدادات تشخيص SummaryLogs ، فستتم مطالبتك بتمكينها في منطقة إعدادات التشخيص.
إذا تم تمكين إعدادات تشخيص SummaryLogs بالفعل، ولكنك تريد تعديل الإعدادات، فحدد تكوين إعدادات التشخيص المتقدمة. عند العودة إلى صفحة معالج قاعدة الملخص، تأكد من تحديد تحديث لتحديث تفاصيل الإعداد.
هام
تحتوي إعدادات تشخيص SummaryLogs على تكاليف إضافية. لمزيد من المعلومات، راجع إعدادات التشخيص في Azure Monitor.
حدد Next: Set summary logic > للمتابعة.
في صفحة تعيين منطق الملخص، أدخل استعلام الملخص. على سبيل المثال، لسحب المحتوى من Google Cloud Platform، قد تحتاج إلى إدخال:
GCPAuditLogs | where ServiceName == 'pubsub.googleapis.com' | summarize count() by Severity
لمزيد من المعلومات، راجع نموذج سيناريوهات قاعدة الملخص ولغة استعلام Kusto (KQL) في Azure Monitor.
حدد معاينة النتائج لإظهار مثال على البيانات التي تجمعها مع الاستعلام الذي تم تكوينه.
في منطقة جدولة الاستعلام، حدد التفاصيل التالية:
- كم مرة تريد تشغيل القاعدة
- ما إذا كنت تريد تشغيل القاعدة بأي نوع من التأخير، في دقائق
- عندما تريد بدء تشغيل القاعدة
تستند الأوقات المحددة في الجدولة إلى العمود الموجود
timegenerated
في بياناتكحدد Next: Review + create >>Save لإكمال قاعدة الملخص.
يتم سرد قواعد الملخص الموجودة في صفحة قواعد الملخص (معاينة)، حيث يمكنك مراجعة حالة القاعدة. لكل قاعدة، حدد قائمة الخيارات في نهاية الصف لاتخاذ أي من الإجراءات التالية:
- عرض البيانات الحالية للقاعدة في صفحة السجلات ، كما لو كنت تريد تشغيل الاستعلام على الفور
- عرض محفوظات التشغيل للقاعدة المحددة
- تعطيل القاعدة أو تمكينها.
- تحرير تكوين القاعدة
لحذف قاعدة، حدد صف القاعدة ثم حدد حذف في شريط الأدوات في أعلى الصفحة.
إشعار
يدعم Azure Monitor أيضا إنشاء قواعد ملخص عبر واجهة برمجة التطبيقات أو قالب Azure Resource Monitor (ARM). لمزيد من المعلومات، راجع إنشاء قاعدة ملخص أو تحديثها.
نموذج سيناريوهات قاعدة التلخيص
يراجع هذا القسم السيناريوهات الشائعة لإنشاء قواعد الملخص في Microsoft Sentinel، وتوصياتنا حول كيفية تكوين كل قاعدة. لمزيد من المعلومات والأمثلة، راجع استخدام قواعد الملخص مع السجلات المساعدة (عملية العينة) ومصادر السجل لاستخدامها في استيعاب السجلات المساعدة.
العثور بسرعة على عنوان IP ضار في حركة مرور الشبكة
السيناريو: أنت صياد تهديد، وأحد أهداف فريقك هو تحديد جميع مثيلات تفاعل عنوان IP ضار في سجلات حركة مرور الشبكة من حادث نشط، في آخر 90 يوما.
التحدي: يبتعب Microsoft Sentinel حاليا تيرابايت متعددة من سجلات الشبكة يوميا. تحتاج إلى التنقل عبرها بسرعة للعثور على تطابقات لعنوان IP الضار.
الحل: نوصي باستخدام قواعد الملخص للقيام بما يلي:
قم بإنشاء مجموعة بيانات ملخصة لكل عنوان IP متعلق بالحادث، بما في
SourceIP
ذلك ،MaliciousIP
DestinationIP
و،RemoteIP
و، و، و، و، و كل سمة مهمة، مثلIPType
،FirstTimeSeen
و، وLastTimeSeen
.تمكنك مجموعة بيانات الملخص من البحث بسرعة عن عنوان IP محدد وتضييق النطاق الزمني حيث يتم العثور على عنوان IP. يمكنك القيام بذلك حتى عندما حدثت الأحداث التي تم البحث عنها منذ أكثر من 90 يوما، وهو ما يتجاوز فترة استبقاء مساحة العمل الخاصة بها.
في هذا المثال، قم بتكوين الملخص لتشغيله يوميا، بحيث يضيف الاستعلام سجلات ملخص جديدة كل يوم حتى تنتهي صلاحيته.
إنشاء قاعدة تحليلات تعمل لمدة أقل من دقيقتين مقابل مجموعة بيانات الملخص، والتعمق بسرعة في النطاق الزمني المحدد عندما تفاعل عنوان IP الضار مع شبكة الشركة.
تأكد من تكوين فواصل زمنية للتشغيل تصل إلى خمس دقائق كحد أدنى، لاستيعاب أحجام البيانات الأساسية الموجزة المختلفة. وهذا يضمن عدم وجود خسارة حتى عندما يكون هناك تأخير في استيعاب الحدث.
على سبيل المثال:
let csl_columnmatch=(column_name: string) { summarized_CommonSecurityLog | where isnotempty(column_name) | extend Date = format_datetime(TimeGenerated, "yyyy-MM-dd"), IPaddress = column_ifexists(column_name, ""), FieldName = column_name | extend IPType = iff(ipv4_is_private(IPaddress) == true, "Private", "Public") | where isnotempty(IPaddress) | project Date, TimeGenerated, IPaddress, FieldName, IPType, DeviceVendor | summarize count(), FirstTimeSeen = min(TimeGenerated), LastTimeSeen = min(TimeGenerated) by Date, IPaddress, FieldName, IPType, DeviceVendor }; union csl_columnmatch("SourceIP") , csl_columnmatch("DestinationIP") , csl_columnmatch("MaliciousIP") , csl_columnmatch("RemoteIP") // Further summarization can be done per IPaddress to remove duplicates per day on larger timeframe for the first run | summarize make_set(FieldName), make_set(DeviceVendor) by IPType, IPaddress
قم بتشغيل بحث لاحق أو ارتباط مع بيانات أخرى لإكمال قصة الهجوم.
إنشاء تنبيهات حول تطابقات التحليل الذكي للمخاطر مع بيانات الشبكة
إنشاء تنبيهات حول تطابقات التحليل الذكي للمخاطر مقابل بيانات الشبكة صاخبة وعالية الحجم وذات قيمة أمان منخفضة.
السيناريو: تحتاج إلى إنشاء قاعدة تحليلات لسجلات جدار الحماية لمطابقة أسماء المجالات في النظام الذي تمت زيارته مقابل قائمة اسم مجال التحليل الذكي للمخاطر.
معظم مصادر البيانات هي سجلات أولية صاخبة ومرتفعة الحجم، ولكن لها قيمة أمان أقل، بما في ذلك عناوين IP وحركة مرور جدار حماية Azure وحركة مرور Fortigate وما إلى ذلك. هناك حجم إجمالي يبلغ حوالي 1 تيرابايت في اليوم.
التحدي: يتطلب إنشاء قواعد منفصلة تطبيقات منطقية متعددة، ما يتطلب نفقات إضافية للإعداد والصيانة وتكاليف.
الحل: نوصي باستخدام قواعد الملخص للقيام بما يلي:
إنشاء قاعدة ملخص:
قم بتوسيع الاستعلام لاستخراج الحقول الرئيسية، مثل عنوان المصدر وعنوان الوجهة ومنفذ الوجهة من جدول CommonSecurityLog_CL ، وهو CommonSecurityLog مع الخطة الإضافية.
قم بإجراء بحث داخلي مقابل مؤشرات التحليل الذكي للمخاطر النشطة لتحديد أي تطابقات مع عنوان المصدر الخاص بنا. يتيح لك ذلك الرجوع إلى بياناتك مع التهديدات المعروفة.
عرض المعلومات ذات الصلة، بما في ذلك الوقت الذي تم إنشاؤه ونوع النشاط وأي عناوين IP مصدر ضارة، إلى جانب تفاصيل الوجهة. قم بتعيين التردد الذي تريد تشغيل الاستعلام به وجدول الوجهة، مثل MaliciousIPDetection . تكون النتائج في هذا الجدول في المستوى التحليلي ويتم تحصيل الرسوم وفقا لذلك.
إنشاء تنبيه:
إنشاء قاعدة تحليلات في Microsoft Sentinel تنبه استنادا إلى النتائج من جدول MaliciousIPDetection . هذه الخطوة حاسمة للكشف الاستباقي عن التهديدات والاستجابة للحوادث.
نموذج قاعدة التلخيص:
CommonSecurityLog_CL
| extend sourceAddress = tostring(parse_json(Message).sourceAddress), destinationAddress = tostring(parse_json(Message).destinationAddress), destinationPort = tostring(parse_json(Message).destinationPort)
| lookup kind=inner (ThreatIntelligenceIndicator | where Active == true ) on $left.sourceAddress == $right.NetworkIP
| project TimeGenerated, Activity, Message, DeviceVendor, DeviceProduct, sourceMaliciousIP =sourceAddress, destinationAddress, destinationPort
استخدام قواعد الملخص مع سجلات مساعدة (عملية عينة)
يصف هذا الإجراء عملية عينة لاستخدام قواعد الملخص مع سجلات مساعدة، باستخدام اتصال مخصص تم إنشاؤه عبر قالب ARM لاستيعاب بيانات CEF من Logstash.
إعداد موصل CEF المخصص من Logstash:
انشر قالب ARM التالي إلى مساحة عمل Microsoft Sentinel لإنشاء جدول مخصص مع قواعد جمع البيانات (DCR) ونقطة نهاية تجميع البيانات (DCE):
لاحظ التفاصيل التالية من إخراج قالب ARM:
tenant_id
data_collection_endpoint
dcr_immutable_id
dcr_stream_name
قم بإنشاء تطبيق Microsoft Entra، ولاحظ معرف العميل والبيانات السرية للتطبيق. لمزيد من المعلومات، راجع البرنامج التعليمي: إرسال البيانات إلى سجلات Azure Monitor باستخدام واجهة برمجة تطبيقات استيعاب السجلات (مدخل Azure).
استخدم نموذج البرنامج النصي لتحديث ملف تكوين Logstash. تقوم التحديثات بتكوين Logstash لإرسال سجلات CEF إلى الجدول المخصص الذي تم إنشاؤه بواسطة قالب ARM، وتحويل بيانات JSON إلى تنسيق DCR. في هذا البرنامج النصي، تأكد من استبدال قيم العناصر النائبة بالقيم الخاصة بك للجدول المخصص وMicrosoft Entra التطبيق الذي قمت بإنشائه سابقا.
تحقق لمعرفة أن بيانات CEF تتدفق من Logstash كما هو متوقع. على سبيل المثال، في Microsoft Sentinel، انتقل إلى صفحة السجلات وقم بتشغيل الاستعلام التالي:
CefAux_CL | take 10
إنشاء قواعد ملخصة تجمع بيانات CEF الخاصة بك. على سبيل المثال:
بيانات حدث البحث عن القلق (IoC): البحث عن IoCs معينة عن طريق تشغيل استعلامات ملخص مجمعة لجلب تكرارات فريدة، ثم الاستعلام عن تلك التكرارات فقط للحصول على نتائج أسرع. يوضح المثال التالي مثالا على كيفية إحضار موجز فريد
Source Ip
مع بيانات التعريف الأخرى، والتي يمكن استخدامها بعد ذلك مقابل عمليات بحث IoC:// Daily Network traffic trend Per Destination IP along with Data transfer stats // Frequency - Daily - Maintain 30 day or 60 Day History. Custom_CommonSecurityLog | extend Day = format_datetime(TimeGenerated, "yyyy-MM-dd") | summarize Count= count(), DistinctSourceIps = dcount(SourceIP), NoofByesTransferred = sum(SentBytes), NoofBytesReceived = sum(ReceivedBytes) by Day,DestinationIp, DeviceVendor
الاستعلام عن أساس ملخص لاكتشاف الحالات الشاذة. بدلا من تشغيل استعلاماتك مقابل فترات تاريخية كبيرة، مثل 30 أو 60 يوما، نوصي باستيعاب البيانات في سجلات مخصصة، ثم الاستعلام فقط عن البيانات الأساسية الموجزة، مثل عمليات الكشف عن الشذوذ في السلاسل الزمنية. على سبيل المثال:
// Time series data for Firewall traffic logs let starttime = 14d; let endtime = 1d; let timeframe = 1h; let TimeSeriesData = Custom_CommonSecurityLog | where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime))) | where isnotempty(DestinationIP) and isnotempty(SourceIP) | where ipv4_is_private(DestinationIP) == false | project TimeGenerated, SentBytes, DeviceVendor | make-series TotalBytesSent=sum(SentBytes) on TimeGenerated from startofday(ago(starttime)) to startofday(ago(endtime)) step timeframe by DeviceVendor
راجع المزيد من المعلومات حول العناصر التالية المستخدمة في الأمثلة السابقة، في وثائق Kusto:
- عبارة let
- حيث عامل التشغيل
- توسيع عامل التشغيل
- عامل تشغيل المشروع
- تلخيص عامل التشغيل
- عامل تشغيل البحث
- عامل تشغيل الاتحاد
- عامل تشغيل سلسلة صنع
- الدالة isnotempty()
- الدالة format_datetime()
- الدالة column_ifexists()
- الدالة iff()
- الدالة ipv4_is_private()
- دالة min()
- الدالة tostring()
- دالة ago()
- الدالة startofday()
- الدالة parse_json()
- دالة التجميع count()
- دالة تجميع make_set()
- دالة تجميع dcount()
- دالة التجميع sum()
لمزيد من المعلومات حول KQL، راجع نظرة عامة على لغة استعلام Kusto (KQL).
الموارد الأخرى: