بخشی از مقاله

چکیده

در این پژوهش ما روش جدیدی را برای شناسایی بدافزارهای فراریخت ارائه میکنیم. این روش زیرمجموعهای از روشهای شناسایی ایستا محسوب میشود و مبتنی بر استخراج یک بردار ویژگی خاص از روی تفاضل فرکانس Opcodeهای پرتکرار در فایلهای مورد بررسی است. پس از آموزش شبکه عصبی به وسیله این بردارها، میتوان یک فایل ناشناس ورودی را به وسیله شبکه عصبی آموزش داده شده، شناسایی کرد.

این شناسایی علاوه بر تعیین اینکه فایل ورودی سالم است یا خیر، در صورتی که فایل ورودی یک بدافزار فراریخت باشد، خانواده بدافزار ورودی رانیز تعیین میکند. نتایج حاصل از آزمایشات ما روی چهار خانواده معروف از بدافزارهای فراریخت، بهبود قابل توجه نرخ تشخیص بدافزارهای متعلق به خانوادههای مورد بررسی را نشان میدهد. مقایسه نتایج حاصل از روش پیشنهادی با نتایج حاصل از یک پژوهش مشابه که از پژوهشهای قابل توجه اخیر میباشد، برتری نسبی روش پیشنهادی را، علیرغم سادگی و مقیاس پذیری بالای آن، نشان میدهد.

-1 مقدمه

در دنیای امروز باتوجه به اینکه تبادل اطلاعات حساسی از طریق کامپیوتر و در بستر شبکه اینترنت صورت میگیرد، حفظ امنیت اطلاعات مذکور اهمیت بسیار بالایی یافته است. بدافزارهای کامپیوتری یکی از بزرگترین تهدیدات برای حفظ امنیت اطلاعات موجود روی سیستمها به شمار میروند. طبق گزارش منتشر شده در فصل اول سال 2013 توسط شرکت امنیتی مک آفی، بدافزارها در حال گسترش میباشند و این روند سرعت بیشتری نیز به خود گرفته است. بر اساس این گزارش تا کنون بیش از 128 میلیون نوع بدافزار در پایگاه دادههای آزمایشگاههای این شرکت ثبت شده است.[1]

بدافزارنویسان مدام در حال ابداع روشهای مبهمسازی1 جدیدتر و پیچیدهتر برای جلوگیری از شناسایی بدافزارهای خود هستند که نتیجه آن پیچیدهتر شدن بدافزارهای امروزی و دشوارتر شدن مقابله با آنها است. بدافزارهای فراریخت2 با استفاده از روشهای مبهمسازی کد توانستهاند به خوبی از شناسایی توسط ضدبدافزارهایامروزی - که عموماً مبتنی بر شناسایی توسط امضا هستند - در امان بمانند. در واقع ثابت شدهاست که بدافزارهای فراریخت با بهکارگیری روشهای خاصی از مبهم سازی کد میتوانند در مقابل تمام روشهای شناسایی مبتنی بر امضا مخفی بمانند.

[2] فراریختی یکی از جدیدترین و پیچیدهترین شیوههای مورد استفاده توسط بدافزارها برای فرار از شناسایی است. در این روش کد بدافزار در هر بار انتشار به گونهای تغییر میکند که عملکرد آن ثابت بماند اما هر گونه امضای ممکن در بدافزار از بین برود. ماهیت این روش باعث ایجاد چالشی بزرگ در زمینه یافتن بدافزارهایی که از آن استفاده میکنند، شدهاست. با توجه به توضیحات فوق، در این پژوهش قصد داریم روشی جدید در زمینه شناسایی بدافزارهای فراریخت ارائه کنیم که در نوع خود قدرت بالایی در شناسایی داشته و از بسیاری روش های مشابه در این زمینه بهتر عمل میکند.

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

