این مقاله اولین قسمت از مجموعه تحلیل تهدیدات Sysmon است. سایر قسمت های سریال:
بخش 1: مقدمه ای بر تجزیه و تحلیل سیستم ثبت گزارش (ما اینجا هستیم)
بخش 2: استفاده از داده های رویداد Sysmon برای شناسایی تهدیدها
بخش 3. تجزیه و تحلیل عمیق تهدیدات Sysmon با استفاده از نمودار
اگر در زمینه امنیت اطلاعات کار می کنید، احتمالاً اغلب باید حملات مداوم را درک کنید. اگر از قبل یک چشم آموزش دیده دارید، می توانید به دنبال فعالیت غیر استاندارد در گزارش های پردازش نشده «خام» بگردید - مثلاً یک اسکریپت PowerShell در حال اجرا
آیا می خواهید ایده های اساسی پشت تهدیدات نمایش داده شده در گزارش Sysmon را درک کنید؟ راهنمای ما را دانلود کنید
در قسمت اول مجموعه ما به این خواهیم پرداخت که با اطلاعات اولیه Sysmon چه کاری می توانید انجام دهید. در قسمت XNUMX، ما از اطلاعات فرآیند والد برای ایجاد ساختارهای انطباق پیچیده تری که به عنوان نمودارهای تهدید شناخته می شوند، بهره کامل خواهیم برد. در بخش سوم، به الگوریتم سادهای نگاه میکنیم که یک نمودار تهدید را برای جستجوی فعالیتهای غیرعادی با تجزیه و تحلیل «وزن» نمودار اسکن میکند. و در پایان، با یک روش تشخیص تهدید احتمالی منظم (و قابل درک) پاداش خواهید گرفت.
بخش 1: مقدمه ای بر تجزیه و تحلیل سیستم ثبت گزارش
چه چیزی می تواند به شما در درک پیچیدگی های گزارش رویداد کمک کند؟ در نهایت - SIEM. رویدادها را عادی می کند و تحلیل بعدی آنها را ساده می کند. اما لازم نیست تا این حد پیش برویم، حداقل در ابتدا. در ابتدا، برای درک اصول SIEM، کافی است ابزار فوق العاده رایگان Sysmon را امتحان کنید. و کار کردن با او به طرز شگفت انگیزی آسان است. ادامه بده، مایکروسافت!
Sysmon چه ویژگی هایی دارد؟
به طور خلاصه - اطلاعات مفید و خواندنی در مورد فرآیندها (به تصاویر زیر مراجعه کنید). مجموعه ای از جزئیات مفید را پیدا خواهید کرد که در گزارش رویداد ویندوز نیستند، اما مهمترین آنها فیلدهای زیر هستند:
- شناسه فرآیند (به صورت اعشاری، نه هگز!)
- شناسه فرآیند والد
- خط فرمان پردازش
- خط فرمان فرآیند والد
- هش تصویر فایل
- نام تصاویر فایل
Sysmon هم به عنوان درایور دستگاه و هم به عنوان سرویس نصب می شود - جزئیات بیشتر
Sysmon با ارائه اطلاعات مفید (یا همانطور که فروشندگان میخواهند بگویند، عملی) برای کمک به درک فرآیندهای زیربنایی، یک جهش کوانتومی به جلو انجام میدهد. به عنوان مثال، من یک جلسه مخفی را شروع کردم
گزارش ویندوز برخی از اطلاعات را در مورد فرآیند نشان می دهد، اما کاربرد کمی دارد. شناسه های پردازش پلاس به صورت هگزادسیمال؟؟؟
برای یک متخصص IT حرفه ای با درک اصول اولیه هک، خط فرمان باید مشکوک باشد. استفاده از cmd.exe برای اجرای دستور دیگری و تغییر مسیر خروجی به فایلی با نام عجیب و غریب به وضوح شبیه به اقدامات نرم افزار نظارت و کنترل است.
حالا بیایید نگاهی به معادل ورودی Sysmon بیندازیم و توجه کنیم که چقدر اطلاعات اضافی به ما می دهد:
ویژگی های Sysmon در یک اسکرین شات: اطلاعات دقیق در مورد فرآیند به شکل قابل خواندن
شما نه تنها خط فرمان، بلکه نام فایل، مسیر برنامه اجرایی، آنچه که ویندوز در مورد آن می داند ("پردازشگر فرمان ویندوز")، شناسه را نیز می بینید. والدین فرآیند، خط فرمان والدین، که پوسته cmd و همچنین نام فایل واقعی فرآیند والد را راه اندازی کرد. همه چیز در یک مکان، بالاخره!
از گزارش Sysmon میتوان نتیجه گرفت که به احتمال زیاد این خط فرمان مشکوک که در گزارشهای "خام" مشاهده کردیم، نتیجه کار عادی کارمند نیست. کاملاً برعکس، توسط یک فرآیند شبیه به C2 - wmiexec، همانطور که قبلاً ذکر کردم - ایجاد شد و مستقیماً توسط فرآیند سرویس WMI (WmiPrvSe) ایجاد شد. اکنون ما یک نشانگر داریم که نشان می دهد یک مهاجم یا خودی از راه دور زیرساخت شرکت را آزمایش می کند.
معرفی Get-Sysmonlogs
البته وقتی Sysmon لاگ ها را در یک مکان قرار می دهد بسیار عالی است. اما احتمالاً حتی بهتر خواهد بود اگر بتوانیم به صورت برنامهنویسی به فیلدهای گزارش جداگانه دسترسی داشته باشیم - به عنوان مثال، از طریق دستورات PowerShell. در این مورد، می توانید یک اسکریپت PowerShell کوچک بنویسید که جستجوی تهدیدات احتمالی را خودکار کند!
من اولین کسی نبودم که چنین ایده ای داشتم. و خوب است که در برخی از پست های انجمن و GitHub
اولین نکته مهم توانایی تیم است
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
اگر میخواهید دستور را خودتان آزمایش کنید، با نمایش محتوا در اولین عنصر آرایه $events، $events[0]. پیام، خروجی میتواند یک سری رشتههای متنی با فرمت بسیار ساده باشد: نام فیلد Sysmon، یک دونقطه، و سپس خود مقدار.
هورا! خروجی ورود Sysmon به فرمت JSON-ready
تو هم مثل من فکر میکنی؟ با کمی تلاش بیشتر، می توانید خروجی را به یک رشته با فرمت JSON تبدیل کنید و سپس با استفاده از یک دستور قدرتمند آن را مستقیماً در یک شی PS بارگذاری کنید.
من کد PowerShell را برای تبدیل - بسیار ساده - در قسمت بعدی نشان خواهم داد. در حال حاضر، بیایید ببینیم دستور جدید من به نام get-sysmonlogs که به عنوان ماژول PS نصب کردم، چه کاری می تواند انجام دهد.
به جای غواصی عمیق در تجزیه و تحلیل گزارش Sysmon از طریق یک رابط ثبت رویداد نامناسب، میتوانیم بدون زحمت فعالیت افزایشی را مستقیماً از یک جلسه PowerShell جستجو کنیم و همچنین از دستور PS استفاده کنیم.
لیست پوسته های cmd که از طریق WMI راه اندازی شده اند. تجزیه و تحلیل تهدید ارزان با تیم Get-Sysmonlogs خودمان
شگفت انگیز! من یک ابزار برای نظرسنجی از گزارش Sysmon به عنوان یک پایگاه داده ایجاد کردم. در مقاله ما در مورد
Sysmon و تجزیه و تحلیل گراف
بیایید به عقب برگردیم و به آنچه که تازه خلق کرده ایم فکر کنیم. اساسا، ما اکنون یک پایگاه داده رویدادهای ویندوز داریم که از طریق PowerShell قابل دسترسی است. همانطور که قبلاً اشاره کردم، ارتباطات یا روابطی بین رکوردها وجود دارد - از طریق ParentProcessId - بنابراین می توان یک سلسله مراتب کامل از فرآیندها را به دست آورد.
اگر سریال را خوانده باشید
اما با دستور Get-Sysmonlogs من و یک ساختار داده اضافی که بعداً در متن به آن نگاه خواهیم کرد (البته یک نمودار)، ما یک راه عملی برای شناسایی تهدیدها داریم - که فقط به انجام جستجوی راس مناسب نیاز دارد.
مثل همیشه با پروژه های وبلاگ DYI ما، هرچه بیشتر روی تجزیه و تحلیل جزئیات تهدیدات در مقیاس کوچک کار کنید، بیشتر متوجه خواهید شد که تشخیص تهدید در سطح سازمانی چقدر پیچیده است. و این آگاهی فوق العاده است نکته مهم.
ما با اولین پیچیدگی های جالب در قسمت دوم مقاله مواجه خواهیم شد، جایی که شروع به اتصال رویدادهای Sysmon با یکدیگر در ساختارهای بسیار پیچیده تر خواهیم کرد.
منبع: www.habr.com