برخی از مردم ترجیح میدهند هیچگاه ماشین آنها به اینترنت متصل نشود تا امکان هک کردن آن وجود نداشته باشد. یک چنین دیدگاهی در دنیای امنیت هم حکمفرما است. امروزه متخصصان حوزه امنیت با مشکلی به نام بدافزارهای فارغ از فایل (fileless malware) روبرو هستند. بدافزارهایی که شبیه به اشباح وجود دارند، اما قادر به دیدن آنها نیستید.
آلودگی فارغ از فایل چیست؟
آلودگی فارغ از فایل به حالتی اشاره دارد که بدافزار یا ویروسی سامانه یا شبکهای را آلوده میکند، اما هیچ فایل یا پردازهای برای شناسایی بدافزار وجود ندارد. برای درک دقیق این مدل از بدافزارها، باید نحوه کار ضدویروسهای سنتی را بررسی کنیم. ضدویروسهای سنتی در سه مرحله یک فایل آلوده را پیدا میکنند.
• در اولین مرحله آلودگی، فایلهایی روی هارددیسک قرار میگیرند.
• ضدویروس فایلها را پویش کرده و فایلهای مشکوک به آلودگی را تحلیل میکند.
• اگر بدافزاری شناسایی شد، ضدویروس، فایلهای مخرب را قرطنیه یا پاک میکند.
این مکانیزم شناسایی و انهدام برای بدافزارهای عادی خوب کار میکند، اما گونه دیگری از آلودگیها، فارغ از فایل هستند و هیچ فایلی روی سامانه قربانی قرار نمیدهند. به همین دلیل سامانههای کامپیوتری امروزی به یک مکانیزم حفاظتی مضاعف نیاز دارند، در غیر این صورت، هکرها به راحتی به سامانهها حمله کرده و آسیبهای مختلفی به سامانهها وارد میکنند.
چرا هکرها از بدافزارهای فارغ از فایل استفاده میکنند؟
هکرها خلاق و پویا هستند و همواره به دنبال ابداع روشهای تازهای برای حمله به سامانههای کامپیوتری هستند. بدافزارهای فارغ از فایل خود گویای این مسئله هستند. بدافزارهای فارغ از فایل به دلایل زیر طراحی و پیادهسازی میشوند:
• پنهانکاری (Stealth): توانایی استتار به یک بدافزار اجازه میدهد از دید محصولات امنیتی پنهان شود و مدت زمان طولانیتری روی یک سامانه یا حتی یک شبکه باقی بماند.
• افزایش دسترسی (Privilege escalation): بدافزاری که بتواند با سطح دسترسی مدیر به آسیبپذیریهای یک سامانه دسترسی پیدا کند، به هکرها اجازه میدهد هرگونه فعالیت مخربی را به بهترین شکل روی یک سامانه یا شبکه پیاده سازی کنند.
• جمعآوری اطلاعات (Information gathering): جمعآوری حداکثری اطلاعات درباره قربانی و کامپیوتر قربانی. (این اطلاعات در آینده برای پیادهسازی حملات دیگری استفاده خواهند شد.)
• ماندگاری (Persistence): توانایی نگهداری و پنهانسازی بلندمدت یک بدافزار در یک سامانه.
کاری که هکرها انجام میدهند، حفظ طولانی مدت و پنهان نگه داشتن بدافزار روی یک سامانه است. در اینجا پنهان نگه داشتن آلودگی رمز موفقیت بدافزارهای فارغ از فایل است. زمانیکه کیت اکسپلویت حاوی بدافزار فارغ از فایل به سیستمی وارد میشود، در مرحله بعد به هکرها اجازه میدهد بدافزار اصلی را به سامانه تزریق و ضربه نهایی را وارد کنند.
بدافزار فارغ از فایل یک آلودگی ساده نیست
هکرها میتوانند بدافزارهای فارغ از فایل را به طریقی کدنویسی کنند که پس از نوشتن، بدافزار به شکل دایمی درون حافظه اصلی کامپیوتر مقیم شده و در بخشی از سامانه که ضدویروس آن بخش را پویش نمیکند قرار دهند. این نوع آلودگی که پنهان و دایمی بودن دو فاکتور اصلی آن به شمار میروند، مشکلات فراوانی برای یک سامانه به وجود میآورند. از معروفترین بردارهای حمله که بی شباهت به بدافزارهای فارغ از فایل نیستند به موارد زیر میتوان اشاره کرد:
• بدافزار مقیم در حافظه: بدافزارهای مقیم در حافظه شبیه به بدافزارهای فارغ از فایل میتوانند از فضای حافظه یک پردازه یا یک فایل سیستمی ویندوز برای انجام فعالیتهای خود استفاده کنند. شیوه کار بدافزارهای فوق به این شکل است که کد مخرب درون فضای حافظه اصلی قرار گرفته و مادامی که شناسایی نشود در حافظه باقی خواهد ماند. بدافزارهای مقیم در حافظه به طور دقیق فارغ از فایل نیستند، اما عملکرد آنها یکسان با بدافزارهای فارغ از فایل است. این بدافزارها بیشتر به زبانهای سطح پایین شبیه به اسمبلی یا سی نوشته میشود.
• روتکیتها: روتکیتها با هدف کنترل یک سامانه کامپیوتری بدون اطلاع کاربر، یک سامانه را آلوده می کنند. آنها سعی میکنند سطح دسترسی مدیریتی به یک سیستم را به دست آورند. روتکیتها برای آنکه حضوری ماندگار در یک سیستم داشته باشند و حتی با وجود پویش یک سامانه و راهاندازی مجدد یک سیستم بازهم فعال باشند باید به درون هسته سیستمعامل نفوذ کنند. روتکیتهایی که درون هسته یک سیستمعامل قرار میگیرند، ناپیدا بوده و پاک کردن آنها تقریبا غیرممکن است. روتکیتها به شکل دقیق آلودگی فارغ از فایل نیستند، اما عملکردی یکسان با آلودگی فارغ از فایل دارند.
• بدافزارهای مقیم در رجیستری ویندوز: نسل جدید بدافزارهای فارغ از فایل میتوانند درون رجیستری ویندوز پنهان شوند. رجیستری قلب تپنده ویندوز است که تنظیمات سیستمعامل و برنامههای کاربردی درون آن ذخیره شده است. رجیستری ویندوز مکانی است که اگر ناخواسته اطلاعات حساس درون آن را تغییر داده یا پاک کنید، احتمال از کار افتادن ویندوز یا سایر برنامههای کاربردی وجود دارد. بدافزارهای فارغ از فایل رجیستری ویندوز، قابلیت خودنابودگری دارند. به عبارت دقیقتر، زمانی که فعالیتشان روی یک سامانه به پایان رسید، خود را نابود میکنند.
بدافزارهای فارغ از فایل اولین بار در اوت 2014 میلادی شناسایی شدند. Poweliks Trojan اولین مورد از این بدافزارها بود. بدافزار فوق به شکلی مهندسی شده بود که کلاهبرداری مبتنی بر کلیک (click-fraud) را انجام میداد. با این حال، در 5 سال گذشته این مدل بدافزارها به سرعت پیشرفت کردند. Poweliks Trojan سرآغازی بر یک تحول بزرگ در دنیای هکری به شمار میرود، زیرا موفق شد چشماندازی جدید پیش روی هکرها قرار دهد. هکرها با اتکا بر شیوه عملکرد بدافزار فوق توانستند عملیات خرابکارانه جدیدی به شرح زیر رقم بزنند:
• پیادهسازی گونه جدیدی از بدافزارها که سامانهها را بدون آنکه دیده شوند آلوده کنند
• سودآوری کلان با ساخت و توزیع بدافزارهای فارغ از فایل
• انتقال دائمی باردادهها به رجیستری سیستم پس از بهرهبرداری از آنها
• استقرار کیتهای مخرب ماژولار و انعطافپذیر با هدف شناسایی سریعتر آسیبپذیریها
• بهرهبرداری از تعداد بیشتری از آسیبپذیریهای روز صفر برای حمله به سامانههای کامپیوتری
• به دست آوردن پول سریع و راحت با هدف آلودهسازی کامپیوترها به باجافزار
بدافزارهای فارغ از فایل عاری از مشکل هستند؟
پاسخ منفی است. بدافزارهای فارغ از فایل در حافظه اصلی کامپیوتر اجرا میشوند و تنها زمانی که کامپیوتر روشن است، قادر به انجام فعالیت هستند. به همین دلیل هکرها فرصت کمی برای حمله و نفوذ به سیستمعامل دارند. با این حساب اگر یک سامانه کامپیوتری متصل به شبکه مدت زمان طولانی روشن باقی بماند، احتمال پیادهسازی موفقیتآمیز حمله بیشتر خواهد بود.
آلودگی فارغ از فایل چگونه کار میکند؟
برای روشن شدن بهتر مطلب به سناریو واقعی آلودهسازی با یک بدافزار فارغ از فایل توجه کنید.
شما روی یک مرورگر مدرن همچون کروم که از جاوااسکریپت پشتیبانی میکند، افزونه فلش را نصب میکنید. افزونه فلش به دلیل عدم نصب وصلههای ارائه شده به روز نیست. به سایتی مراجعه میکنید که کیت بهرهوری Angler روی آن نصب شده است. کیت فوق سامانه شما را برای شناسایی آسیبپذیریها پویش کرده و موفق میشود آسیبپذیری افزونه فلش را شناسایی کند. در این مرحله باردادهای روی کش مرورگر کروم اجرا میشود. اگر بارداده بدافزاری، یک کد مخرب باجافزاری باشد، بارداده به سرور کنترل و فرمانی متصل میشود تا کلید رمزگذاری را دریافت کند. در آخرین مرحله، رمزگذاری دادهها روی سامانه اجرا میشود که باجافزار کامپیوتر و فایلهای حساس را قفل کرده و برای دسترسی مجدد به فایلها درخواست باج میدهد.
در سناریو فوق بارداده به شکل مستقیم به پردازه مدنظر هکر تزریق شده و در حافظه اصلی کامپیوتر اجرا میشود. در این مکانیزم حمله به دلیل عدم وجود فایل روی هاردیسک کاربر، هیچگونه سرنخ یا امضایی از بدافزار وجود نداشته و در حالت عادی ضدویروس نمیتواند از طریق اسکن امضا بدافزار آن را شناسایی کند. ضدویروسهای عادی تنها زمانی قادر به شناسایی باردادههای مخرب هستند که بارداده روی هارددیسک ذخیره شده باشد یا به شکل فعال در حافظه اصلی سیستم در حال اجرا باشد.
عملکرد بدافزار Poweliks چگونه است؟
Poweliks اولین بدافزار فارغ از فایلی است که اوت 2014 میلادی شناسایی شد. بدافزاری که ضمن آلودهسازی سامانه قربانیان به باجافزار، قادر است حمله کلاهبرداری مبتنی بر کلیک را اجرا کند. (شکل 1) عملکرد بدافزار فوق در نوع خود جالب توجه است.
شکل 1 - شیوه آلوده سازی یک سامانه با کیت بهره برداری Angler
Poweliks فهرستی از کلیدواژههای پیشفرضی در اختیار دارد که برای تولید درخواستهای تبلیغاتی استفاده میکند. به عبارت ساده تر، بدافزار از کلیدواژههای خود برای شبیهسازی حالتی استفاده میکند که کاربری روی یک تبلیغ کلیک میکند. در این حالت بدون آنکه کاربر اطلاعی از این موضوع داشته باشد، بدافزار تبلیغی ایجاد کرده و خود روی تبلیغ کلیک میکند تا کاربر را به یک شبکه تبلیغاتی که مرتبط با بدافزار است متصل کند. در این مرحله بدافزار درخواستی برای دسترسی به یک آدرس اینترنتی که از طریق شبکه تبلیغاتی منتشر شده ارسال میکند و سپس هزینهای برای دانلود تبلیغات دریافت میکند. برخی از این درخواستها، صفحات وبی که حاوی بدافزار هستند را باز میکنند که حاوی اسکریپتها یا کدهای مخربی هستند که باعث آلوده شدن سامانه قربانی به سایر بدافزارها میشوند. یکی از صفحات وبی که بدافزار فوق به آن مراجعه میکند سامانه قربانی را به تروجان Cryptowall آلوده میکند. در برخی موارد نیز تبلیغ مبتنی بر کلیک با گونه دیگری از تهدیدات سایبری موسوم به تبلیغافزارها (malvertising) ترکیب میشود که بیشتر جنبه درآمدزایی برای هکرها دارد. در شرایطی که قربانیان تبلیغات را مشاهده نمیکنند، در پسزمینه از منابع سامانههای قربانیان همچون پهنای باند شبکه برای پردازش تبلیغات استفاده میشود که همین مسئله آلودگی سامانههای دیگر را به همراه آورده و زنجیرهای از آلودگی به بدافزارها یا باجافزارها را به وجود میآورد.
کیتهای بهرهبرداری رمز موفقیت بدافزارهای فارغ از فایل
موفقیت یک بدافزار فارغ از فایل به کیت بهرهبرداری بستگی دارد. کیتهای بهرهبرداری، قطعه کد یا برنامههای کوچک نرمافزاری هستند که برای شناسایی آسیبپذیریها، رخنهها، ضعفها یا سایر مشکلات برنامههای کاربردی و نفوذ به سامانهها یا شبکههای کامپیوتری استفاده میشوند. بهطور مثال، کیت بهرهبرداری Angler میتواند آسیبپذیریها را شناسایی کرده و بدافزارهای فارغ از فایل را درون سامانه قربانیان تزریق کند. پایگاههای دادهای ضدویروسها برای شناسایی کیت فوق دائما در حال بهروزرسانی هستند، زیرا Angler توانایی بالایی در انطباق با محیط داشته و قادر است طیف گستردهای از سامانهها را به بدافزارهای بانکی یا باجافزارها آلوده کند.
چه عواملی باعث افزایش رشد بدافزارهای فارغ از فایل شدهاند؟
اولین عامل شیوع و گسترش، مدل جدیدی از بازاریابی زیرزمینی به نام کیت بهرهبرداری در قالب سرویس (exploits kits-as-a-service) است. دیدگاه انسانها با گذشت زمان تغییر پیدا میکند و هکرها نیز از این قاعده مستثنا نیستند. هکرها به جای حمله مستقیم به سامانهها یک چنین کیتهایی را توسعه داده و در دارکوب به فروش میرسانند. عامل کلیدی دوم به نرخ تولید بسیار بالای بدافزارها مربوط میشود. شرکت pandasecurity در گزارشی اعلام کرده است، روزانه 230 هزار عدد بدافزار جدید یا به عبارت دقیقتر نمونه بدافزار تولید میشود که اجازه میدهند هکرها با کمترین زحمت ممکن بهترین گزینه را انتخاب کنند. Angler تنها کیت بهرهبرداری مرتبط با بدافزارها فارغ از فایل نیست. در دسامبر 2015 میلادی، شرکتهای امنیتی موفق به شناسایی کمپین جدیدی شدند که یک تروجان فارغ از فایل را منتشر میکرد و از کیت بهرهبرداری Kovter استفاده میکرد. این بدافزار به واسطه دو خصلت پنهانکاری و ماندگاری موفق شده بود طیف بسیار گستردهای از سامانههای کامپیوتری را به بدافزار CoreBOT که برای سرقت اطلاعات مالی از آن استفاده میشود آلوده کند. عملکرد جالب توجه بدافزارهای فارغ از فایل متخصصان امنیتی را شگفتزده کرده است، زیرا تا به امروز هیچ کارشناس امنیتی انتظار آنرا نداشت که هکرها به دنبال راهی برای حفظ ماندگاری کدهای مخرب باشند. در گذشته، هکرها سعی میکردند در کمترین زمان ممکن بدافزار مقیم روی یک سامانه را پاک کنند تا ردپایی باقی نماند. اما اکنون هدف سرقت اطلاعات شخصی و اطلاعات مالی است. به همین دلیل شرکتهایی همچون پاندا و مکآفی پیشبینی کردهاند در سالهای آتی با رشد چشمگیر بدافزارهای فارغ از فایل روبرو خواهیم بود.
چگونه از سامانههای خود در برابر بدافزارها فارغ از فایل محافظت کنیم؟
در ابتدای کار شناسایی بدافزارهای فارغ از فایل کار چندان سختی نبود، زیرا مقیم شدن آنها در حافظه اصلی یک سامانه باعث کندی عملکرد میشد و شناسایی به سادگی انجام میگرفت. اما اکنون اینگونه نیست و بدافزارها بهینهسازی شدهاند! برای در امان ماندن از خطرات بدافزارهای فارغ از فایل بهتر است به موارد زیر دقت کنید:
شماره 1، برنامهها و سیستمعاملها باید بهروز باشند
بیشتر مردم به دلایلی همچون مصرف بیش از اندازه حافظه اصلی، از دست رفتن فضای خالی هارددیسک، کند شدن سرعت کامپیوتر یا عدم سازگاری بهروزرسانی با برنامههای کاربردی تمایلی ندارند نرمافزارها و سیستمعامل خود را بهروز کنند. به هوش باشید، بهروزرسانیهای امنیتی دیگر همچون دو دهه گذشته جنبه اختیاری ندارند. آنها مهم و کلیدی هستند. بهروزرسانی نرمافزارها و سیستمعاملها در 85 درصد موارد باعث خنثا شدن حملات میشوند.
شماره 2، عدم مراجعه به صفحاتی که کیت بهرهبرداری درون آنها قرار دارد
آلودگی زمانی که وارد سایتی میشوید که کیت بهرهبرداری درون آن قرار دارد، آغاز میشود. اگر یک بسته امنیتی خوب روی سامانه خود نصب کرده باشید، بسته امنیتی اجازه نخواهد داد صفحه مخرب درون مرورگر باز شود. در نتیجه کیت بهرهبرداری هیچگونه شانسی برای دسترسی به برنامههای کاربردی نخواهد داشت. چگونه یک بسته امنیتی چنین موضوعی را تشخیص میدهد؟ هکرها برای زیرساختهای کسبوکار خود همچون وبسایتها و سرورها هزینههای زیادی متحمل میشوند و به ندرت آنرا تغییر میدهند، زیرا تغییر مستلزم زمان و هزینه زیادی است و در نتیجه بستههای امنیتی با اتکا بر رکوردهای دادهای بانکاطلاعاتی آنلاین خود قادر به تشخیص این مسئله هستند.
شماره 3، بستن بار داده ارسالی
زمانی که یک کیت استخراجکننده آسیبپذیریها، موفق شود رخنهای در سامانه شما شناسایی کند، بهطور خودکار به سرور کنترل و فرماندهی هکرها متصل شده و فرآیند دانلود باردادهها و انتقال آنها به حافظه اصلی را آغاز میکند. در چنین شرایطی اگر سامانه شما به خوبی محافظت شده باشد، بسته امنیتی به سرعت متوجه اتصال کیت بهرهبرداری به سرور مخرب خواهد شد و اجازه نخواهد داد بارداده مخرب دانلود شود.
شماره 4، قطع دسترسی سرور مخرب به سامانه کامپیوتری
تصور کنید، باردادهای توانسته است از آسیبپذیری روز صفر نرمافزاری که روی سامانه شما نصب شده است به سیستم وارد شود. یک بسته امنیتی خوب یک لایه امنیتی مضاعف پیرامون سامانه شما به وجود آورده و اجازه نمیدهد ارتباط میان کامپیوتر و سرور کنترل و فرماندهی برقرار شود. سامانههای تشخیص نفوذ و پیشگیری از نفوذ دو ابزار قدرتمندی هستند که به خوبی چنین موارد مشکوکی را تشخیص میدهند. سامانههای امنیتی قدرتمند اجازه نمیدهند هکرها به راحتی دادههای جمعآوری شده از کامپیوتر شما را به دست آورند و برای آلودهسازی سامانه از دادههای جمعآوری شده استفاده کنند. دقت کنید، ضدویروسهای رایج نمیتوانند چنین سطح از امنیتی را ارائه کنند و باید به فکر راهحلهای مکملی باشید که به آنها اشاره (شماره ... ماهنامه شبکه) شد. یک چنین سامانههایی رایگان نیستند، اما ارائه یک مکانیزم امنیتی قدرتمند خرید آنها را توجیهپذیر میکند.