تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE) – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 38000 تومان (ایران ترجمه - Irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۱۴۸ |
کد مقاله | COM148 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | تحلیلگر استاتیک فایل های اجرایی معیوب (SAVE) |
نام انگلیسی | Static Analyzer of Vicious Executables (SAVE) |
تعداد صفحه به فارسی | ۳۴ |
تعداد صفحه به انگلیسی | ۹ |
کلمات کلیدی به فارسی | تشخیص بدافزار, تروجان / اسب تروا, کرم, ویروس, امنیت کامپیوتر, امضا, کد, چند ریختی, متامورفیک / فراریختی, بدافزار جهش یافته, تحلیلگر استاتیک فایل های اجرایی معیوب (SAVE) |
کلمات کلیدی به انگلیسی | malware detection, trojans, worms, viruses, computer security, signature, code, polymorphic, metamorphic, mutated malware, SAVE |
مرجع به فارسی | دپارتمان علوم کامپیوتر و انستیتو تحلیل سیستم های افزوده پیچیده، نیومکزیکو،مقالات بیستمین کنفرانس سالیانه سیستم های کاربردی امنیت کامپیوتر، IEEE |
مرجع به انگلیسی | Department of Computer Science and Institute for Complex Additive Systems Analysis New Mexico Tech; Annual Computer Security Applications Conference; IEEE |
کشور | ایالات متحده |
تحلیلگر استاتیک فایل های اجرایی معیوب (SAVE)
چکیده
سیستم های تشخیص بدافزار (همانند بدافزارهایی نظیر تروجان ها / اسب های تروا، کرم ها و ویروسها، و غیره) و اطمینان از امنیت کامپیوتر به عنوان مؤلفه های مهم امنیت اطلاعات به حساب می آیند. ایجاد فرآیند ابهام سازی در نرم افزاری، که می توان آن را به عنوان یک تکنیک کلی جهت محافظت از نرم افزار در برابر مهندسی معکوس ذکر کرد، قابلیت سوء استفاده به وسیله هکرها به منظور گمراه نمودن ابزارهای تشخیص بدافزار را بوجود می آورد. تکنیک های تشخیص بدافزار استاتیک کنونی دارای محدودیت های زیادی می باشند و تست سندباکس نیز به واسطه محدودیت های زمانی قابلیت فراهم آوردن راه حل کاملی را نخواهد داشت.
در این مقاله، ما یک تکنیک توانمند را در رابطه با تشخیص بدافزار امضا مبنا ارائه می نمائیم که تأکید آن بر روی تشخیص ویژگی های مبهم بدافزاری (یا مؤلفه های چند ریختی) و همچنین بدافزار جهش یافته (یا متا مورفیک / فراریختی) می باشد. فرض مطرح شده در این مبحث آن است که کلیه گونه های یک بدافزار به اشتراک گذارنده نوعی امضاء مشترک اصلی هستند که ترکیبی از چندین ویژگی مربوط به کدینگ است. پس از آنکه یک بدافزار خاص در ابتدا شناسائی شد، قابلیت آنالیز آن جهت استخراج امضاء وجود خواهد داشت، که چنین موردی مبنایی را برای تشخیص گونه های مختلف و جهش یافته بدافزار مشابه در آینده به وجود خواهد آورد. بر این مبنا، بررسی نتایج تجربی در ارتباط با مجموعه بزرگی از بدافزارهای اخیر ارائه گردیده است.
کلمات کلیدی: تشخیص بدافزار، تروجان / اسب تروا، کرم، ویروس، امنیت کامپیوتر، امضا، کد، چند ریختی، متامورفیک / فراریختی، بدافزار جهش یافته، تحلیلگر استاتیک فایل های اجرایی معیوب (SAVE)
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
۱- مقدمه
به واسطه شیوع فزاینده بدافزارها (نظیر تروجان ها / اسب های تروا ، کرم ها، ویروسها و غیره) که دارای دسته بندی های مختلفی هستند و با توجه به قابلیت به بار آوردن زیان های معنی دار اقتصادی به افراد و سازمان ها، یکی از مباحث کنونی امنیت کامپیوتر که توجه زیادی را به خود جلب نموده است فرآیند تشخیص بدافزار می باشد.
دسته بندی بدافزار برمبنای بار مفید، قابلیت آسیب پذیری و مکانیزم انتشار، سه نسل از این بدافزارها را مشخص ساخته است [۲].
نسل اول
بدافزارهایی که خواص یک ویروس را به اشتراک می گذارند.
بدافزارهایی که نیازمند انجام یک عمل از سوی انسان می باشند تا آنکه قابلیت تکثیر و انتشار به وجود آید.
انتشار از طریق ایمیل و به اشتراک گذاری فایل.
مثال ها: Melissa، LoveLetter، VBScript worm، SoBig
نسل دوم
آن دسته از بدافزارهایی که خواص یک کرم را به اشتراک گذاری می گذارند.
نیازی به تداخل انسان جهت تکثیر یا انتشار ندارند.
اسکن اتوماتیک قربانیان برای مشخص سازی آسیب پذیری
ویژگی ترکیبی / هیبریدی فی نفسه، ترکیب شده با ویروسها و تروجان ها
انتشار از طریق اینترنت
مثال ها: Slapper worm، SQL Slammer worm، Blaster worm
نسل سوم
هدف های مستعد آسیب از پیش کامپایل شده
بررسی سیستم های شناخته شده و شناخته نشده آسیب پذیر
بکارگیری بردارهای چند حمله ای
ناحیه جغرافیایی ـ یا بدافزار خاص سازمانی
حملات به فناوریهای امنیتی و محصولات مرتبط
از آنجائیکه مطالعات تئوریکی مشخص ساخته اند که هیچگونه الگوریتمی وجود ندارد که قابلیت شناسائی کلیه ویروسها را داشته باشد [۳ ، ۴]، تکنیک های اکتشافی / ابتکاری در این ارتباط ارائه گردیده و بکار گرفته شده اند. با این وجود، نرم افزارهای ضد ویروس تجاری کنونی عمدتاً در زمینه اسکن نگارش های چند ریختی و فراریختی بدافزارهای شناسائی شده بی کفایت می باشند. بر این مبنا، تکنیک های تشخیص که از فرآیند حاشیه نویسی برنامه استفاده می نمایند پیشنهاد شده اند. با این وجود، زمان مورد نیاز برای تحلیل و حاشیه گذاری، همانگونه که به وسیله نویسندگان گزارش شده است، حتی برای بررسی یک بدافزار نسبتاً ساده بسیار زمان بر خواهد بود [۵ ، ۶].
تحقیق ما بر مبنای این فرضیه استوار است که یک بدافزار اصلی M حاوی مجموعه مخربی از فراخوان های سیستمی S می باشد. یک گونه بدافزار اصلی، O(M)، که به وسیله بکارگیری تکنیک مبهم نویسی O حاصل آمده است کاربرد پذیری M را حفظ نموده و حاوی مجموعه ای از فراخوان های سیستمی S می باشد این مشکل متعاقباً می بایست قابلیت محاسبه یک برآورد مشابهت بین S و ’S را داشته باشد.
…
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
۲- ابهام سازی
این تکنیک تحت عنوان فرآیند مبهم سازی اطلاعات به شمار می آید به گونه ای که افراد دیگر قابلیت درک معنای حقیقی آن را نداشته باشند. چنین موردی دقیقاً برای ایجاد ابهام در کدنویسی نیز صحت دارد که در آن هدف پنهان سازی منطق اصلی یک برنامه می باشد. این تکنیک در تضاد با فرآیند بهینه سازی کد است که در آن هدف به حداقل رسانی زمان اجرا یا اندازه مصرف حافظه می باشد. برعکس، در فرآیند ابهام سازی کد برنامه به دنبال به حداکثررسانی مبهمات کدنویسی می باشیم [۹] به گونه ای که افراد دیگر قابلیت حاصل آوردن اطلاعات درست از آن را نداشته باشند.
در ارتباط با بدافزارها، فرآیند ابهام سازی به عنوان یک تکنیک جذاب به منظور ممانعت از تشخیص مد نظر می باشد. در یک برنامه ابهام سازی ساده نویسنده ویروس با صرف تلاش بسیار اندکی قادر خواهد بود تا ویروس شناخته شده را به صورت کاملاً غیرقابل تشخیص برای اسکنرهای تجاری درآورد.
بکارگیری فرآیند تبدیل ابهام سازی هوشمندانه برای یک بدافزار دربردارنده برخی از ویژگی های مخفی سازی و فرآیند خود رمزبرداری نیز می باشد. کد مخرب به گونه ای ارائه می شود که قابلیت درک آشکار آن وجود نداشته باشد و در عین حال همچنان ویژگی صدمه دیدگی خود را به هنگام فعال شدن حفظ نماید.
۲ـ۱٫ تئوری ابهام سازی
توصیف موجزی از فرآیند ابهام سازی کد به وسیله Collberg و Thomborson ارائه شده است. با توجه به برنامه P و مجموعه ای از فرآیندهای تبدیل ابهام سازی T، ما هم اکنون اقدام به ایجاد یک برنامه P’ به گونه ای خواهیم نمود که موارد ذیل در نظر گرفته شوند.
P’ همچنان قابلیت های کاربردی P را خواهد داشت.
P’ را نمی توان به راحتی مهندسی معکوس نمود.
P’ قابلیت رقابت با P را خواهد داشت (یعنی هزینه ابهام سازی به حداقل می رسد).
فرآیند تغییر شکل در ارتباط با ارائه مبهمات در برنامه می بایست به صورت انعطاف پذیر باشد. پس از بکارگیری فرآیند تغییر شکل Ti به جمله برنامه Sj و ایجاد یک جمله مبهم شده Sj’، پروسه ایجاد یک ابزار اتوماتیک که قابلیت تولید Sj از Sj’ را داشته باشد می بایست آنقدر سخت باشد که در عمل قابلیت اعمال آن وجود نداشته باشد.
۲ـ۲٫ رده بندی
برای سادگی ما اقدام به رده بندی بدافزار ابهام سازی شده به پنج نوع نموده ایم. به طور کلی پیچیدگی و توانمندی بدافزار به هنگامی ارتقاء خواهد یافت که شاخص های نوع آن نیز افزایش یابند.
نوع ۱: عملیات تهی و درج کد مرده / بدون استفاده
NOPها در کد مخرب درج می شوند. در حقیقت هیچگونه تغییری در داده ها یا جریان کنترل وجود ندارد. مثال نوع ۱ فرآیند تغییر شکل در شکل ۱ ذیل ارائه شده است. در سمت چپ ما دارای کد اصلی و در سمت راست ما کد اصلاح شده هستیم که در آن عملیات تهی پس از هر دو خط درج شده اند.
نوع ۲: اصلاح داده ها
در این مبحث برخی از فرآیندهای تغییر شکل مبهمات اطلاعاتی بکار گرفته شده اند، همانند جداسازی رشته یا جابجایی نوع متغیر. به طور مثال، ما قابلیت جایگزینی یک متغیر بولی با دو عدد صحیح را خواهیم داشت. در صورتی که آنها برابر باشند جمله صحیح خواهد بود، در غیر اینصورت جمله غلط است. در مثال ذیل، شکل ۲، x یک متغیر بولی به شمار آمده و a و b اعداد صحیح هستند. کد سمت چپ جریان کنترل اولیه بشمار آمده و کد سمت راست دقیقاً عملکرد یکسانی دارد اما دارای امضای متفاوتی می باشد.
نوع ۳: اصلاح جریان کنترل
در این نوع فرآیند جریان کنترل تغییر شکل مبهم نویسی مد نظر خواهد بود. کد مربوطه مبادله شده و دستورالعملهای جهش درج می شوند. به طور مثال، ما قابلیت کپی محتویات یک روتین فرعی به موقعیت دیگر در فایل را داشته و می توانیم نسبت به اضافه نمودن جهش ها به و یا از روتین فرعی اقدام نمائیم. این کد دقیقاً دارای عملکردی مشابه می باشد اما از نقطه نظر ظاهری کاملاً متفاوت است. در شکل ۳ ذیل، سه خط کد به یک موقعیت دیگر تغییر یافته (مشخص شده بعنوان [shift]) و کد کمک کننده نیز درج گردیده است.
نوع ۴: اصلاح داده ها و جریان کنترل
در این فرآیند استخراج کلیه دستورات توقف و ترکیب داده ها و تغییر شکل جریان کنترل آنها مد نظر خواهد بود. در این سطح کد ناخواسته درج گردیده و متغیرها را می توان به طور کامل با بخش های بزرگ کد غیرضروری جایگزین کرد. به طور مثال، ما قابلیت اصلاح کلیه متغیرهای بولی همانند موارد فوق و تغییر ویژگی های نقطه ورود برنامه همانند شکل ۴ را خواهیم داشت.
نوع ۵: دگرنامی اشاره گر
آخرین تکنیک در این مبحث معرفی دگرنامی پوینتر یا اشاره گر می باشد. متغیرها با اشاره گرهای کلی جایگزین شده و توابع به وسیله آرایه های پوینترهای تابع رجوع داده می شوند. این نوع از فرآیند تغییر شکل را می توان به طور نسبتاً آسانی با استفاده از زبانهای سطح بالا که اجازه ارجاع های نشانگر را می دهند اعمال داشت، اما این مورد با استفاده از زبانهای اسمبلی تا اندازه ای مشکل خواهد بود. دگرنامی اشاره گر می تواند به سادگی تغییر a = b به *a = **bیا به پیچیدگی تبدیل کلیه متغیرها و توابع به یک آرایه ای از اشاره گرها باشد که به وسیله اشاره گر ها به یکدیگر ارجاع داده می شوند.
۲ـ۳٫ فرآیند ابهام سازی بکار رفته در این پروژه
در این تحقیق، ما مشخص ساختیم که غالب اسکنرهای ویروس یاب تجاری قابلیت رویارویی با تکنیک های بسیار ساده ابهام سازی را ندارند. به طور مثال، تغییرات نقطه ورود ساده که حاوی دو دستورالعمل جهش بیشتر است به طور مؤثر قابلیت شکست دادن کلیه اسکنرها را خواهد داشت. بنابراین، ما تنها از ویژگی های حداقلی فرآیند ابهام سازی جهت ممانعت از تشخیص استفاده می نمائیم. هدف ما نشان دادن این موضوع است که چگونه با اصلاح یک بدافزار اخیر به سادگی قابلیت شکست تکنیک های اسکن نمودن جاری با استفاده صرف از برنامه قابل اجرای کامپایل شده و چندین ابزار مشخص را خواهیم داشت.
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
۳- بدافزار استفاده شده جهت تحلیل
چهار ویروس اخیر (فایل های اجرایی) برای تحلیل و آزمایش بکار گرفته شدند. تشریح آنها بر مبنای بار مفید، ویژگی فعالسازی آسیب پذیری، رسانه انتشار و سیستم های آلوده شده بیان شده اند.
Mydoom: یک کرم برنامه پست انبوه و یک فایل اصطلاحاً درب پشتی ترکیبی به عنوان یک فایل الحاقی با پسوندهای نظیر .bat، .cmd، .exe، .pif، .scr یا zip به فایل اصلی ملحق می شوند [۷]. بار مفید اقدام به توقف ارائه خدمات یا عدم ارائه سرویس در برابر آدرس www.sco.com نموده و با استفاده از پورت های TCP 3127 الی ۳۱۹۸ اقدام به ایجاد یک پراکسی سرور برای دسترسی از راه دور می نماید. بر این مبنا قابلیت آلوده سازی کلیه سیستم های ویندوز فراهم خواهد شد.
Blaster: استفاده از ویژگی های آسیب پذیری DCOM RPC ویندوز با استفاده از پورت ۱۳۵ TCP. فرآیند بار مفید در ابتدا یک حمله عدم سرویس دهی یا توقف خدمات را در برابر آدرس windowsupdate.com انجام داده که ممکن است به خرابی سیستم منجر شده و در نهایت یک پوسته cmd.exe از راه دور مخفی را باز می نماید. این ویروس از طریق پورت های ۱۳۵، ۴۴۴۴ TCP و همچنین پورت ۶۹ UDP انتشار می یابد و صرفاً قابلیت آلوده سازی ویندوز ۲۰۰۰ و XP را خواهد داشت.
Beagle: یک کرم پستی انبوه که با یک برنامه مخرب درب پشتی همراه شده است. این کرم حاوی ایمیل هایی با مقیاس بزرگ دارای پسوندهای .wab، .htm، .xml، .nch، .mmf، .cfg، .asp و غیره می باشد [۷]. این کرم از موتور SMTP خود استفاده نموده و با بهره گیری از پورت ۲۷۴۵TCP اقدام به انتشار خود نموده و همچنین سعی در انتشار از طریق شبکه های به اشتراک گذاری فایل نظیر Kazza می نماید. این کرم قابلیت آلودگی کلیه سیستم های ویندوز را خواهد داشت.
Bika: بر مبنای کتابخانه ویروس، این کرم را می توان به عنوان ویروس Win32 انگلی مقیم حافظه پیش پردازشی بی ضرر خواند. این ویروس صرفاً اقدام به آلوده نمودن برنامه های کاربردی Win32 می نماید [۸]. ویروس مربوطه اقدام به نوشتن خود در انتهای فایل نموده و بدین سان فایل میزبان آلوده می گردد. به هنگامی که برنامه میزبان آلوده شد از قلاب های ویروسی “تعیین دیریکتوری جاری” با توابع Win32 API (SetCurrentDirectoryA، SetCurrentDirectoryW) استفاده می نماید که به وسیله برنامه میزبان وارد گردیده و در نهایت به عنوان یک رشته بک گراند فرآیند آلوده شده باقی مانده و به هنگامی که دیریکتوری جاری تغییر می یابد اقدام به آلوده سازی فایل های آن دیریکتوری ها می نماید. این ویروس خود را آشکار نمی سازد.
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
۴- SAVE
الگوریتم ما در ارتباط با برآورد مشابهت محاسبه شده به طور مستقیم با استفاده از کد باینری فایل اجرایی (PE) قابل حمل ماکروسافت ویندوز اعمال شد. این فرآیند در دو مرحله که در شکل ۶ نشان داده شده است اعمال گردید.
۴ـ۱٫ برآوردهای مشابهت
یک امضا به عنوان یک توالی API یک ویروس شناخته شده، که قبلا مورد شناسایی قرار گرفته است، به حساب می آید. اجازه دهید تا این مورد را بصورت Vs (بردار امضا) در نظر گیریم. توالی API فایل باینری PE مشکوک نیز بصورت Vu (بردار ناشناخته) مشخص شده است. جهت مشخص نمودن آن که آیا فایل اجرایی جدید با امضای Vu به عنوان یک نگارش مبهم شده ویروس ارائه شده به وسیله Vs است یا خیر، ما اقدام به برآورد مشابهت بین Vs و Vu می نمائیم.
۴ـ۱ـ۱٫ فاصله اقلیدوسی
یکی از شایع ترین برآوردها در این زمینه برآورد فاصله اقلیدوسی می باشد:
۴ـ۱ـ۲٫ یکنواختی توالی
دو توالی ذیل را در نظر بگیرید: “WANDER” و “WADERS“، بهترین همنواختی / همترازی را می توان به شرح ذیل در نظر داشت:
۴ـ۱ـ۳٫ توابع مشابهت
ما نسبت به استفاده از توابع مشابهت متعارف بر روی ’Vs و ’Vu اقدام می نمائیم. بر این مبنا برآورد کسینوس، برآورد تعمیم یافته ژاکارد و برآورد همبستگی پیرسون جزء برآورد معروف مشابهت برای توالی ها به شمار می آیند. برآورد کسینوس که ذیلاً ارائه می شود دارای نوعی درک مقیاس ثابتی از مشابهت می باشد:
تحلیلگر استاتیک فایل اجرایی معیوب (SAVE)
۵- نتیجه گیری و تحقیقات آتی
احتمال بیشتر آسیب رسانی و قدرت تخریب بیشتر بدافزارها را باید بطور جدی در نظر گرفت (چیزی که تحت عنوان کرم های نسل سوم شناخته می شود و از بردارهای متعدد حمله جهت بهره برداری از قابلیت های مستعد خطر شناخته شده و ناشناخته استفاده نموده و با حمله به هدف های از قبل اسکن شده حتی تهاجم خود را سریعتر و با سرعت بیشتری انجام می دهند). در آینده این نکته برای اسکنرها بسیار مهم می باشد که قابلیت تشخیص نگارش های مختلف شناخته شده بدافزارها چند ریختی (دارای ویژگی های ابهام دار یا گونه های مختلف) و همچنین انواع بدافزار فراریختی (جهش دار یا انواع دارای سیر تعاملی در مقایسه با نگارش های قبلی) را داشته باشند. با این وجود اسکنرهای در دسترس کنونی کفایت لازم را ندارند چرا که قابلیت تشخیص حتی ساده ترین و سبک ترین نگارش های ابهام سازی شده بدافزار شناخته شده را نخواهند داشت.
نتایج ما به طور معنی داری از نتایج حاصله از سوی دیگر گروه های درگیر در این عرصه متفاوت می باشد:
تحلیل ما بر مبنای پویش استاتیک (عدم کاربرد فرآیندهای سندباکس، تست پراکسی یا ابهام زدایی) می باشد. بنابراین چنین سیستمی حداقل دارای سرعت اجرای حداقل یک مرتبه بزرگی بیشتر می باشد.
ویژگی ابهام سازی مطرح شده از سوی ما بر مبنای فایل های اجرایی ( و نه کد اسمبلی یا کد زبان سطح بالا که احتمالاً در دسترس نیستند) می باشد.
نتایج ما بر مبنای برخی از جدیدترین پلتفرم های سیستم عامل کنونی، که در آنها ویژگی های بدافزاری را می توان مورد هدف قرار داد، هستند و ارتباطی با بدافزارهای صرفاً جدید که نیت آنها صدمه زدگی به سیستم های توارثی جدید است ندارند.
نتایج کنونی به طور آشکار سبب مشخص سازی ناکارایی هشدار دهنده تکنیک های اسکن کنونی و پتانسیل بسیار بالا در ارتباط با رویکرد ارائه شده از سوی ما می باشد. در بررسی ویژگی های خطرات و بدافزارهای نسل های آتی، موارد ذیل را می بایست مورد کنکاش دقیق قرار داد:
ایجاد امضاهایی برای انواع مختلف بدافزار: حتی از طریق توالی فراخوانی سیستم API که سبب ایجاد بالقوه مبنایی مؤثر برای تعریف امضا یا استفاده از امضاهای پیچیده تر (با ساختار استاتیک) می شود که می بایست این موارد را جهت تعامل با نگارش های چندریختی بدافزارهای شناخته شده مورد بررسی قرار داد.
ایجاد ابزاری برای اسکن نمودن بدافزارها: از آنجائیکه برای هر بدافزار امضا متفاوت است، داشتن ابزاری که به تحلیل (استاتیک یا دینامیک) کد بدافزارها کمک نماید و قابلیت ایجاد امضاهای مؤثر را داشته باشد راهگشا خواهد بود.
بدافزار فراریختی: نگارش های جهش یافته یا تکامل یافته بدافزارها از نظر تشخیص حتی مشکل تر می باشند چرا که عملکرد آنها در مقایسه با عملکرد بدافزارهای اولیه تغییر یافته است. مجدداً تشخیص امضا مبنا فراهم آورنده بهترین انتظارات در این زمینه بوده و ما اقدام به بررسی تکنیک های استاتیک برای تشخیص خواهیم نمود.