جستوجوی Fileless Threat ممكن است برای هر تحليلگری، كاری خستهكننده و طاقتفرسا باشد، اين كار بيشتر اوقات بسيار وقتگير و نيازمند ميزان قابلتوجهی از جمعآوری داده ها می باشد. مشكل مهمتری كه در خصوص اين امر وجود دارد، اين است كه به نظر میرسد ابزارها، شيوهها و روشهای دفاعی قديمی در برخورد با اين تهديدهای نامرئی از كارايی كمتری برخوردار باشند. مهاجمان اغلب برای دستیابی به اهداف خود از ترفندهای حملهای استفاده میکنند که مستقیماً از حافظه شروع به كار میكند يا از ابزارها و سرويسهايی قانونی استفاده ميكنند كه از قبل در سيستم نصب شدهاند. اين ترفند براي بهكارگيری در حملات هدفگذاری شده و تهديدات پيشرفته و مستمر یا APT محبوبيت دارد و اكنون بدافزارهای متداولی چون تروجانها، باجافزارها و حتی جديدترين تهديد ظهوريافته، يعنی بدافزارهای استخراج رمز ارز يا Cryptocurrency Miners آن را به كار میگيرند. به نظر می رسد در برخی از موارد، جستجوی فايل مخربی که در هارد درايو قرار دارد کافی نیست. در اين مقاله به بررسی انواع مختلف حملات بدون فايل یا Fileless كه سيستمعامل ويندوز را هدف قرار میدهند میپردازیم و همچنين بررسی خواهیم کرد كه چه ابزارهايی میتوانند برای جرمشناسی رايانهای سرنخهايی فراهم كند.
امروزه، Fileless Malware مدرن از ترکیبی از ترفندها برای فرار از شناسایی و دور ماندن از رادار استفاده میکند. مهاجمان اغلب برای حمله به اين ترفند رو میآورند، چنين گرايشی به اين دليل ايجاد شده است که راهحلهای قدیمی مانند آنتیویروس ها در تلاشند تا خود را با پيچيدگیهای آن تطبيق داده، درحالیکه مهاجمان همیشه به دنبال مخفی شدن هستند و ويژگی Fileless Malware، آن را برای ورود آنها به عمليات روزمره سازمان و فرار از تشخيص به گزينهای عالی تبديل میكند.
بيشتر مردم Fileless Malware را اين گونه تعريف میكنند: حملهای كه منجر به نوشته شدن فايلها در ديسك نمیشود، اين تعريف تنها تا حدودی صحيح میباشد. این حمله میتواند به روشهای مختلفی صورت گيرد و لزوما در هر مرحله منحصرا Fileless نمی باشد، مسير اين حمله در آغاز درست مانند بيشتر حملات سايبری است و میتواند از طریق Exploit كردن يكی از نقاط آسيبپذير امنيتی، حمله Drive-by-download، حملهBrute-force، دستگاههای USB Storage يا ايميلهای Phishing معمولی صورت گيرد.
مقايسه بدافزار قديمی با Fileless Malware
Traditional Malware یا بدافزار قديمی
برای درك بهتر Fileless malware، بهترين كار اين است كه وارد زنجيره آلودهسازی بدافزارهای قديمی شويم، اين تهديد میتواند از طريق ايميل (به عنوان فايل پيوست يا پيوند وب)، دانلود فايل از يك سايت مخرب، Exploit كردن يكی از نقاط آسيبپذير يا دستگاه USB Storage وارد سيستم شود. نكتهای درباره بدافزار قديمی كه همگی با آن آشنا هستيم، اين است كه در اين بدافزارها يك فايل واقعی وجود دارد و نياز است محتوای Payload آن اجرا شود. تصویر زیر جریان آلودهسازی كلاسيك را در بدافزارهای قديمی نشان میدهد.
Fileless Malware
نقطه ورود میتواند تعيين كند كه حمله تا چه اندازه بدون فايل بوده، با اين حال ممكن است تهديدكنندگان بخواهند در آغاز حمله، Fileless Malware خود را با يك فايل پيادهسازی کرده، سپس اين فايل طی روند آلودهسازی خود به يك بدافزار بدون فايل تبديل میشود. نقطه ورود Fileless Malwareها مشابه بدافزارهای قديمی می باشد. هر کاری را که بدافزار قديمی قادر به انجام آن است، Fileless Malware نيز میتواند انجام دهد. تفاوت بين اين دو در ترفند مورد استفاده در مرحله اجرا شدن می باشد. برخلاف بدافزارهای قديمی که در آن يك فايل بايد در ديسك مستقر باشد، کدی که Fileless Malware استفاده میكند، نه در فايل ذخيره میشود و نه در دستگاه قربانی نصب ميگردد. بدافزار بدون فايل میتواند با استفاده از ابزارهای ليست سفيد مانند Windows PowerShell از Exploitها برای اجرای دستورات مخرب یا راهاندازی اسكريپتها به طور مستقيم از حافظه استفاده كند. تصویر زیر زنجیره رايج آلودهسازی Fileless Attack را نشان میدهد.
Fileless Attackی كه از طريق Exploit وارد میشود، ممكن است «كاملا Fileless » خوانده شود، Exploitكردن Remote Code Execution Vulnerability، آسیب پذیری اجرای کد از راه دور یا RCE ممكن است به مهاجمان اجازه دهد كه Shellcode را مستقيما در حافظه و بدون ثبت هيچ فايلی در ديسك، بارگذاری كنند که در اين حالت میتوان اين كار را از طريق ترفندهای Code Injection نظير Process Hollowing يا Reflective DLL Injection انجام داد.
برای مشاوره رایگان جهت (باز)طراحی امنیت شبکه و یا انجام تست نفوذ مطابق با الزامات افتا با کارشناسان شرکت APK تماس بگیرید. |
وبسایت مخرب MalSpam /Phishig Email
حملهای كه از طريق وبسايتهای مخرب يا MalSpam/ Phishing Email وارد میشود، از برنامههای مبتنی بر اسكريپت نظير Macros ،PoweShell ،VBScript ،JavaScript ،HTA و … استفاده میكند تا كد مخرب را مستقيما در حافظه اجرا كند. به طور معمول، اسکریپت اولیه به عنوان دانلودكنندهای عمل میکند که به یک وبسایت مخرب متصل میشود تا Payload مخرب واقعی را دانلود کند. اگر نقطه ورود Malspam يا Phishing باشد، Fileless Attack نخواهد بود در نتیجه در آغاز مسير حمله، يك سند وجود دارد كه برنامه آنتيويروس میتواند آن را اسكن كند. هنگامی که اسکریپت مخرب مستقیماً روی حافظه اجرا میشود و سند مذكور را پس از اجرا پاک میکند و به یک تهدید بدون فايل تبدیل میشود.
ماندگاری به هدف نهایی مهاجم بستگی دارد، Fileless Malware ممکن است به هیچ وجه پایدار نباشد، از آنجا که کد مخرب پيش از اين رويداد در حافظه در حال اجرا است، میتواند Payload خود را زودتر راهاندازی کند. اگر بدافزار پايدار نباشد، با یک Reboot ساده کد بدون فايل در حافظه پاک میشود، جاسازی اسکریپتها در رجیستری، WMI یا امور برنامهریزی شده، متد رايج پايدارسازی مورد استفاده مهاجمان است.
انواع Fileless Attackها
Code Injection
ترفندی است كه هدف آن ايجاد تهديد برای فرآيندی قانونی بوده و منجر به این می شود که آن فرآيند به اجرای یک كد مخرب گردد. اين نوع حمله راهی برای دستیابی به پنهانکاری از طریق اجرای حافظه است. استفاده از روند قانونی برای مهاجمان حكم استتار را دارد تا از شناسايی فرار كنند؛ چراكه اين روند در ليست سفيد برنامههای ضدبدافزار قرار دارد. اين كار همچنين ترفند خوبی برای دور زدن جرمشناسی ديسك است. انواع مختلفی از ترفندهای Code Injection وجود دارند و برخی از آنها كه به طور متداول مورد استفاده بدافزار قرار ميگيرند، در زير فهرست شدهاند.
- Shellcode Injection
در اين نوع از Code Injection، فرآيندی مخرب كد را به داخل فرآيند قانونی Inject میكند و آن را در يك Thread جداگانه اجرا مينمايد.
- DLL Injection
در اين نوع، به جای آن كه كد در فرآيند موردنظر Inject شود، تنها مسير فايل DLL براي اجرا Inject میگردد.
- Reflective DLL Injection
این ترفند Injection را می توان ترکیبی از Shellcode Injection و DLL Injection دانست.
- Process Hollowing
اين نوع از Injection یک فرآیند قانونی در حالت تعلیق ایجاد میکند، بخش حافظه فرآیند را از کار میاندازد و کد مخرب را جایگزین میکند .اين فرآيند نيز مشابه Reflective DLL Injection است، با اين تفات كه در آن به جای آن كه DLL خود را Map نمايد، Injector يا Loader مسئول Map كردن DLL هدف در حافظه است.
- رونويسی ماژول
اين فرآيند از یک ماژول استفادهنشده برای پردازش استفاده میکند و کد آن را رونویسی میکند.
- Gargoyle
يك ترفند Proof of Concept يا POC است كه اجرای كد از حافظه Write Only يا Read Only را امكانپذير میكند.
- Process Doppelganging
اين روش متداول نيست، اما قابل ذكر است. این ترفند از تراکنش های NTFS برای پيادهسازی Payload ناخواسته (یعنی فرآیند مخرب) از یک فایل معاملهشده استفاده میکند و بنابراين روندی قانونی به نظر میرسد.
بررسی دو ترفند Process Hollowing و Reflective DLL Injection كه از جمله محبوبترين ترفندها ميان حملات بدون فايل هستند، که در ادامه به آن پرداخته می شود.