راهنمای تحلیل تهدید Sysmon، قسمت 1

راهنمای تحلیل تهدید Sysmon، قسمت 1

این مقاله اولین قسمت از مجموعه تحلیل تهدیدات Sysmon است. سایر قسمت های سریال:

بخش 1: مقدمه ای بر تجزیه و تحلیل سیستم ثبت گزارش (ما اینجا هستیم)
بخش 2: استفاده از داده های رویداد Sysmon برای شناسایی تهدیدها
بخش 3. تجزیه و تحلیل عمیق تهدیدات Sysmon با استفاده از نمودار

اگر در زمینه امنیت اطلاعات کار می کنید، احتمالاً اغلب باید حملات مداوم را درک کنید. اگر از قبل یک چشم آموزش دیده دارید، می توانید به دنبال فعالیت غیر استاندارد در گزارش های پردازش نشده «خام» بگردید - مثلاً یک اسکریپت PowerShell در حال اجرا با دستور DownloadString یا یک اسکریپت VBS که وانمود می کند یک فایل Word است - به سادگی در آخرین فعالیت در گزارش رویداد ویندوز پیمایش کنید. اما این یک سردرد واقعا بزرگ است. خوشبختانه، مایکروسافت Sysmon را ایجاد کرد که تجزیه و تحلیل حملات را بسیار آسان‌تر می‌کند.

آیا می خواهید ایده های اساسی پشت تهدیدات نمایش داده شده در گزارش Sysmon را درک کنید؟ راهنمای ما را دانلود کنید رویدادهای WMI به عنوان وسیله ای برای جاسوسی و متوجه می شوید که چگونه خودی ها می توانند به طور مخفیانه سایر کارمندان را مشاهده کنند. مشکل اصلی کار با گزارش رویداد ویندوز کمبود اطلاعات در مورد فرآیندهای والد است. درک سلسله مراتب فرآیندها از آن غیرممکن است. از سوی دیگر، ورودی‌های گزارش Sysmon شامل شناسه فرآیند والد، نام آن و خط فرمانی است که باید راه‌اندازی شود. متشکرم، مایکروسافت.

در قسمت اول مجموعه ما به این خواهیم پرداخت که با اطلاعات اولیه Sysmon چه کاری می توانید انجام دهید. در قسمت XNUMX، ما از اطلاعات فرآیند والد برای ایجاد ساختارهای انطباق پیچیده تری که به عنوان نمودارهای تهدید شناخته می شوند، بهره کامل خواهیم برد. در بخش سوم، به الگوریتم ساده‌ای نگاه می‌کنیم که یک نمودار تهدید را برای جستجوی فعالیت‌های غیرعادی با تجزیه و تحلیل «وزن» نمودار اسکن می‌کند. و در پایان، با یک روش تشخیص تهدید احتمالی منظم (و قابل درک) پاداش خواهید گرفت.

بخش 1: مقدمه ای بر تجزیه و تحلیل سیستم ثبت گزارش

چه چیزی می تواند به شما در درک پیچیدگی های گزارش رویداد کمک کند؟ در نهایت - SIEM. رویدادها را عادی می کند و تحلیل بعدی آنها را ساده می کند. اما لازم نیست تا این حد پیش برویم، حداقل در ابتدا. در ابتدا، برای درک اصول SIEM، کافی است ابزار فوق العاده رایگان Sysmon را امتحان کنید. و کار کردن با او به طرز شگفت انگیزی آسان است. ادامه بده، مایکروسافت!

Sysmon چه ویژگی هایی دارد؟

به طور خلاصه - اطلاعات مفید و خواندنی در مورد فرآیندها (به تصاویر زیر مراجعه کنید). مجموعه ای از جزئیات مفید را پیدا خواهید کرد که در گزارش رویداد ویندوز نیستند، اما مهمترین آنها فیلدهای زیر هستند:

  • شناسه فرآیند (به صورت اعشاری، نه هگز!)
  • شناسه فرآیند والد
  • خط فرمان پردازش
  • خط فرمان فرآیند والد
  • هش تصویر فایل
  • نام تصاویر فایل