در بخش دوم به بررسی کارهای مشابه صورت گرفته برای شناسایی بدافزارها میپردازیم. روش خود را در بخش سوم مورد بررسی قرار میدهیم ودر بخش چهارم نتایج حاصل از کار خود را روی چند خانواده از بدافزارهای فراریخت نشان خواهیم داد و آنها را با یکی از روشهای اخیر که نتایج خوبی از خود نشان داده است مقایسه خواهیم کرد. در بخش پنجم نیز به جمعبندی و نتیجهگیری خواهیم پرداخت.

-2 مروری بر کارهای گذشته

در زمینه شناسایی بدافزارهای فراریخت تا کنون روشهای متعددی ارائه شده است. هر یک از این روشها نقاط قوت و ضعف خود را داشتهاند. اما تا کنون روشی جامع و با قدرت شناسایی بالا برای تمام خانوادههای فراریخت ارائه نشده است. در زمینه ارزیابی روشهای ارائه شده، از مجموعهای از خانوادههای معروف فراریخت برای بررسی میزان دقت روش ارائه شده در شناسایی آنها استفاده میشود. خانوادههای فراریختی که معمولاٌ در این ارزیابیها مورد استفاده قرار میگیرند، خانوادههای G2، MPCGEN، NGVCK هستند.

خانواده فراریخت NGVCK در این مجموعه پیچیدهترین نوع استفاده از روشهای مبهمسازی را دارد که باعث دشوارتر شدن شناسایی آن میشود. علاوه بر این خانوادهها در سال 2013 خانواده فراریخت MWOR توسط Sridhara و Stamp ارائه شد که قادر بود با استفاده از ترکیب کد خود با کدهای سالم، در مقابل شناسایی توسط بسیاری از روشهای آماری آن زمان در امان بماند.[8] در سالهای اخیر روشهای خوبی در راستای شناسایی بدافزارهای فراریخت ارائه شدهاست.

اما در ارزیابی آنها، هر یک در مقابل شناسایی برخی از خانوادههای فراریخت ضعف دارند. در سال 2012 روش استفاده از بینظمی ساختاری توسط Baysa ، Low و Stamp ارائه شد .[4] این روش زیرمجموعهای از روشهای آماری است که مبتنی بر اندازهگیری شباهت میان دو فایل میباشد. اما بر خلاف اغلب روشهای موجود در این مجموعه که روی کد اسمبلی استخراج شده از فایل کار میکنند، این روش بر روی کد دودویی فایل اجرایی داده شده تحلیل خود را انجام میدهد.؛ که این موضوع باعث کاهش سربار و افزایش کارایی این روش شده است. اصول این روش بر مبنای شناسایی شباهت میان بینظمی موجود در فایل داده شده و گونههای متفاوت بدافزارهای یک خانواده است.

در ارزیابی این روش از سه خانواده G2، MWOR، NGVCK استفاده شده است که در مورد خانواده بدافزارهای فراریخت G2 این روش به خوبی عمل میکند و اختلاف چشمگیری در امتیازدهی آن به یک فایل بدافزار و یک فایل عادی مشاهده میشود. در مورد خانواده MWOR نیز این روش به نسبت سایر روشهای مشابه عملکرد بهتری از خود نشان میدهد؛ حتی در حالتی که میزان ترکیب بدافزار با کدهای معمولی توسط این موتور فراریخت زیاد باشد. اما در مورد خانواده بدافزارهای NGVCK عملکرد این روش چندان خوب نیست. امتیازدهی این روش به میزان زیادی به طول و تعداد قطعههای تولید شده در گام اول بستگی دارد. از آنجایی که موتور فراریخت NGVCK فایلهایی تولید میکند که طول آنها به میزان قابل توجهی متغیر است، این میتواند دلیلی بر شکست این روش در شناسایی بدافزارهای این خانواده باشد.

