بخشی از مقاله
چکیده
بدافزارها برنامههایی هستند که با هدف خرابکاری در سیستم، سرقت اطلاعات و یا دیگر اقدامات مخرب ایجاد می شوند. روشهای مختلفی برای شناسایی و کلاسهبندی بدافزارها معرفی شدهاند. در این مقاله، روشی برای کلاسهبندی بدافزارها براساس هدر آنها با استفاده از تکنیک های پردازش و کلاسهبندی تصاویر معرفی میشود. در کار انجام شده نتایج کلاسهبندی براساس هدر فایلها در مقایسه با کلاسهبندی براساس خود فایلها، نشان میدهد که بهبود قابل قبولی در دقت کلاسهبندی فایلهای مذکور حاصل میشود. در روش معرفی شده، ورودیهای استفاده شده برای مرحله کلاسهبندی، ویژگیهایی هستند که از تصاویر حاصل از فایلها بدست میآیند و در این مرحله از روشهای یادگیری ماشین برای کلاسهبندی استفاده میشود.
-1 مقدمه
تعاریف متفاوتی برای توصیف بدافزار1 یا نرمافزارهای مخرب مطرح شده است. بهطور مثال، مک گرو2 و موریست3 بدافزار را "هر کدیکه عمداً باعث آسیبرسانی یا متوقف کردن عملکرد سیستم شود" تعریف کردهاند .[1] بدافزارها را میتوان بر اساس نوع حملاتشان به سیستم قربانی، به دستههای مختلفی ازجمله ویروسها4 ، کرمها5 ، تروجانها6 ، دربهای پشتی7 و جاسوسافزارها8 ، باجافزارها9 ، ردگمکنها10 و ... تقسیم کرد. حملات متعدد بدافزارها، تهدید امنیتی جدی برای کاربران سیستمهای کامپیوتری تلقی میشود.
از این رو، تشخیص بدافزار یکی از مباحث مهم در امنیت کامپیوتر است. در حال حاضر، مهمترین خط دفاعی در برابر بدافزارها، برنامههای ضدویروس هستند. یکی از روشهای شناسایی بدافزار، روش تشخیص مبتنی بر امضا11 است .[2] امضا رشتهی کوتاهی از بایتها است که برای هر بدافزار شناختهشده بهصورت یکتا در نظر گرفته میشود؛ بطوریکه درآینده نمونههای آن بهدرستی تشخیص داده شوند.
شناسایی بر اساس امضا، سریع و خطای آن بسیار پایین است؛ اما با ظهور بدافزارهای چندریختی و دگرگونشده، نیاز به روشهای جدید برای مقابله با این نوع بدافزارها احساس شده است. در واقع روشهای تشخیص مبتنی بر امضا فقط توانایی شناسایی بدافزارهای شناختهشده را دارند - بدافزارهایی که امضای آنها قبلاً توسط تحلیلگران بدافزار شناساییشده است - و هرگونه تغییر کوچک در کد بدافزار، آنها را از تشخیص عاجز میکند.
تکنیکهای ضد بدافزار موجود را بهطور کلی میتوان به سه دستهی تکنیکهای مبتنی بر امضا، مبتنی بر رفتار12 و مبتنی بر هیوریستیک13 تقسیمبندی کرد .[3] در تحلیل رفتاری - تشخیص مبتنی بر رفتار - که با عنوان تحلیل پویا نیز شناخته میشود، سعی میشود رفتار برنامه در هنگام اجرا استخراج شود. برای استخراج این ویژگیها ، باید هر برنامه را در محیطی مجازی اجرا کرد و رفتار واقعی برنامه را بهمنظور ایجاد ویژگیهای رفتاری برای کلاسهبندی14 برنامه ثبت نمود. چنین تکنیکهایی دقت بالایی دارند و میتوانند بدافزارهای ناشناخته را شناسایی کنند .
[4] تحلیلهای مبتنی بر هیوریستیک، ویژگیهای مختلف فایل مانند آپکد در دستورات، اطلاعات ساختاری - نظیر اطلاعات هدر - 15 و فراخوانهای API16 را بررسی میکنند 4, ] .[5 این مجموعه اطلاعات بهعنوان ویژگیهایی برای فرایند کلاسهبندی استفاده میشوند که این فرآیند بهطورکلی با استفاده از کلاسهبندهای مبتنی بر یادگیری ماشین، نظیر درختهای تصمیمگیری، الگوریتم بیز، روش نایو بیز، شبکههای عصبی، ماشین بردار پشتیبانی یا SVM17 انجام میشوند.
سیستمهای ضد بدافزار مبتنی بر هیوریستیک دقیق هستند و قادرند بدافزارهای ناشناخته را بخوبی شناسایی کنند .[5 , 6] همچنین در مقایسه با تکنیکهای رفتاری، پیادهسازی راحت تری دارند. بااینوجود، سیستمهای موجود از مشکلات سربار پردازشی بالای خود رنج میبرند؛ چراکه اکثر این روشها تعداد بسیار بزرگی از ویژگیها را استفاده میکنند که منجر به محاسبات شدیدی میشود. به همین دلیل اکثر تکنیکهای هیوریستیکی موجود برای تشخیص بلادرنگ کافی نیستند .[3]
-1-1 کارهای انجام شده مرتبط
در حوزه شناسایی و کلاسهبندی بدافزارها کارهای مختلفی انجام شده است. از جمله این کارها میتوان به کار ناتاراج18 و همکاران [7] اشاره کرد، که کار ارائه شده در این مقاله شبیه به کار آنها است. در [7] فایلهای موجود به تصاویر خاکستری19 تبدیل میشوند، سپس با استفاده از روش استخراج ویژگی [8 ] Gist از تصاویر حاصل، ویژگی استخراج میشود و در نهایت با استفاده از روش KNN20 عمل کلاسهبندی انجام میشود. مشکل عمده این روش حجم و سرعت کار است، زیرا تولید تصاویر از فایلهایی که حجم بالایی دارند زمان زیادی لازم دارد و علاوه بر آن ذخیره سازی تصاویر حاصل نیز به فضای بیشتری نیاز دارد.
در [12] که توسط خرسند و همکاران انجام شد، هدر فایلها از فایلها استخراج میشود و با استفاده از روش [13] PPM21 از هدرها مدل ساخته میشود و دستهبندی بدافزارها با استفاده از این مدل انجام میشود. در کار دیگر که توسط مکاندار22 و همکاران [9] انجام شد، ورودی تصاویر ایجاد شده از بدافزارها هستند، که پس از دریافت تصاویر ابتدا روی آنها پیشپردازش انجام میشود سپس ویژگیهای مورد نیاز برای کلاسهبندی کردن استخراج میشوند و در نهایت عملیات کلاسهبندی انجام میشود. مشکل عمده این روش نیز مشابه مشکل [7] است که علاوه بر آن به دلیل وجود عملیات پیشپردازش مدت زمان بیشتری برای کلاسهبندی نیاز است.
کار دیگری که توسط هان23 و همکاران [10] انجام شد، ابتدا دنباله آپکودهای هر فایل استخراج میشود، سپس از دنباله هر فایل، زیر دنبالههایی ساخته میشوند که با استفاده از روش [11] SimHash از این زیر دنباله ها مختصات یک پیکسل و همچنین مقادیر سه رنگ قرمز، سبز و آبی برای آن پیکسل بدست می آید تا بدین ترتیب با استفاده از دنباله آپکود هر فایل یک تصویر حاصل شود، در نهایت کلاسهبندی نیز با کمک روش SimHash، انجام میشود. مشکل عمده این روش زمان لازم برای استخراج آپکودها و نیز ساخت تصاویر میباشد.
در روش ارائه شده در این مقاله، از هدر فایلها برای ساخت تصاویر خاکستری استفاده می شود، به این صورت که ابتدا هدر فایلها از فایلها جدا میشود، که هدرهای حاصل دارای حجم کمی خواهند بود، سپس از هدرهای حاصل، مشابه [7] تصویر خاکستری ساخته میشود، پس از آن با استفاده از روش استخراج ویژگی Gist، ویژگیهای تصاویر استخراج میشوند و در نهایت با استفاده از روشهای KNN و SVM، عمل کلاسهبندی انجام میشود که نتایج نسبت به وقتی که از کل فایل تصویر ساخته شده و مراحل ذکر شده برای کلاسهبندی انجام میشوند، بهبود قابل توجهی نشان دادند. ادامه مطالب به این صورت میباشد که در بخش 2 روش پیشنهادی به تفصیل شرح داده میشود، دیتاست استفاده شده و پیاده سازی در بخش 3 توضیح داده میشوند، در بخش 4 نتایج کار بررسی میشوند و بخش 5 نتیجهگیری را شامل میشود.
-2 روش پیشنهادی
روش ارائه شده به پنج مرحله تقسیم میشود. خروجی هر مرحله ورودی مرحله بعد میباشد. در ادامه این مراحل شرح داده میشوند.
-1-2 مرحله اول
در این مرحله فایل خام با ساختار PE24 گرفته میشود، سپس هدر این فایل استخراج میشود و اگر فایلی PE نبود تعدادی بایت، از ابتدای بایتهای فایل به عنوان هدر در نظر گرفته شده و استخراج میشوند، در ادامهی کار هدرهای استخراج شده به عنوان فایلهای خام در نظر گرفته میشود.
-2-2 مرحله دوم
در این مرحله هدرهای استخراج شده به تصاویر خاکستری تبدیل میشوند، به این صورت که هر بایت از هدر به عنوان یک پیکسل که مقداری بین 255-0 دارد، در نظر گرفته میشود، اندازه تصویر نهایی بستگی به اندازه هدر خواهد داشت. ساخت تصاویر برای تمام هدرها انجام میشود و در نهایت یک مجموعه تصویر خواهیم داشت.
-3-2 مرحله سوم
در این مرحله از روش استخراج ویژگی Gist استفاده میشود، این روش برای توصیف صحنه در تصاویر مربوط به طبیعت استفاده میشود. نتیجه حاصل از استخراج ویژگی با استفاده از این روش در روش پیشنهادی، تعداد 512 ویژگی برای هر تصویر میباشد.
-4-2 مرحله چهارم
در این مرحله با استفاده از ویژگیهای ساخته شده در مرحله سوم، عمل کلاسهبندی روی نمونههای آموزش با استفاده از روشهای یادگیری ماشین مانند SVM و KNN، انجام میشود و مدل کلاسهبندی بدست میآید.
-2-3 دیتاست فایلهای بدافزار
فایلهای بدافزار از پایگاهداده "VX Heavens Virus Collection" [14] دریافت شدند بطوریکه که 1600 بدافزار بصورت تصادفی از تمام بدافزارهای موجود در پایگاهداده انتخاب شدند که شامل انواع مختلف بدافزار مانند دربپشتی، سازنده، کرم، تروجان، ویروس و ابزار هک بودند. اندازه فایلهای انتخاب شده بین 1 کیلوبایت تا 11 مگابایت است. همانند دیتاست غیربدافزارها این دیتاست نیز بصورت تصادفی به دو مجموعه 1100 و 500 تایی به ترتیب برای نمونههای آموزش و نمونههای آزمایش تقسیم شدند. لازم به ذکر است که دیتاست بدافزارها شامل برخی از انواع بدافزارهای پک شده نیز میباشد که وجود این نوع بدافزارها می تواند روند کار را سختتر کنند.
-5-2 مرحله پنجم
در نهایت نمونههای آزمایش با استفاده از مدل ایجاد شده در مرحله چهار کلاسهبندی شده و به دسته بدافزار یا غیربدافزار تعلق خواهند گرفت. شکل - 1 - مراحل روش پیشنهادی را بطور خلاصه نشان میدهد.
-3 دیتاست استفاده شده و پیاده سازی
در کار انجام شده محدودیتی در توع فایل وجود ندارد. دیتاست استفاده شده شامل فایلهای استاندارد PE و غیر PE میباشد. در مواردی که فایل مورد نظر ساختار PE نداشته باشد، اولین بایت-بلاک فایل به عنوان هدر آن در نظر گرفنه می شود.
-1-3 دیتاست فایلهای غیر بدافزار
دیتاست غیر بدافزار استفاده شده در این کار شامل، 850 فایل "EXE" و 750 فایل "DLL" است که از پوشههای "Program Files" و "System32" یک سیستم با ویندوز XP استاندارد استخراج شدهاند. این فایلها بصورت تصادفی به یک مجموعه 1100 تایی برای نمونههای آموزش و یک مجموعه 500 تایی برای نمونههای آزمایش تقسیم شده اند. اندازه این فایلها از 1 کیلوبایت تا 15 مگابایت است.