Sysmon هم به عنوان درایور دستگاه و هم به عنوان سرویس نصب می شود - جزئیات بیشتر اینجا. مزیت اصلی آن توانایی تجزیه و تحلیل سیاهههای مربوط از است چند منابع، همبستگی اطلاعات و خروجی مقادیر به دست آمده به یک پوشه گزارش رویداد واقع در امتداد مسیر مایکروسافت -> ویندوز -> Sysmon -> عملیاتی. در تحقیقاتی که در مورد لاگ‌های ویندوز انجام داده‌ام، متوجه شدم که دائماً مجبور هستم بین پوشه گزارش‌های PowerShell و پوشه Security سوئیچ کنم، و در تلاشی شجاعانه در لاگ رویدادها ورق زدم تا به نحوی مقادیر بین این دو را به هم مرتبط کنیم. . این هرگز کار آسانی نیست، و همانطور که بعداً متوجه شدم، بهتر است فورا آسپرین را ذخیره کنید.

Sysmon با ارائه اطلاعات مفید (یا همانطور که فروشندگان می‌خواهند بگویند، عملی) برای کمک به درک فرآیندهای زیربنایی، یک جهش کوانتومی به جلو انجام می‌دهد. به عنوان مثال، من یک جلسه مخفی را شروع کردم wmiexec، شبیه سازی حرکت یک خودی هوشمند در داخل شبکه. این چیزی است که در گزارش رویداد ویندوز خواهید دید:

راهنمای تحلیل تهدید Sysmon، قسمت 1

گزارش ویندوز برخی از اطلاعات را در مورد فرآیند نشان می دهد، اما کاربرد کمی دارد. شناسه های پردازش پلاس به صورت هگزادسیمال؟؟؟

برای یک متخصص IT حرفه ای با درک اصول اولیه هک، خط فرمان باید مشکوک باشد. استفاده از cmd.exe برای اجرای دستور دیگری و تغییر مسیر خروجی به فایلی با نام عجیب و غریب به وضوح شبیه به اقدامات نرم افزار نظارت و کنترل است. فرمان و کنترل (C2): به این ترتیب با استفاده از سرویس های WMI یک شبه پوسته ایجاد می شود.
حالا بیایید نگاهی به معادل ورودی Sysmon بیندازیم و توجه کنیم که چقدر اطلاعات اضافی به ما می دهد:

راهنمای تحلیل تهدید Sysmon، قسمت 1

ویژگی های Sysmon در یک اسکرین شات: اطلاعات دقیق در مورد فرآیند به شکل قابل خواندن

شما نه تنها خط فرمان، بلکه نام فایل، مسیر برنامه اجرایی، آنچه که ویندوز در مورد آن می داند ("پردازشگر فرمان ویندوز")، شناسه را نیز می بینید. والدین فرآیند، خط فرمان والدین، که پوسته cmd و همچنین نام فایل واقعی فرآیند والد را راه اندازی کرد. همه چیز در یک مکان، بالاخره!
از گزارش Sysmon می‌توان نتیجه گرفت که به احتمال زیاد این خط فرمان مشکوک که در گزارش‌های "خام" مشاهده کردیم، نتیجه کار عادی کارمند نیست. کاملاً برعکس، توسط یک فرآیند شبیه به C2 - wmiexec، همانطور که قبلاً ذکر کردم - ایجاد شد و مستقیماً توسط فرآیند سرویس WMI (WmiPrvSe) ایجاد شد. اکنون ما یک نشانگر داریم که نشان می دهد یک مهاجم یا خودی از راه دور زیرساخت شرکت را آزمایش می کند.

معرفی Get-Sysmonlogs

البته وقتی Sysmon لاگ ها را در یک مکان قرار می دهد بسیار عالی است. اما احتمالاً حتی بهتر خواهد بود اگر بتوانیم به صورت برنامه‌نویسی به فیلدهای گزارش جداگانه دسترسی داشته باشیم - به عنوان مثال، از طریق دستورات PowerShell. در این مورد، می توانید یک اسکریپت PowerShell کوچک بنویسید که جستجوی تهدیدات احتمالی را خودکار کند!
من اولین کسی نبودم که چنین ایده ای داشتم. و خوب است که در برخی از پست های انجمن و GitHub پروژه ها قبلاً نحوه استفاده از PowerShell برای تجزیه log Sysmon توضیح داده شده است. در مورد من، من می خواستم از نوشتن خطوط جداگانه اسکریپت تجزیه برای هر فیلد Sysmon اجتناب کنم. بنابراین من از اصل مرد تنبل استفاده کردم و فکر می کنم در نتیجه به چیز جالبی رسیدم.
اولین نکته مهم توانایی تیم است Get-WinEvent گزارش های Sysmon را بخوانید، رویدادهای لازم را فیلتر کنید و نتیجه را به متغیر PS ارسال کنید، مانند اینجا:

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