در سال 2013 روشی با استفاده از فاصله جانشینی ساده توسط Shanmugam، Low و Stamp ارائه شد .[7] در این روش که مبتنی بر یافتن شباهت میان دو فایل داده شده است، میزان شباهت میان دو فایل بر اساس Opcodeهای موجود در آن فایلها محاسبه می شود؛ عملکرد آن از تحلیل رمز جانشینی ساده الهام گرفته شده است و در این روش بر اساس الگوریتم Jackobsen در زمینه تحلیل رمز جانشینی ساده، به فایل مورد بررسی، امتیازی نسبت به یک خانواده خاص از بدافزارهای فراریخت اختصاص داده میشود.

این امتیاز در واقع مشخص میکند که احتمال تعلق فایل به خانواده مورد نظر از بدافزارهای فراریخت چقدر است . برای ارزیابی این روش از سه خانواده از بدافزارهای فراریخت استفاده شده است: NGVCK، G2، .MWOR این روش به خوبی بدافزارهای مربوط به دو خانواده NGVCK و G2 را شناسایی میکند اما در مورد خانواده MWOR که به طور خاص برای فرار از روشهای شناسایی آماری طراحی شدهاند کیفیت عملکرد آن کاهش مییابد.

روش استفاده از بردارهای ویژگی در سال 2014 در پژوهشی که Deshpande، Park، Stamp انجام دادند، ارائه شد .[7] این روش از روش استفاده از بردار ویژگی برای شناسایی چهره الهام گرفته شده است. در روش استفاده از بردار ویژگی از هر چهره بردارهایی که بردارهای ویژگی3 چهره نامیده می شوند، استخراج شده و با استفاده از آنها چهره جدید با چهرههایی که از قبل در سیستم وجود داشتهاند مطابقت داده میشود.

این روش در نوع خود جالب توجه است و نتایج خوبی را نیز از خود نشان داده است. برای بررسی نتایج این روش از چهار خانواده بدافزارهای فراریخت MWOR MPCGEN, NGVCK, G2 استفاده شده است. این روش در شناسایی بدافزارهای خانواده NGVCK و MWOR با نسبتهای مختلف از کد سالم از خود ضعف نشان میدهد . اما در مجموع میتوان گفت که این روش نسبت به سایر روشهای مشابه، به طور متوسط قدرت شناسایی بالاتری را از خود نشان داده است.

-3 روش پیشنهادی

راه حل پیشنهادی ما شاخهای از روشهای تحلیل ایستا و مبتنی بر روش تحلیل آماری است. در روش پیشنهادی ما، ایده اولیه، استفاده از یک بردار ویژگی به عنوان ورودی برای یک طبقهبند است. این بردار ویژگی که در این بخش به توصیف آن میپردازیم ایده ای نو در خود دارد که نشان می دهیم برای شناسایی بدافزارهای فراریخت بسیار مناسب است. از طرفی به دلیل سادگی استخراج و استفاده از این بردار ویژگی، روش پیشنهادی قابلیت خوبی برای پیادهسازی در سطح وسیع دارد. علاوه بر این در این روش به جای استفاده از یک طبقهبند برای طبقهبندی تمام خانوادههای فراریخت - که روشی معمول در کارهای مرتبط می باشد - از یک طبقهبند به ازای هر یک از خانوادههای فراریخت استفاده شده است. این موضوع گسترشپذیری روش ما را تضمین میکند و علاوه بر آن محدودیتی از نظر اجرایی ایجاد نمیکند.

-1-3 ایده روش پیشنهادی

برای شناسایی بدافزارهای فراریخت با استفاده از روش تحلیل آماری، مهمترین نکته استفاده از یک ویژگی آماری است که نتوان آن را با استفاده از روشهای مبهم سازی تحت تأثیر قرار داد و از دقت آن کاست. روشهایی که در بخش دوم شرح داده شدند هر یک از ویژگی خاصی برای این منظور استفاده میکنند. مشکل ویژگیهای مورد استفاده در این روشها این است که هر کدام از آنها حداقل در مقابل یکی از روشهای مبهمسازی به درستی عمل نمیکنند.

