در این مقاله قصد داریم به زوایای شناسایی و مقابله با تهدیدات پیشرفته با Splunk بپردازیم، لذا پیش از آن باید با برخی مفاهیم آشنا شویم که در ادامه به آن پرداخته شده است.
Advanced Threat چیست؟
تهدیدات پیشرفته توسط مهاجمانی صورت میگیرد که برای به دست آوردن و یا تغییر اطلاعات، از چندین مسیر حمله استفاده مینمایند. معمولاً کشف، حذف و شناسایی علت تهدیدات پیشرفته امری مهم و در عین حال دشوار است. انواع تهدیداتِ پیشرفته ممکن است شامل Phishing، آلودهسازی وبسایتها با بدافزار، حملات Brute Force، مهندسی اجتماعی برای به دست آوردن دسترسیهای مجاز و حملات هدفدار که شامل Exploitهای Zero-Day هستند، باشد. یک تهدید پیشرفته یک یا چند سیستم را در معرض خطر قرار میدهد و راههای ارتباطی دائمی را برقرار میسازد تا فعالیتها به سمتی متمایل گردند که اهداف مهاجمین تحقق یابد.
یک تهدید پیشرفته، رشتهای از فعالیتها را انجام میدهد تا دسترسی ورودی معتبر را بدست آورد، منابع مورد علاقه را یافته و آنها را به بیرون از سازمان منتقل نماید. یکی از موارد این مدل حمله، Kill Chain میباشد.
بررسی حملات Kill Chain در اسپلانک
نحوه انتقال
یک تهدید پیشرفته معمولاً با دانلود بدافزار آغاز میگردد و آلودگیها با کلیک بر روی لینکهای مخرب یا فایلهای پیوست در ایمیلها و یا مراجعه به وبسایتهای آلوده یا مخرب رخ میدهند.
نحوه انجام فرآیند Exploit و نصب بدافزار
بدافزاری که در سیستم دانلود شده ( چه به صورت خودکار یا توسط کاربری که فریب داده شده تا روی یک Dialog Box کلیک کند و یا بدلیل باز کردن پیوست ایمیل، دانلود شده باشد) باید اجرا گردد.
بدافزارها معمولاً مخفی هستند یا در اسناد متداول و فایلهای وب، مانند اسناد PDF یا فایل تصویری JPG کارگذاری شدهاند و باز کردن یا دسترسی به این فایلها بدافزار را اجرا مینماید. با تکنیکهای پیشرفته میتواند از آسیبپذیریهای شناختهشده یا ناشناخته سواستفاده نماید و بدافزار روی سیستم نصب گردد. زمانی که بدافزار اجرا میگردد، فعالیتهای متفاوتی را انجام میدهد تا به صورت شناسایی نشده بر روی Endpoint اجرا گردد. برای مثال ممکن است بدافزار با نصب برنامههایی که ظاهری عادی دارند، با خاموش کردن برنامهی امنیتی، خاموش کردنLogging برای بدافزارها و یا با جایگزین کردن فایلهای سیستم یا برنامههای سیستم که به طور عادی اجازهی اجرا شدن در Endpoint را دارند، به کار خود ادامه دهد.
نحوهی کارکرد بدافزار با سرورِ Command & Control
با نرمافزارهای مخربی که روی Endpoint نصب شدهاند، بدافزار با یک سرورِ C&C ارتباط برقرار مینماید تا نرمافزارهای بیشتری را دانلود کرده و یا دستورالعملهایی را دریافت نماید. این دستورالعملها میتواند شامل فایلها یا دادههای خاصی شود که قرار است از سازمان هدف دزدیده شوند. جهت ارتباط بین سرورهای هدف، C&C معمولاً از پروتکلهای ارتباطی متداولی که در پروتکلهای HTTP، FTP و DNS پنهان هستند، استفاده مینماید. همچنین ممکن است این ارتباطات با استفاده از SSL روی HTTP، یا با استفاده از پروتکلهای کنترل Remote مانند RDP رمزگذاری شده صورت پذیرد.
نحوه انجام حملات
مهاجم با جای پایی محکم در کانالهای سازمانی و ارتباطی برای جهتدهی به فعالیتها، تداوم (Persistence) را ایجاد نموده و میتواند قدمهای لازم را برای به انجام رسانیدن مأموریت خود بردارد. در این مرحله فعالیتهای تهدیدآمیز پیشرفته از حسابهای کاربری و سیستمهای موردتایید نشات میگیرد که در محیط، معتبر میباشند.
شناسایی و مقابله با تهدیدهای پیشرفته
در روند حملات پیشرفته، مهاجمی وجود دارد که میخواهد وارد ساختار شبکه شما شده و هدفی بر علیه کسبوکار شما میباشد. این مهاجم دارای انگیزه و منابع کافی است. آنها از چندین مسیر و تکنیک حمله استفاده میکنند تا وارد سیستم کاربر شوند، از دسترسی معتبری که سیستم در شبکهی وی دارد سواستفاده کرده، در سیستمهای او باقی مانده، از سازمان مربوطه دزدی کرده و یا آسیب برسانند. این فعالیتهای مخرب میتواند شامل فعالیتهای جانبی همچون پیدا کردن و فراگرفتن Endpointها و سیستمهای دیگر گردد. مهاجم از Credentialهای معتبر استفاده میکند تا به Endpointها، سیستمها و ذخیرههای منابع دسترسی پیدا کند. اهداف مهاجمین میتواند شامل تغییر، مشاهده و دزدیدن اطلاعات و همچنین فروش دسترسیهایش به سازمان شما باشد. همچنین مهاجم میخواهد دسترسی خود را به سازمان شما حفظ و مخفی نماید.
دسترسی داشتن و تحلیل کردن تمام دادهها ممکن است در شناسایی و مقابله با تهدیدات پیشرفته مفید باشد. مانیتورینگ حملات و فعالیتهای غیرعادی شناخته شده و سپس مرتبط ساختن آنها به یکدیگر با استفاده از روش Kill Chain، میتواند به شناسایی Hostهای در معرض خطر و تهدیدات پیشرفتهای که وارد سازمان کاربر شدهاند، کمک نماید. این روش روی شناسایی فعالیتهای پس از Exploit یا آلودگی با فرض بر این که یک مهاجم وارد ساختار شبکهای شده است (فرض بر اینکه کاربر در معرض خطر قرار دارد)، متمرکز میباشد. مثالهای زیر تکنیکهای لازم برای جستجوی Hostهای در معرض خطر را نشان میدهند و میتوانند نقش مهمی در پاسخ به نقضهای امنیتی و یافتن بدافزار یا APT بازی کنند.
نام فایل غیرعادی |
|
فایل قابلاجرای کمیاب |
|
آغاز فرایند یا برنامه در هنگام آغاز به کار ویندوز |
در قسمت HKEY_LOCAL_MACHINE در زیر مجموعه SOFTWARE\Microsoft\Windows و سپس CurrentVersion\Run باید بررسی شود.
|
فعالیت مدیریتی غیرعادی |
|
شناسایی فعالیتهای تهدیدآمیز پیشرفته از دیدگاه شبکه
فعالیت خروجی غیرعادی با استفاده از DNS-1
- به دنبال چه چیزی هستیم: تعداد زیادی از درخواستهای DNS که در قیاس با مبنای اصلی از سوی یک Client خاص رخ میدهد.
- دلیل: احتمال ارتباطات تهدیدآمیز پیشرفته (دستورالعمل، دزدی داده) با استفاده از پروتکل DNS.
- منابع مورد نیاز: Logهای DNS.
- نحوهی شناسایی: sourcetype=dns | stats count(clientip) AS Requests by clientip | sort – Requests
فعالیت خروجی غیرعادی با استفاده از DNS-2
- به دنبال چه چیزی هستیم: تعداد زیادی از درخواستهای DNS با اندازهی یکسان از یک Host داخلی، الگوهای درخواست DNS با اندازهی یکسان.
- دلیل: احتمال ارتباطات تهدیدآمیز پیشرفته (دستورالعمل، دزدی داده) با استفاده از پروتکل DNS.
- منابع مورد نیاز: Logهای DNS.
- نحوهی شناسایی: sourcetype=dns | eval Length=len(query) | stats count(clientip) by Length | sort – Length
اطلاعرسانی به مهاجم از نصب موفق
- به دنبال چه چیزی هستیم: ترافیک با تناوب سنگین، برای مثال ترافیک به یک URL یکسان در فواصل زمانی یکسان به صورت روزانه.
- دلیل: بدافزار برای دریافت دستورالعمل سعی در ایجاد ارتباط با سرور صدور و کنترل دارد.
- منابع مورد نیاز: Logهای پروکسی وب یا Logهای فایروال؛ «dest» میتواند یک URL، دامین یا آدرس IP باشد.
- نحوهی شناسایی: | streamstats current=f last(_time) as next_time by dest | eval gap = next_time – _time | stats count avg(gap) var(gap) by dest
ارتباط با سرور C&C، دیگر سایتهای بدافزار
- به دنبال چه چیزی هستیم: ترافیک به سایتهایی که تحت عنوان «none» یا «unknown» توسط یک سرور اعتبار یا فیلتر طبقهبندی فهرست شدهاند.
- دلیل: مهاجمان معمولاً از دامینهای جدید یا با ترافیک پایین که توسط Reputation Engines ارزیابی نشدهاند استفاده مینمایند.
- منابع مورد نیاز: Logهای پروکسی وب یا Logهای فایروال با Reputation.
- نحوهی شناسایی: source=proxy sc_flter_category=None OR sc_flter_ category=unknown| stats count(clientip) by s_hostname, clientip
تحویل و نصب بدافزار
- به دنبال چه چیزی هستیم: درخواستهای سریع پس از دانلود یک فایل قابلاجرای پرتابل (PDF، Java، .exe و …)
- دلیل: نشاندهندهی Exploitation، نصب و دانلود بدافزار، فایلها و دستورالعملهای اولیه است.
- منابع مورد نیاز: دادههای پروکسی وب یا فایروال که شامل URL کامل یا نامهای فایل است.
- نحوهی شناسایی: source=proxy [search fle=*.pdf OR fle=*.exe | dedup clientip | table clientip] | transaction maxspan=60s maxpause=5s clientip | eval Length=len(_raw) | sort –Length
ارتباط بدافزار با سرور صدور و کنترل
- به دنبال چه چیزی هستیم: ترافیک از آدرسها یا دامینهای درون لیست سیاه (لیست داخلی، منابع اطلاعات تهدیدات) و یا به سوی آنها.
- دلیل: تهدید یا بدافزار پیشرفته نیازمند ارتباطی مداوم با مهاجم است تا اهداف وی تحقق یابند.
- منابع مورد نیاز: هر دادهی Log با آدرس IP یا نام دامین؛ هر منبع داده (Log/فایل) از IP یا دامینهای لیست سیاه.
- نحوهی شناسایی: source=frewall action=Permit | lookup malicious clientip as dst | stats sum(bytes) by dst
میتوان برای شناسایی فعالیتهای شبکه و Host که ممکن است نشاندهندهی تهدیدی پیشرفته باشند، از نرمافزار Splunk استفاده نمود. برخلاف بسیاری از راهکارهای کنونی، Splunk به طور منحصر به فردی مناسب جمعآوری، Index کردن، ارتباط دادن و تحلیل نمودن تمام دادهها و مانیتور کردن الگوهای فعالیت در دورههای زمانی طولانی موردنیاز برای پیشبینی یک حمله میباشد. به علاوه، میتوان از کاربردهای تجزیه و تحلیل و عددی استفاده نمود تا جستجوهایی ایجاد شوند که آستانههایی (Thresholdهایی) که توسط کاربر تعریف شدهاند و نسبت به معماری سازمان سفارشی شدهاند را به کار میگیرد. میتوان از قابلیتهای Field Extraction، جستجو (Lookup) و Pivot استفاده نمود تا هر ترکیبی از رخدادها یا فعالیتها را به هم مرتبط ساخت، تا درک زنجیرهی رخداد که برای کشف تهدیدات پیشرفته، تهدیدات امنیتی و نقضهای امنیتی دادهای بالقوه موردنیاز است، انجام گردد.
اطلاعات درون مثالها تنها نشاندهندهی نقطهی شروع برای مشاهدهی فعالیتهای غیرعادی روی Hostها و روی شبکهها هستند و میتوان از آن برای شناسایی و مقابله با تهدیدات پیشرفته استفاده نمود. این موارد در محیطی فعال مورد آزمایش قرار نگرفتهاند. تهدیدات و مسیرهای حمله دائماً درحال تغییر هستند و خواننده باید از شرایطی که ممکن است در هر برنامهی امنیتی تغییراتی را به وجود آورد آگاه باشد.