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

دليل تحليل تهديد 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 المجانية الرائعة. ومن السهل بشكل مدهش العمل معها. استمروا في ذلك ، Microsoft!

ما هي مميزات نظام Sysmon؟

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

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

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

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

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

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

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

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

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

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

تقديم Get-Sysmonlogs

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

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

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

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

الصيحة! إخراج سجل Sysmon بتنسيق جاهز لـ JSON

هل تفكر في نفس الشيء مثلي؟ مع بذل المزيد من الجهد ، يمكنك تحويل الإخراج إلى سلسلة بتنسيق JSON ثم تحميلها مباشرةً في كائن PS باستخدام الأمر القوي تحويل من Json .
سأعرض رمز PowerShell للتحويل - إنه بسيط جدًا - في الجزء التالي. في الوقت الحالي ، دعنا نلقي نظرة على ما يمكن أن يفعله أمري الجديد المسمى get-sysmonlogs ، والذي قمت بتثبيته كوحدة PS.
بدلاً من التعمق في تحليل سجل Sysmon من خلال واجهة سجل الأحداث غير الملائمة ، يمكننا البحث بسهولة عن النشاط الإضافي مباشرةً من جلسة PowerShell ، وكذلك استخدام الأمر PS أين (الاسم المستعار - "؟") لتقصير نتائج البحث:

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

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

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

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

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

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

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

المصدر: www.habr.com

إضافة تعليق