اگر می‌خواهید دستور را خودتان آزمایش کنید، با نمایش محتوا در اولین عنصر آرایه $events، $events[0]. پیام، خروجی می‌تواند یک سری رشته‌های متنی با فرمت بسیار ساده باشد: نام فیلد Sysmon، یک دونقطه، و سپس خود مقدار.

راهنمای تحلیل تهدید Sysmon، قسمت 1

هورا! خروجی ورود Sysmon به فرمت JSON-ready

تو هم مثل من فکر میکنی؟ با کمی تلاش بیشتر، می توانید خروجی را به یک رشته با فرمت JSON تبدیل کنید و سپس با استفاده از یک دستور قدرتمند آن را مستقیماً در یک شی PS بارگذاری کنید. ConvertFrom-Json .
من کد PowerShell را برای تبدیل - بسیار ساده - در قسمت بعدی نشان خواهم داد. در حال حاضر، بیایید ببینیم دستور جدید من به نام get-sysmonlogs که به عنوان ماژول PS نصب کردم، چه کاری می تواند انجام دهد.
به جای غواصی عمیق در تجزیه و تحلیل گزارش Sysmon از طریق یک رابط ثبت رویداد نامناسب، می‌توانیم بدون زحمت فعالیت افزایشی را مستقیماً از یک جلسه PowerShell جستجو کنیم و همچنین از دستور PS استفاده کنیم. جایی که (نام مستعار - "؟") برای کوتاه کردن نتایج جستجو:

راهنمای تحلیل تهدید Sysmon، قسمت 1

لیست پوسته های cmd که از طریق WMI راه اندازی شده اند. تجزیه و تحلیل تهدید ارزان با تیم Get-Sysmonlogs خودمان

شگفت انگیز! من یک ابزار برای نظرسنجی از گزارش Sysmon به عنوان یک پایگاه داده ایجاد کردم. در مقاله ما در مورد IQ اشاره شد که این عملکرد توسط ابزار جالبی که در آن توضیح داده شده است، انجام می شود، اگرچه به طور رسمی هنوز از طریق یک رابط واقعی شبیه به SQL. بله، EQL ظریف، اما در قسمت سوم به آن خواهیم پرداخت.

Sysmon و تجزیه و تحلیل گراف

بیایید به عقب برگردیم و به آنچه که تازه خلق کرده ایم فکر کنیم. اساسا، ما اکنون یک پایگاه داده رویدادهای ویندوز داریم که از طریق PowerShell قابل دسترسی است. همانطور که قبلاً اشاره کردم، ارتباطات یا روابطی بین رکوردها وجود دارد - از طریق ParentProcessId - بنابراین می توان یک سلسله مراتب کامل از فرآیندها را به دست آورد.

اگر سریال را خوانده باشید "ماجراهای بدافزار گریزان" می دانید که هکرها عاشق ایجاد حملات پیچیده چند مرحله ای هستند که در آن هر فرآیند نقش کوچک خود را ایفا می کند و سکوی پرشی را برای مرحله بعدی آماده می کند. گرفتن چنین چیزهایی به سادگی از سیاهه "خام" بسیار دشوار است.
اما با دستور Get-Sysmonlogs من و یک ساختار داده اضافی که بعداً در متن به آن نگاه خواهیم کرد (البته یک نمودار)، ما یک راه عملی برای شناسایی تهدیدها داریم - که فقط به انجام جستجوی راس مناسب نیاز دارد.
مثل همیشه با پروژه های وبلاگ DYI ما، هرچه بیشتر روی تجزیه و تحلیل جزئیات تهدیدات در مقیاس کوچک کار کنید، بیشتر متوجه خواهید شد که تشخیص تهدید در سطح سازمانی چقدر پیچیده است. و این آگاهی فوق العاده است نکته مهم.

ما با اولین پیچیدگی های جالب در قسمت دوم مقاله مواجه خواهیم شد، جایی که شروع به اتصال رویدادهای Sysmon با یکدیگر در ساختارهای بسیار پیچیده تر خواهیم کرد.

منبع: www.habr.com

اضافه کردن نظر