دليل تحليل تهديدات Sysmon ، الجزء الأول





هذه المقالة هي الجزء الأول من سلسلة تحليل تهديدات Sysmon. جميع الأجزاء الأخرى من السلسلة:



الجزء 1. تقديم تحليل سجل Sysmon (نحن هنا)

الجزء 2. استخدام بيانات حدث Sysmon للكشف عن التهديدات

الجزء 3. تحليل تهديدات Sysmon المتعمق باستخدام الرسوم البيانية



إذا كنت تعمل في مجال أمن المعلومات ، فغالبًا ما يتعين عليك فهم في الهجمات المستمرة. إذا كانت لديك عين جيدة بالفعل ، يمكنك البحث عن نشاط غير قياسي في السجلات الخام الأولية - على سبيل المثال ، برنامج نصي PowerShell يقوم بتشغيل الأمر DownloadStringأو نص برمجي VBS يتظاهر بأنه ملف Word - مجرد التقليب خلال آخر نشاط في سجل أحداث Windows. ولكن هذا حقا صداع كبير. لحسن الحظ ، أنشأت Microsoft Sysmon ، مما يجعل تحليل الهجوم أبسط بكثير.



هل تريد فهم الأفكار الأساسية وراء التهديدات المعروضة في سجل Sysmon؟ قم بتنزيل دليل أحداث WMI كأداة تجسس وستفهم كيف يمكن للمطلعين مشاهدة الموظفين الآخرين بهدوء. المشكلة الرئيسية في العمل مع سجل أحداث Windows هي نقص المعلومات حول العمليات الرئيسية ، أي من المستحيل فهم التسلسل الهرمي للعمليات منه. في المقابل ، تحتوي إدخالات سجل Sysmon على معرّف عملية الوالدين واسمها وسطر الأوامر المطلوب تشغيله. شكرا لك مايكروسوفت.



في الجزء الأول من سلسلتنا ، سنرى ما يمكن عمله بالمعلومات الأساسية من Sysmon. في الجزء الثاني ، سنستفيد بشكل كامل من معلومات الأبوة لإنشاء هياكل مطابقة أكثر تعقيدًا تُعرف بالرسوم البيانية للتهديد. في الجزء الثالث ، سنلقي نظرة على خوارزمية بسيطة تقوم بمسح الرسم البياني للتهديد للبحث عن نشاط غير قياسي من خلال تحليل الرسم البياني "الوزن". وفي النهاية ، ستتلقى طريقة احتمالية نظيفة (ومفهومة) لاكتشاف التهديدات كمكافأة.





الجزء 1: تقديم تحليل سجل Sysmon



ما الذي يمكن أن يساعدك على فهم تعقيدات سجل الأحداث؟ في نهاية المطاف - SIEM. تطبيع الأحداث وتبسط تحليلها اللاحق. لكن ليس علينا الذهاب إلى هذا الحد على الأقل في البداية. في البداية ، لفهم مبادئ SIEM ، سيكون كافياً لتجربة أداة Sysmon المجانية الرائعة. ومن السهل بشكل مدهش العمل معها. استمروا ، مايكروسوفت!



ما هي ميزات Sysmon؟



باختصار - معلومات مفيدة وقابلة للقراءة حول العمليات (انظر الصور أدناه). ستجد مجموعة من التفاصيل المفيدة غير الموجودة في سجل أحداث Windows ، ولكن الأهم من ذلك ، الحقول التالية:

  • معرّف العملية (عشري ، وليس ست عشري!)
  • معرف العملية الأصلية
  • سطر أوامر العملية
  • سطر أوامر العملية الأم
  • تجزئة صورة الملف
  • أسماء صورة الملف


يتم تثبيت Sysmon كبرنامج تشغيل للجهاز وكخدمة - مزيد من المعلومات هنا. ميزته الرئيسية هي القدرة على تحليل السجلات من عدة مصادر ، وربط المعلومات وإخراج القيم الناتجة إلى مجلد سجل حدث واحد موجود على طول Microsoft -> Windows -> Sysmon -> مسار العمليات . في تحقيقاتي الخاصة في سجلات Windows التي تجعل شعري واقفاً على النهاية ، اضطررت باستمرار إلى التبديل بين مجلد سجل PowerShell ومجلد الأمان ، على سبيل المثال ، والتصفح في سجلات الأحداث في محاولة بطولية لمقارنة القيم بينهما بطريقة أو بأخرى. هذه ليست مهمة سهلة أبدًا ، وكما أدركت لاحقًا ، كان من الأفضل تخزين الأسبرين على الفور.



تقدم Sysmon قفزة كبيرة إلى الأمام من خلال توفير معلومات مفيدة (أو ، كما يحب البائعين أن يقولوا ، قابلة للتنفيذ) لمساعدتك في فهم العمليات الأساسية. على سبيل المثال ، بدأت جلسة wmiexec سرية تحاكي حركة المطلع الذكي داخل الشبكة. هذا ما ستراه في سجل أحداث Windows:



يُظهر سجل Windows بعض المعلومات حول العملية ، لكن استخدامها قليل.  بالإضافة إلى معرفات العملية بالسداسي ؟؟



يُظهر سجل Windows بعض المعلومات حول العملية ، لكن استخدامها قليل. بالإضافة إلى معرفات العملية بالنظام الست عشري ؟؟؟



يجب أن يكون أحد متخصصي تكنولوجيا المعلومات المحترفين مع فهم أساسيات القرصنة مرتابًا من سطر الأوامر. استخدام cmd.exe في وقت لاحق لتشغيل أمر آخر مع إعادة توجيه الإخراج إلى ملف باسم غريب - وهذا يشبه بوضوح برنامج التحكم وإدارة الأوامر والتحكم (C2) : بهذه الطريقة يتم إنشاء غلاف زائف باستخدام خدمات WMI.

الآن دعونا نلقي نظرة على ما يعادل إدخال Sysmon ، مع ملاحظة مقدار المعلومات الإضافية التي تقدمها لنا:



ميزات Sysmon في لقطة شاشة واحدة: معلومات عملية مفصلة في شكل قابل للقراءة



فرص لقطة شاشة Sysmon one: معلومات تفصيلية حول العملية في شكل قابل للقراءة





لن ترى فقط سطر الأوامر ، ولكن اسم الملف ، المسار إلى التطبيق القابل للتنفيذ الذي يعرفه Windows عنه ("معالج أوامر Windows") ، معرف العملية الأصل ، سطر الأوامر هو أحد الوالدين أطلقت cmd-shell ، بالإضافة إلى اسم الملف الحقيقي للعملية الرئيسية. كل شيء في مكان واحد ، أخيرًا!

من سجل Sysmon ، يمكننا أن نستنتج أنه ، مع درجة عالية من الاحتمال ، فإن سطر الأوامر المريب هذا ، الذي رأيناه في السجلات "الأولية" ، ليس نتيجة عمل الموظف العادي. على العكس من ذلك ، تم إنشاؤه من خلال عملية تشبه C2 - wmiexec ، كما ذكرت سابقًا - وتم إنتاجها مباشرة بواسطة خدمة WMI الخدمة (WmiPrvSe). لدينا الآن مؤشر على أن مهاجمًا بعيدًا أو من الداخل يحاول تجربة البنية التحتية للشركات.



إدخال Get-Sysmonlogs



بالطبع ، من الرائع أن يكون لدى Sysmon السجلات في مكان واحد. ولكن سيكون من الأفضل أن نتمكن من الوصول إلى حقول السجل الفردية برمجياً - على سبيل المثال ، من خلال أوامر PowerShell. في هذه الحالة ، يمكنك كتابة نص PowerShell صغير يعمل تلقائيًا على البحث عن التهديدات المحتملة!

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

النقطة المهمة الأولى هي قدرة الفريقGet-WinEvent قراءة سجلات Sysmon ، وتصفية الأحداث اللازمة وإخراج النتيجة إلى متغير PS ، كما يلي:



$events = Get-WinEvent  -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}




إذا كنت تريد التحقق من تشغيل الأمر بنفسك ، فعند عرض المحتوى في العنصر الأول من $ الأحداث ، $ events [0] .Mread صفيف ، يمكنك الحصول على سلسلة من السلاسل النصية بتنسيق بسيط للغاية: اسم حقل Sysmon ، ونقطتين ، ثم القيمة نفسها.



مرحى!  إخراج سجل Sysmon بتنسيق JSON



مرحى! إخراج سجل Sysmon إلى تنسيق JSON جاهز





هل تعتقد أن الشيء نفسه يتعلق بي؟ بجهد أكبر قليلاً ، يمكنك تحويل الإخراج إلى سلسلة بتنسيق JSON ثم تحميلها مباشرةً إلى كائن PS باستخدام الأمر ConvertFrom-Json القوي .

سوف أعرض كود PowerShell للتحويل - إنه بسيط للغاية - في الجزء التالي. في هذه الأثناء ، دعنا نلقي نظرة على ما يمكن لأمرتي الجديدة المسماة get-sysmonlogs القيام به ، والذي قمت بتثبيته كوحدة PS.

بدلاً من الخوض في تحليل سجلات Sysmon من خلال واجهة سجل الأحداث غير المريحة ، يمكننا بسهولة البحث عن النشاط المتزايد مباشرةً من جلسة PowerShell واستخدام الأمر حيث PS (الاسم المستعار - "؟") لتقليل الإخراج:



قائمة قذائف cmd التي تم إطلاقها عبر WMI.  تحليل التهديدات بثمن بخس مع فريق Get-Sysmonlogs الخاص بنا



قائمة قذائف cmd أطلقت عبر WMI. تحليل التهديد بثمن بخس مع منطقتنا فريق GET-Sysmonlogs.





مدهش! لقد أنشأت أداة اقتراع سجل Sysmon كما لو كانت قاعدة بيانات. في مقالنا حول EQL ، لوحظ أن هذه الوظيفة سيتم تنفيذها من خلال الأداة المساعدة الرائعة الموضحة فيها ، على الرغم من أنها ستتم بشكل رسمي من خلال واجهة حقيقية تشبه SQL. نعم، EQL غير أنيق، لكننا سوف أتطرق في الجزء 3.



Sysmon وتحليل الرسم البياني



دعونا مجردة ونفكر في ما أنشأناه للتو. بشكل أساسي ، لدينا الآن قاعدة بيانات أحداث Windows متاحة من خلال PowerShell. كما أشرت سابقًا ، هناك اتصالات أو علاقات بين السجلات - عبر ParentProcessId - حتى تتمكن من الحصول على تسلسل هرمي كامل للعمليات.



إذا كنت قد قرأت سلسلة Adventures of Elusive Malware ، فأنت تعلم أن المتسللين يحبون إنشاء هجمات معقدة متعددة المراحل ، حيث تلعب كل عملية دورها الصغير وتعد نقطة انطلاق للخطوة التالية. مثل هذه الأشياء من الصعب للغاية التقاطها ببساطة من السجل "الخام".

ولكن مع فريقي Get-Sysmonlogs وبنية بيانات إضافية ، والتي سنناقشها لاحقًا في النص (بالطبع هذا رسم بياني) ، سيكون لدينا طريقة عملية للكشف عن التهديدات - التي تحتاج إليها فقط لإجراء بحث صحيح على القمم.

كما هو الحال دائمًا في مشاريع مدونة DYI الخاصة بنا ، كلما عملت على تحليل تفاصيل التهديدات على نطاق صغير ، كلما أدركت مدى صعوبة اكتشاف التهديدات على المستوى التنظيمي. وهذا الوعي نقطة مهمة للغاية .



سنلتقي بالمضاعفات الأولى المثيرة للاهتمام في الجزء الثاني من المقالة ، حيث نبدأ في ربط أحداث Sysmon ببعضها البعض في هياكل أكثر تعقيدًا.



All Articles