زیرساخت های ارتباطی و کامپیوتری مدرن مستعد انواع و اقسام حملات می باشند. یکی از روشهای معمول برای راه اندازی این حملات، به وسیله نرم افزارهای خرابکاری (بدافزار[1]) نظیر کرم ها، ویروس ها و اسب های تروجان[2] می باشد که در هنگام انتشار، می توانندآسیب های شدیدی به کاربران خصوصی، شرکت ها و محیط های تجاری وارد کنند. رشد اخیر در زمینه اتصالات پرسرعت اینترنت امکان تکثیر و انتشار بدافزار و آلوده کردن بسیار سریع میزبان ها را فراهم می آورد، در نتیجه تشخیص و حذف فوری بدافزار جدید (ناشناخته) الزامی می باشد.
فروشندگان آنتی ویروس هر روز با مقادیر عظیمی (هزاران) از فایلهای مشکوک مواجه می شوند. این فایلها از منابع مختلفی مثل هانی پات های تخصیص داده شده، تامین کنندگان و فراهم کنندگان شخص ثالث و فایلهای گزارش شده توسط مشتریان به صورت خودکار یا صریح جمع می شوند.
مقدار زیاد فایلها، بازرسی کارآمد و موثر فایلها را به ویژه چالش برانگیز جلوه می دهد. هدف اصلی ما در این مطالعه، فیلتر کردن فایلهای خرابکار ناشناخته از فایلهای ورودی برای یک فروشنده آنتی ویروس به صورت روزانه می باشد. برای این کار، شیوه نمایش فایلهای خرابکار را با عبارتهای OpCode به صورت ویژگیهایی در وظیفه دسته بندی، مورد پژوهش قرار می دهیم.
تکنیک های تحلیل گوناگونی برای تشخیص بدافزار پیشنهاد شده است که معمولاً بین پویا و ایستا تمایز قائل می شوند. در تحلیل پویا ( که همچنین معروف به تحلیل رفتاری می باشد)، تشخیص بدافزار شامل اطلاعات جمع آوری شده از سیستم عامل[3] در زمان اجرا ( به عبارتی در طول اجرای برنامه )نظیر فراخوان های سیستم، دسترسی به شبکه، و فایلها و تغییرات حافظه می باشد. این شیوه دارای معایب مختلفی می باشد. اولاً، شبیه سازی شرایط مناسب برای فعال سازی توابع خرابکار برنامه نظیر برنامه آسیب پذیر مورد استفاده بدافزار، سخت و دشوار می باشد. ثانیاً، روشن نیست برای مشاهده ظهور و پدیدار شدن فعالیت خرابکار برای هر بدافزار به چه دوره زمانی نیاز می باشد.
در تحلیل ایستا، اطلاعات مربوط به برنامه یا رفتار مورد انتظارش از مشاهدات صریح و ضمنی در کد دودویی/ مبدا تشکیل می شود. حسن اصلی تحلیل ایستا آن است که توانایی تشخیص فایل بدون اجرای حقیقی و در نتیجه دسته بندی سریع را دارد.
راه حل های تحلیل ایستا عمدتاً با استفاده از روش مبتنی بر امضا اجرا می شوند که متکی بر شناسایی رشته های منحصر به فرد کد دودویی[4] می باشد. روشهای مبتنی بر امضا هرچند بسیار دقیق هستند اما در برابر کدهای خرابکار ناشناخته بدون استفاده می باشند. بنابراین، تعمیم روشهای تشخیص عنصری مهم برای تشخیص بدافزار ناشناخته قبل از اجرایش می باشد. اخیراً، از الگوریتم های دسته بندی برای خودکار نمودن توسعه ایده روشهای مبتنی بر هیوریستیک(ابتکار) استفاده گردید. در این روشها، کد دودویی فایل به طور مثال، با استفاده از توالی بایت (به عبارتی n-gram بایت) نمایش و از دسته بندها برای یادگیری الگوها در کد جهت دسته بندی فایل های جدید (ناشناخته) به صورت خرابکار یا بی خطر[5] استفاده می شود. مطالعات اخیر که در بخش بعدی مورد بررسی قرار می دهیم نشان داده اند که با استفاده از n-gram بایت برای نمایش ویژگیهای فایل دودویی، دستبندهایی با نتایج دسته بندی بسیار درست را می توان آموزش داد، با این وجود هنوز فضایی برای بهبود باقی می ماند.
در این مقاله، که یک ورژن توسعه یافته از[11] است، از روشی برای طبقه بندی بدافزار با پیاده سازی مفاهیم از حوزه طبقه بندی متن استفاده می کنیم که توسط تعدادی از مولفین در[12] مطرح گردید. اگرچه اکثر مطالعات قبل ویژگی هایی مبتنی بر byte n-gram استخراج کرده اند [13, 12]، اما در این مطالعه از الگوهای OpCode n-gram استفاده می کنیم که با دیس اسمبل کردن فایل های اجرایی مشکوک جهت نمایش فایل ها تولید شده اند. برخلاف توالی بایت، انتظار می رود عبارت های OpCode، استخراج شده از فایل قابل اجرا ، نمایش معنادار تری از کد حاصل نمایند.
در مقایسه با طبقه بندی متن، استفاده از حروف یا توالی های حروف به عنوان ویژگیها، آنالوگ استفاده از توالی های بایت می باشد، در حالیکه استفاده از کلمات یا توالی های کلمات آنالوگ توالی های OpCode می باشد.
یکی دیگر از جنبه های مهم در هنگام استفاده از دسته بندهای دودویی برای تشخیص مد خرابکار ناشناخته، مسئله عدم تعادل می باشد. مسئله عدم تعادل به سناریوهایی اشاره می کند که نسبت های کلاس ها برابر نیستند. مطالعات قبل ارزیابی هایی براساس مجموعه های تست با نسبت های مشابهی از فایل های خرابکار و بی خطر در مجموعه های تست، مطرح کردند. این نسبت ها بازتابی از موقعیت های زندگی واقعی نیستند که کد خرابکار به طور قابل توجهی پایین تر از 50 درصد بوده و به همین خاطر نتایج خوشبینانه ای گزارش می کند.به عنوان یک مورد مهم، بررسی اخیر McAfee [14] نشان می دهد که در حدود 4 درصد از نتایج جستجو از موتورهای جستجوی اصلی برروی وب ، حاوی کد خرابکار می باشد. به علاوه، Shin و همکاران [15] نشان دادند که بیشتر از 15 درصد از فایلها در شبکه KaZaA حاوی کد خرابکار بودند.
دراین بخش چارچوب پیشنهاد شده در این مقاله را با استفاده از مجموعه تست حاوی بیش از 300000 فایل مورد ارزیابی قرار می دهیم تا بدین طریق تنظیمات بهینه چارچوب را تعیین کنیم. به علاوه، مسئله عدم تعادل را مورد پژوهش قرار داده و از طریق نسبت های خرابکار- بی خطر مختلف، بهترین زمینه برای مجموعه آموزش مفروض به مجموعه تست را مورد ارزیابی قرار می دهیم.
یکی دیگر از جنبه های حفظ و نگهداری چنین چارچوبی، اهمیت به روزرسانی مجموعه آموزشی با فایل های خرابکار شناخته شده جدید می باشد. از مسئله از لحاظ شهودی مهم می باشد، زیرا هدف فایل های خرابکار و در نتیجه الگوها در کد با گذشت زمان تغییر می کند. به علاوه، این فایلهای خرابکار در چارچوب های متغیری نوشته می شوند که به الگوهای متفاوتی منتج می گردند. اما روشن نیست تا چه حد آموزش مجدد دسته بند با فایل های جدید لازم و ضروری می باشد. برای این منظور، یک آزمایش تاریخی بر اساس مجموعه داده ای مشتمل بر فایل های سالهای 2000 تا 2007 طراحی و هر بار روی فایل ها تا سال k آموزش انجام داده و در سالهای بعدی ،آنها را تست کردیم.
رئوس مقاله حاضر به شرح ذیل می باشد. در بخش 2 با بررسی مطالعات مرتبط قبل شروع می کنیم. بخش 3 روشهای بکار رفته من جمله مفاهیمی از طبقه بندی متن، آماده سازی داده ها و دسته بندها را شرح می دهیم. در بخشهای 4 و 5 ارزیابی و نتایج ارزیابی را مطرح می کنیم. بالاخره، بخش 6 در مورد نتایج و کار آتی بحث می کند.
[1] .malware
[2] . Trojan horse
[3] . operating system
[4] . binary code
[5] .benign