به عبارت دیگر برای فرار از شناسایی توسط هر کدام از این روشها، حداقل یک روش مبهمسازی خاص وجود دارد که با استفاده از آن، بدافزار می تواند ویژگی انتخابی در روش را تحت تأثیر قرار داده و از شناسایی توسط آن جلوگیری کند. بنابراین بدافزاری که به خوبی از تمام روشهای مبهم سازی استفاده کند توسط هیچ یک از روشهای اشاره شده در بخش دوم قابل شناسایی نخواهد بود. از طرف دیگر، در اکثر روشهای اشاره شده از یک طبقهبند برای شناسایی تمام خانوادههای بدافزار استفاده شده است.

به عبارت دیگر پس از آموزش طبقهبند، فایل مورد نظر برای شناسایی به این طبقهبند داده میشود و طبقهبند تعیین میکند که این فایل، مربوط به کدام خانواده از بدافزارها است. شکل 1 این راه حل را نشان میدهد. این راه حل دو مشکل در پی دارد؛ اول اینکه با استفاده از تنها یک طبقهبند برای شناسایی تمام خانوادههای بدافزار، قدرت گسترشپذیری طبقهبند کاهش مییابد و برای شناسایی هر خانواده جدید از بدافزارها نیاز است که طبقهبند تغییر کند. مشکل دوم این راه حل این است که کارایی طبقهبند از این طریق کاهش مییابد. به عبارت دیگر با استفاده از یک طبقهبند برای تشخیص تعداد زیادی از خانوادههای بدافزار، تمرکز طبقهبند و در نتیجه دقت آن کم می شود.

روش پیشنهادی ما بر دو ایده اصلی استوار است. ایده اول استفاده از چندین طبقه بند به جای یک طبقه بند است. به بیان بهتر، ما برای هر خانواده از بدافزارهای فراریخت، از یک طبقهبند جداگانه استفاده میکنیم. این موضوع باعث میشود زمانی که قرار است قدرت شناسایی خانواده جدیدی از بدافزارهای فراریخت به سیستم اضافه شود، تنها لازم باشد تا یک طبقهبند که برای شناسایی آن خانواده آموزش دیده است به مجموعه طبقهبندها اضافه شود و نیازی به تغییر طبقهبندهای مورد استفاده نباشد. بنابراین با این راه حل قدرت گسترشپذیری سیستم تشخیص بدافزار بالا میرود. مزیت دیگر این راه حل این است که هر طبقهبند تنها مسئول شناسایی یک خانواده از بدافزارهای فراریخت است.

ایده دومی که روش ما بر اساس آن شکل گرفته است، نوع ویژگی انتخاب شده برای ورودی طبقهبند است. این ویژگی علاوه بر سادگی، تا حد زیادی برای شناسایی تمام روشهای فراریختی مناسب است. ویژگیای که ما در روش پیشنهادی خود از آن استفاده کردهایم، تفاضل فرکانس وقوع دستورات است. به این معنی که برداری شامل تعداد تکرار هر دستور موجود در برنامه ساخته خواهد شد. سپس این بردار با استفاده از تفاضل مقادیر متوالی موجود در آن به بردار دیگری تبدیل خواهد شد که بردار ورودی طبقهبند ما برای آموزش و شناسایی خواهد بود.

-2-3 معماری روش پیشنهادی

در این بخش معماری کلی روش پیشنهادی را بیان می کنیم. همانطور که در بخش قبل گفته شد، روش ما مبتنی بر استفاده از یک چند-طبقهبند4 است. در این روش فایل مورد نظر برای شناسایی به زیرسیستمهای طبقهبندی داده میشود و خروجی این زیرسیستمها برای نتیجه نهایی به یک تابع تصمیمگیری وارد میشوند.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید