Professional Documents
Culture Documents
نش علم
»رهی ی «علوم و فناوریاهی پدافند نوین
939-404 ؛ ص8931 زمستان،4 شماره،سال دهم
چکیده
همچنین رفتار بدافزارهای جدید در حال مبهمتر شدن و.آهنگ رشد بدافزارها در سالهای اخیر بهصورت فزآیندهای افزایش یافته است
این مقاله ضمن تشریح روشهای موجود برای تشخیص بدافزار بهصورت خاص بر روی تشخیص زودهنگام حمالت.پیچیدهتر شدن است
بدافزارهای نوین با تزریق کد بدخواه در فایل باینری و یا حافظه اجرایی برنامههای مجاز سعی در.تزریق کد و کتابخانه متمرکز شده است
زنجیره فراخوانیهای رفتار مخرب، روش پیشنهادی این مقاله با دادهکاوی در حجم انبوه بدافزار.مبهمسازی و مخفیسازی رفتار خود دارند
کتابخانه را بهوسیله نصب قالبهای شنودگر در فضای هسته سیستمعامل استخراج و بر اساس تابع رگرسیون خطی مدلسازی/تزریق کد
استفاده میکند وApriori روش پیشنهادی برای تشخیص زود هنگام حمله از یادگیری مبتنی بر قواعد انجمنی بر اساس الگوریتم.میکند
همچنین روش پیشنهادی میتواند از.قادر است حمالت را قبل از کامل شدن و از بین رفتن کنترل جریان اجرایی برنامه قربانی تشخیص دهد
در انتها این مقاله دقت روش پیشنهادی خود در تشخیص بدافزارهای کالس.وقوع حمله با انسداد فراخوانی ایجاد نخ راه دور جلوگیری کند
نتایج.تزریقکننده را با مجموعه داده جمعآوریشده از مراجع معتبر ارزیابی و در شرایط یکسان با ابزارهای ضدبدافزار موجود مقایسه میکند
همچنین ضریب.کتابخانه را تشخیص دهد/ حمالت تزریق کد%34 ارزیابی نشان میدهد که روش پیشنهادی میتواند با دقت نزدیک به
. سنجش شده است11/11 کتابخانه/موفقیت سامانه خود حفاظتی پیشنهادی در مواجهه با حمالت تزریق کد
مخفیسازی، مبهمسازی، خود حفاظتی، تزریق کد، کشف جاسوس افزار، تحلیل بدافزار:کلیدواژه ها
Abstract
Malwares have grown drastically in recent years. Furthermore, the behavior of the newly produced malwares are
getting more complex and shrewd. This paper present malware detection methods and especially focus on code and
DLL injection attacks. Novel malwares try to obfuscate and hide their behavior through the injection of malicious
code in allocated memory and binary file of trusted applications. By data mining on massive volume of malwares,
the proposed method of the paper derive chain of API calls through installing logger hook at the kernel space of the
operating system in order to model the malicious behavior of code/DLL injection based on linear regression
function. The proposed method use association rules machine learning based on Apriori algorithm for early
detection of attacks and is able to prevent completion of the attack by blocking remote thread creation. Finnaly, the
accuracy of the proposed method is evaluated using dataset from valid references and the results are compared
with available Antivirus tools under the same conditions. Results of the evaluation indicate that the proposed
method can recognize code/DLL injection attacks by the accuracy of about 94%. Moreover, success coefficient of
the proposed self-defense system is evaluated of 88.88% against real code/DLL injection attacks.
Keywords: Malware Analysis, Spyware Detection, Code Injection, Self-defense, Obfuscation, Stealth
Corresponding Author Email: hosseinzadeh@srbiau.ac.ir Advanced Defence Sci.& Technol. 2020, 1, 393-406.
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 493
814K 1M
1000000
793K
ضرورت و اهمیت این پژوهش را میتوان در رشد روز افزون
121K
بدافزارها که حاصل افزایش چشمگیر ضریب نفوذ تجهیزات
100000 58.8K
دیجیتالی در زندگی است [ ]3و همچنین پیشرفت و پیچیدگی
28.4K
9K
رفتار آنها دانست .این رشد روز افزون و پیچیدگی بسیار باالی
7.1K 6.9K
10000
بدافزارها تشخیص و مقابله با آنها را بسیار سخت و مستلزم توسعه
713
1K
785
روشها و تجهیزات مدرن میکند .بنابر گزاش شرکت مَکآفی 6در
1000 612
سال 6089روزانه بیش از 800هزار بدافزار جدید تولید شده است
150
100 62
[ ]4یعنی 43بدافزار در هر دقیقه بنابراین فرکانس تولید بدافزار
18
برای سال مذکور تقریباً 8بدافزار بر ثانیه بوده است .در سال ،6084
10 این مقدار به 930هزار بدافزار در هر روز رسیده است [ ]0و این به
معنای فرکانس تولید 4/3بدافزار بر ثانیه است که حکایت از رشد
1
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
نزدیک به 900درصدی در طی یک سال داشته است در سالهای
3000000 1.3E+07 1.3E+07 2E+07 3.1E+07 3.5E+07 6.8E+07 5E+07 6.6E+07 4.8E+07ویندوز
اَندروید 0 18 9024 120982 792903 813808 1000000 4000000 5000000 2000000
اخیر این رشد همچنان ادامه داشته است .مجموع کل بدافزارهای
َمک 62 150 713 612 1002 7150 785 6869 28389 58796 کشف شده در سال 6084نسبت به سال 6084به میزان 94درصد
شکل .8آمار رشد بدافزار در سیستمعاملهای مختلف در 80سال رشد کرده است [ .]1همچنین گزارش شرکت کَسپراِسکی 9نشان
اخیر [.]0 میدهد که تعداد بدافزارهای کشفشده توسط محصوالتش در سال
4 1
Obfuscator Phishing
5 2
Metamorphic Engine McAfee
6 3
Mac Kaspersky
www.SID.ir
Archive of SID
493 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
نیازمند قابلیت خود حفاظتی باشد باید وارد فضای هسته عالوه بر اینکه رشد بدافزارها در سالهای اخیر به شدت افزایش
سیستمعامل شده و اقدام به نصب درایورهای محافظ نماید که یافته است .خود بدافزارها نیز در حال پیچیدهتر شدن ،هوشمند و
این رفتار با قابلیت مخفیسازی کامالً در تضاد است .بهطور هدفمند شدن هستند [ .]83بدافزارهای مدرن را از چند جنبه
کلی میتوان چرخه حیات بدافزار 9را در 3گام خالصه کرد .این مختلف میتوان با بدافزارهای سنتی مقایسه کرد [ .]84این مقایسه
این گامها در شکل ( )6نشان داده شده است .اطالع از این در جدول ( )8نشان داده شده است.
موارد برای مقابله با بدافزار بسیار حایز اهمیت است زیرا در
جدول .8مقایسه بدافزارهای سنتی و نوین []84
هنگام مواجه با یک بدافزار میتوانیم تعیین کنیم که بدافزار در
بدافزارهای نوین بدافزارهای سنتی وجه مقایسه ردیف
کدام فاز از حیاتش است و متناسب با آن تمهیدات الزم برای خاص منظوره عام منظوره هدف حمله 8
مقابله را طراحی و اعمال کنیم. همیشه ناشناس فقط بار اول ناشناس ماهیت بدافزار 6
بسیار زیاد بسیار کم توانایی مخفی ماندن 9
ماموریت بلند مدت یکبار مصرف مانایی تهدید 4
شکل .2چرخه حیات بدافزار [.]80 همانگونه که در جدول ( )8نشان داده شد رفتار بدافزارهای
در گام اول که هدفگیری نامیده میشود طراحان به دنبال نوین به شدت مبهم و مخفیکارانه است .یکی از پرکاربردترین
شناخت سیستم هدف هستند تا بر اساس مشخصات و روشهای مخفیسازی رفتار در بدافزارها تزریق کد و کتابخانه به
پیکربندی سیستم هدف بدافزار را طراحی نمایند .بهعنوان حافظه اجرایی برنامههای دیگر است .بدین ترتیب بدافزار رفتار
نمونه اگر سیستم هدف از سیستمعامل ویندوز استفاده میکند مخرب خود را با سوء استفاده از امتیاز و امضاء دیگر برنامهها انجام
شرایط کامالً متفاوت از حالتی است که هدف از سیستمعامل میدهد .بدافزار با توزیع کردن دنباله رفتارهای مخرب خود بین
لینوکس بهره میبرد .همچنین نسخههای مختلف یک فرآیندهای در حال اجرا ابزارهای نظارتی از جمله ضدبدافزارها را
سیستمعامل نیز دارای ماژولها و قالبهای کاری متفاوت برای فریب میدهد .هدف اصلی این مقاله کشف زود هنگام رفتار مخرب
برنامهنویسی بهویژه برنامهنویسی سطح پایین هستند لذا تزریق کد و کتابخانه است .این مقاله در پنج قسمت سازماندهی
شناخت کامل هدف اولین و مهمترین گام در طراحی بدافزار شده است در قسمت دوم روشهای تشخیص بدافزار و روشهای
است .در گام دوم و سوم با توجه به پیکربندی سیستم هدف و مبهمسازی بیان میشود .قسمت سوم مقاله ضمن تشریح روش
همچنین امکانات در دسترس برای توسعه بدافزارنویسان اقدام تزریق کد و کتابخانه ،روش پیشنهادی برای کشف و مقابله را بیان
به طراحی و پیادهسازی بدافزار مینمایند .در این گام موارد میکند و در نهایت قسمت پایانی مقاله ،دقت روش پیشنهادی را
متعددی از قبیل نیازهای وظیفهمندی و غیر وظیفهمندی در ارزیابی کرده و ضمن تحلیل نتایج بهدستآمده ،آنها را با سایر
نظر گرفته میشود و الگوریتمهای الزم در بدنه بدافزارها تعبیه روشها مقایسه میکند.
میشود .آزمایش صحت عملکرد نیز در این گام صورت میپذیرد.
.2پیشینه تحقیق
گام چهارم یکی از حساسترین گامها برای بدافزار است زیرا
بدافزار از دوره زندگی منفعل 4به دوره زندگی فعال 3گذر بدافزارها از زمان طراحی تا زمان تکمیل ماموریت که عمر آنها به
میکند .بدفزار در این گام سعی در یافتن و نفوذ به سیستم اتمام میرسد فازهای مختلفی را سپری میکنند .از دیدگاه معماری
هدف دارد .این فرآیند یا بر اساس کدهای سختشده 4در بدنه نرمافزار بدافزار در طول چرخه حیات خود ،خواص کیفی( 8نیازهای
بدافزار بهصورت پیشفرض انجام میشود یا آنکه توسط مرکز غیر وظیفهمندی )6متناقضی دارد از این رو طراحان باید ضمن توجه
کنترل مدیریت 0از راه دور هدایت میشود .در گام پنجم بدافزار به اهمیت ماموریت بدافزار ،تعادل بین نیازهای متناقض را حفظ
پس از انتقال موفق به سیستم هدف ،بنابر فرمان دریافتی از کنند [ .]80بهعنوان نمونه یک بدافزار که قصد سرقت اطالعات
مرکز کنترل مدیریت و یا بر اساس الگوریتمهای درونی خود در کاربر را داشته باشد مانند جاسوس افزارها باید قابلیت مخفیسازی
رفتار را در کدهای اجرایی خود تعبیه کند بهعنوان مثال از ورود به
3
4
Malware Lifecycle فضای هسته تا حد ممکن پرهیز کند .حال اگر همین بدافزار
Passive
5
Active
6 1
Hardcode Quality Attribute
7 2
)Command and Control (C&C Non Functional Requirements
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 493
استفاده میکند .مدل آنها قادر است 40خانواده از بدافزارها را زمان یا شرایط خاصی فعال میشود .امکان دارد هیچ گونه شرطی
بهصورت خودکار دستهبندی کند .دقت کلی روش پیشنهادی برای فعالیت بدافزار وجود نداشته باشد و بدافزار بالفاصله پس از
نویسندگان بیش از 13درصد برای تشخیص بدافزارهای رسیدن به سیستم هدف فعال شود .در گام ششم یا نظارت ،بدافزار
ناشناس تخمین زده شده است. وظیفه دارد پس از انتقال به سیستم هدف در آنجا گزارشی از
محیط پیرامون خود به مرکز کنترل مدیریت ارائه نماید .همچنین
روش جواهری و همکاران [ ]66قادر به تشخیص 3خانواده
گزارش شناسایی و یا عدم شناسایی اهداف نیز در این مرحله به
از بدافزارها و 6خانواده از فایلهای بیخطر است .با دادهکاوی
اطالع مرکز کنترل مدیریت رسانده میشود و بدافزار برای دریافت
بروی 83000بدافزار و 89300فایل بیخطر خواص 86گانه
فرمان آماده میشود .این نکته بسیار حایز اهمیت است که
از ساختار PE4و سرآیند آن همچون نام ،تعداد و اندازه
بدافزارهایی که برای نفوذ به سیستمهای ایزوله 8طراحی میشوند
قسمتها ،3میزان بینظمی 4فایل ،نقطه شروع کدهای اجرایی باید بهصورت هوشمند طراحی شده تا بتوانند بدون نیاز به ارتباط با
در برنامه و نام کتابخانهها و توابع مورد استخراج شده است که مرکز کنترل مدیریت برای کشف و انجام عمل بدخواهانه خود
میتواند بدافزارها را با دقت 33درصدی تشخیص داده و تصمیمگیری نمایند .در گام هفتم بدافزار عملیات بدخواهانه خود را
دستهبندی نماید. انجام داده و نتیجه را به اطالع مرکز کنترل مدیریت خود اعالم
میکند با توجه به نوع بدافزار این گام میتواند متفاوت باشد
لیو و همکاران [ ]69یک روش تشخیص بدافزار جدید بر
بهعنوان نمونه در جاسوس افزارها تبادل اطالعات بین بدافزار و
اساس یادگیری ماشین ارائه کردهاند .روش نویسندگان با
مرکز کنترل مدیریت بهصورت پیوسته برقرار است حال آنکه یک
استفاده از الگوی n-gramاز Opcodeهای بدافزارها تصاویر
بدافزار تخریبی پس از انجام اقدام مخرب خود با ارسال یک پیام
سیاه و سفید ایجاد کرده که این تصاویر برای استخراج
تاییده به مرکز کنترل مدیریت اتمام ماموریت خود را اعالم میکند.
ویژگیها بهمنظور خوشهبندی بدافزارهای ناشناس بر اساس در گام هشتم پس از اتمام ماموریت بدافزار و یا شرایط اضطرار که
الگوریتم نزدیکترین همسایه مشترک 0استفاده میشود. از سوی مرکز کنترل و مدیریت اعالم شود بدافزار شروع به حذف و
نویسندگان از یک مجموعه داده شامل 60000نمونه بدافزار و لغو تغییرات خود در سیستم میکند این تغییرات میتواند بازیابی
فایل بیخطر برای ارزیابی مدلشان استفاده کردهاند .نتایج تنظیمات اولیه رجیستری ،حذف کانالهای پوششی و بستن
ارزیابی آنها نشان میدهد که بهترین دقت برای دستهبندی درگاههای بازشده باشد .در گام آخر بدافزار پس از برچینی ردپای
بدافزارهای ناشناس 31/3درصد بوده است همچنین دقت خود اقدام به خودکشی 6میکند یعنی اینکه فایل اجرایی خود را از
میانگین روش آنها برای تشخیص بدافزارهای مدرن 14/0 روی دیسک سخت و کدهای خود را از حافظه سیستم حذف
درصد است. مینماید.
مُهایسِن و همکاران [ ]64یک روش تشخیص بدافزار با .8-2روشهای تشخیص بدافزار
استفاده از تحلیل خودکار رفتار پویا ارائه کردهاند .نویسندگان در این قسمت پر استنادترین روشهایی که در سالهای اخیر برای
اِمکان تشخیص بدافزارهای ناشناخته را بهصورت دستی در نظر تشخیص بدافزارها بر اساس تحلیل رفتار ایستا یا پویا ارائه شده
گرفتهاند .نویسندگان از چهار منبع سیستمی شامل رجیستری، است معرفی و توضیح داده میشود.
حافظه ،شبکه و فایلسیستم برای استخراج و مدلسازی رفتار روش عَلَم و همکاران [ ]60یک چارچوب برای تشخیص
استفاده کردهاند .دادهکاوی نویسندگان در مقیاس 4000 بدافزارهای چند ریخت بر اساس تحلیل گراف جریان کنترلی و
بدافزار انجام شده است که نویسندگان تعمیم آن به 883000 فرکانس تغییر Opcodeها ارائه میکند .نویسندگان دقت روش خود
نمونه را نیز آزمایش کردهاند .نویسندگان از یادگیری با را بین 34تا 33/4درصد ارزیابی کردهاند ولی داده آزمون آنها
سرپرست به دقت 33/4درصد برای آماره Recallو 33/3 نامشخص است.
درصد برای آماره Precisionرسیدهاند .دقت روش مذکور در روش وَنگ و همکارن [ ]68از یک کالسهبند جدید بر اساس
یادگیری بدون سرپرست بیش از 31درصد ارزیابی شده است. الگوریتم ماشین بردار پشتیبان 9برای حل مساله دقت دستهبندی
بدافزارهای ناشناخته بر اساس امضاءهای کامل و آموزش دیده شده
4
Portable Executable
5 1
Sections Air Gapped System
6 2
Entropy Melt
7 3
)Shared Nearest Neighbor (SSN )Support Vector Machine (SVM
www.SID.ir
Archive of SID
493 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
حمله خطرناک دیگر تزریق کتابخانه به درون حافظه یک Cuckoo هَنسِن و همکاران [ ]63با سفارشیسازی جعبهشن
برنامه در زمان اجرا است .هدف اصلی از اینگونه حمالت ابزاری برای تحلیل حجم انبوه بدافزارهایی که برای تحلیل ایستا
رهگیری ،منحرفسازی و انسداد فراخوانیهای سیستمی برای مبهم بودند ارائه کردهاند .نویسندگان از الگوریتم RFC8برای
4
تغییر در رفتار برنامه به منظور ربایش کنترل جریان اجرایی تشخیص و دستهبندی استفاده کردهاند .مجموعه داده نویسندگان از
برنامه قربانی است .البته الزم به ذکر است که از روش تزریق
600000بدافزار و 190بیخطر تشکیل شده است.
کتابخانه برای رهگیری توابع سیستمی در سطح کاربر به منظور
تحلیل رفتار بدافزارها در برنامههای امنیتی نیز استفاده میشود ایمران و همکاران [ ]64از روش تحلیل نمادین 6برای تشخیص
که این کاربرد بدخواهانه نیست لذا باید برای استفاده از این بدافزارها استفاده کردهاند .روش آنها یک روش ترکیبی بوده که از
روش توسط برنامههای بدخواه و برنامههای امنیتی تمایز قائل فرخوانیهای سیستمی استخراجشده از تحلیل ایستا و پویا بهعنوان
0
شد .بدافزاهای بکارگیرنده این روش تحت عنوان آلوده کننده نماد استفاده کرده است .نویسندگان از مدل مارکوف مخفی 9برای
و چسبنده 1شناخته میشوند .مجموع حمالت تزریقی شامل دستهبندی بهره بردهاند.
تزریق کد/کتابخانه ،تزریق پرسوجو و تزریق اسکریپت از سال
6089تا سال 6080در صدر حمالت سایبری جهان بوده است داس و همکاران [ ]60یک روش کلی برای تشخیص بدافزارها
[.]81 بهصورت برخط با استفاده از معماری توسعه یافته سختافزار
در حمله تزریق کتابخانه ،یک کتابخانه حاوی روتینهای بواسطه ترکیب پردازنده و FPGA4مطرح کردهاند .نویسندگان از
جعلی از توابع سیستمی توسط یک برنامه تزریق کننده 3به مدل فرکانس محور برای تهیه ویژگیهای مورد نیاز دادهکاوی
حافظه برنامه قربانی تزریق میشود سپس با استفاده از یک بدافزارها و فایلهای بیخطر بر اساس الگوی فراخوانیهای
Stubمنحرفساز 80درخواستهای برنامه قربانی برای استفاده سیستمی استفاده کردهاند .نوسندگان ادعا کردهاند که مدل آنها
از توابع سیستمی به توابع جعلی بارگذاریشده در حافظه برای تشخیص زودهنگام قادر است 44درصد بدافزارها را در طی
فرآیند قربانی منحرف میشود .برنامه منحرفسازی با ایجاد 90درصد ابتدایی اجرا تشخیص دهد و در صورتی که اجرا کامل
88
تغییر در آدرس ذخیره شده در جدول آدرس توابع ورودی باشد دقت تشخیص روش پیشنهادی نویسندگان 30درصد خواهد
فرآیند قالبسازی را تکمیل میکند .جدول آدرس توابع
بود.
ورودی یا IATجدولی است که در آن نام توابع سیستمی
( )APIفراخوانی شده توسط برنامه ،آدرس آنها در حافظه و .2-2مبهمسازی رفتار با تزرق کد و ربایش جریان اجرایی
86
نام ماژول مالک توابع ذخیره میشود تا برنامه پیونددهنده
با توجه به استفاده از ابزارهای ضدبدافزار در مقیاسهای وسیع ،یکی
بتواند در زمان مورد نیاز ،تابع سیستمی فراخوانی شده و ماژول
از برترین راهکارهای مبهمسازی رفتار ،توزیع کردن تمام یا بخشی
مالک را در اختیار برنامه فراخوانیکننده قرار دهد .حال
از کدهای بدخواه در برنامههای بیخطر دیگر و اجرای آنها با نام و
بدافزارهای کالس آلودهکننده با علم به این موضوع مبادرت به
نشان دیگر برنامهها است .این روش با سوء استفاده از امضاء و سطح
جایگزین کردن آدرس توابع جعلی خود که از پیش توسط
دسترسی برنامههای دیگر بسیاری از روشهای تشخیص بدافزار را
کتابخانه تزریق شوند در حافظه برنامه قربانی بارگذاری شده
فریب میدهد و عمده روشهای تشریحشده در قسمت 8-6این
است مینمایند تا برنامه قربانی بهجای فراخوانی توابع اصلی
مقاله امکان استخراج ویژگیهای الزم برای تحلیل رفتار را از دست
سیستمعامل ،توابع جعلی تزریقشده را فراخوانی نماید بدین
میدهند [ .]61بهعنوان مثال یک بدافزار در سطح کاربر میتواند با
ترتیب بدافزار میتواند جریان کنترل اجرایی یک برنامه
تزریق کردن بخشی از کدهای بدخواه خود در بدنه یک برنامه
کاربردی را در اختیار گرفته و آن را مجبور به اجرای کدهای
بیخطر با حق دسترسی مدیر سیستم از مجوزهای 3وی برای
مخرب خود کند.
اهداف بدخواهانه خود سود ببرد و برنامه ضدبدافزار نمیتواند فرآیند
چالش عمده روشهای تشخیص بدافزار در مواجهه با این رهگیری و تشخیص رفتار بدخواهانه مذکور و منبع آن را به صورت
کالس از بدافزارها ،عدم امکان استخراج ویژگیهای الزم برای صحیح کشف نماید .این روش به شدت مورد عالقه جاسوس افزارها
تحلیل رفتار است زیرا؛ بدافزار با توزیع کردن کدهای مخرب است که بواسطه آن بتوانند ناشناس ماندن خود را برای زمان
طوالنی حفظ نمایند [.]83
6
Execution Flow Control Hijacking
7
Infector
8 1
Binder Random Forest Classifier
9 2
Injector Symbolic Analysis
10 3
Redirector )Hidden Markov Model (HMM
11 4
)Import Address Table (IAT Field-Programmable Gate Array
12 5
Linker Privileges
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 491
امر آن است که در ابتدای هر بار اجرای برنامه کدهای بدخواه خود میان چندین فرآیند امکان رصد کردن دنباله رفتارهای مخرب
اجرا شوند و مهاجم به اهداف بدخواهانه خود دست پیدا کند. را از دید ناظر امنیتی زمان اجرا سلب میکند .همچنین با رمزنگاری
کدهای مخرب در زمان ذخیره بروی دیسک سخت امکان هرگونه
()8
تحلیل و یا مهندسی معکوس از پویشگرهای ایستا نیز گرفته
در این معادله نقطه شروع برنامه از حاصل جمع محل شروع میشود [ ]61با توجه به چالش موجود این مقاله راهکاری دقیق
کد در حافظه یا ImageBaseبا یک مقدار ثابت بهدست آمده برای کشف زودهنگام و مقابله با رفتار مخرب تزریق کد/کتابخانه
است [ .]66مقدار ImageBaseتا نسخه NT 6.0از پیشنهاد میکند.
سیستمعامل ویندوز همواره ثابت و برابر 400000بود لذا
محاسبه EPبسیار ساده بود .برای مقابله با حمالت سرریز بافر .4روش تحقیق
و سرریز Heapفناوری ASLR9توسط مایکروسافت در
همانگونه که در قسمت 6-6ذکر شد حمله تزریق کد و کتابخانه
نسخههای بعدی ویندوز مورد استفاده قرار گرفت .این فناوری
توسط بدافزارها با هدف ربایش کنترل جریان اجرایی قربانی صورت
ضمن بارگذاری تصادفی کتابخانههای مورد استفاده یک برنامه،
میگیرد .ربایش کنترل جریان اجرایی به بدافزار این امکان را
ناحیههای تخصیصیافته به فضاهای کُپه و پُشته را نیز
میدهد که قربانی را وادار به اجرای بخشی از کدهای بدخواه خود
بهصورت تصادفی در هر بار اجرا تغییر میدهد لذا آدرس
کند .بدین ترتیب برنامههای رصدگر نمیتوانند به فایل و فرآیند
ImageBaseنیز در هر بار اجرا تغییر میکند .این فناوری
جاسوس افزار اصلی را به درستی کشف نمایند .راهکار پیشنهادی
بهصورت گسترده توسط دیگر سیستمعاملها از جمله لینوکس
این مقاله کشف زودهنگام فرآیند تزریق کد یا کتابخانه است تا
با هسته ،+2.6اَندروید از نسخه ،4.0سُالریس از نسخه 11.1و
امکان ردگیری مَنشاء جهت کشف بدافزار وجود داشته باشد .منظور
iOSاز نسخه 4.3مورد استفاده قرار گرفته است .اگر چه
از زودهنگام این است که روش پیشنهادی بتواند قبل از تکمیل
بهکارگیری فناوری ASLRباعث کاهش قابل توجه حمالت
شدن فرآیند تزریق ،آن را تشخیص دهد زیرا بعد از تزریق دیگر
تزریق کد ،شِل کدنویسی و سرریز بافر و کُپه شد ولی کار
امکان کشف مَنشاء تزریق وجود ندارد و همچنین کنترل جریان
محاسبه EPرا سخت کرده و باعث افزایش آنتروپی فایل
اجرایی نیز از دست رفته است و بازگردانی آن مستلزم ختم فرآیند
باینری میشود.
قربانی و راهاندازی مجدد سیستم است.
در شکلهای ( )9-4قسمتها و پرچمهای ساختار PEیک
تزریق به حافظه یک برنامه زمانی که در حال اجرا است
برنامه کاربردی که هدف حمله بدافزار جهت تزریق کد مخرب
متفاوت و بسیار سختتر از زمانی است که بهصورت فایل باینری
قرار گرفته است را بهترتیب قبل و بعد از فرآیند تزریق نشان
بروی دیسک سخت ذخیره شده است .بنابراین ،تزریق کد و
میدهند .بدافزار با ایجاد یک قسمت جدید و تغییر در
کتابخانه میتواند بهصورت پویا برای یک برنامه در حال اجرا و یا
آدرسهای سایر قسمتها کدهای مخرب خود را در زمان آغاز
بهصورت ایستا برای یک برنامه ذخیرهشده روی دیسک سخت
اجرای برنامه قربانی اجرا میکند.
صورت پذیرد که در ادامه تشریح میشوند.
www.SID.ir
Archive of SID
499 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
CreateRemoteThreadبرای ایجاد نخ راه دور در حافظه فرآیند .2-4تزریق به فرآیند در حال اجرا
قربانی بهعنوان کدهای تزریقشونده به حافظه فرآیند قربانی با
تزریق به فرآیند در حال اجرا بهدلیل اعمال سیاستهای محدودیتی
روش تزریق کد ،تزریق میشوند .همچنین کدهای تزریقشونده
سیستمعامل از جمله UAC8و KPP6بروی حافظه اصلی بسیار
بایستی کار تنظیم پرچم EIPو ثَبات PCبروری آدرس کدهای
سختتر از تزریق به فایل باینری است .تزریق به فرآیند در حال
تزریقشده بهعنوان نقطه اجرایی برنامه را نیز انجام دهند .در
اجرا سبب میشود که کدهای تزریقی بدافزار بهصورت بالدرنگ بعد
ادامه از تابع سیستمی WaitForSignalObjectبرای آگاهی از
از فرآیند تزریق اجرا شوند در صورتی که در حالت قبل کدهای
زمان کامل شدن بارگذاری کتابخانه و در پایان از تابع
تزریقی تا زمان بارگذاریشده فایل قربانی در حافظه اصلی قابل اجرا
ResumeThreadبرای ادامه اجرای فرآیند که هم اکنون
نیستند .یکی از روشهای قدیمی برای تزریق کتابخانه به یک
در حالت تعلیق 9است استفاده میشود .با توجه به امکان
فرآیند ثبت ،نام و آدرس آن در کلید رجیستری AppInitDlls
سوءاستفاده از تابع سیستمی CreateRemoteThreadبهمنظور
است [ .]63سیستمعامل به هنگام بارگذاری ،تمام کتابخانههای
تزریق کد بدخواه به حافظه دیگر فرآیندها ،شرکت سازنده
لیستشده در این کلید رجیستری را بهصورت خودکار در فرآیندهای
یعنی مایکروسافت محدودیتهایی برای استفاده از این تابع در
هدف بارگذاری میکند با توجه به سوء استفاده از این کلید
نسخههای جدید سیستمعامل ویندوز (از ویندوز ویستا به بعد)
رجیستری برای انجام حمله تزریق کتابخانه ،شرکت سازنده یعنی
در نظر گرفته است که مطابق آن دیگر امکان فراخونی این تابع
مایکروسافت بارگذاری کتابخانه بواسطه کلید رجیستری مذکور را
برای ایجاد نخ راه دور میان دو برنامه با سطح دسترسی
منوط به داشتن امضاء معتبر از سوی خویش کرد بدین ترتیب
متفاوت ،بهعنوان نمونه یکی کاربر ساده و دیگری مدیر سیستم
برنامهنویسان بدخواه در استفاده از این روش دچار محدودیت شدند
و یا فرآیندهایی با دو مالک متفاوت وجود ندارد .اگرچه
لذا به راهکارهای دیگر ایجاد شد که ادامه تشریح میشود.
محدودیتهای وضع شده در جلوگیری از سوءاستفاده از تابع
سیستمی مربوطه تاثیر گذار بود ولیکن همچنان روشهایی با انجام دادهکاوی در حجم انبوه از بدافزارهایی که توانایی
برای ایجاد نخ راه دور وجود دارد .برنامهنویسان بدخواهی که تزریق کد یا کتابخانه دارند روش کار آنها مشخص شد .این
اصرار به توسعه بدافزارشان با سطح دسترسی کاربر برای فریب بدافزارها در ابتدا یک دستگیره به فرآیند قربانی که در حال اجرا
ابزارهای ضدبدافزار دارند بهجای استفاده از تابع است ،ایجاد میکنند این دستگیره با استفاده از توابع سیستمی
CreateRemoteThreadبرای اعمال تغییرات در حافظه فرآیند CreateProcessو یا OpenProcessایجاد میشود بعد از ایجاد
قربانی از توابع سیستمی GetProcessContextبرای دریافت دستگیره با استفاده از تابع سیستمی ReadProcessMemory
محتوای تنظیمات جاری یک فرآیند استفاده کرده سپس حافظه اختصاص یافته به فرآیند در حال اجرا را مورد دسترسی قرار
تغییرات مورد نظر خود را با استفاده از دستورات اسمبلی در داده و پس از آن با استفاده از تابع سیستمی VirtualAlloceEX
Contextبهدست آمده اعمال ،آنگاه با استفاده از تابع سیستمی مقدار مشخصی فضای آزاد به حجم فضای اختصاص داده شده به
SetThreadContextآنرا به نخ هدف در فرآیند قربانی اعمال فرآیند قربانی اضافه میکنند .این فضا معموالً به اندازه حجم کد و
میکنند .این راهکار اگر چه نیازی به استفاده از تابع سیستمی یا کتابخانه تزریقشونده است .در گام بعد بدافزار با استفاده از تابع
CreateRemoteThreadندارد ولی سختی پیادهسازی را به سیستمی WriteProcessMemoryکدهای مخرب خود را در فضای
همراه دارد [ .]63الزم به ذکر است که این محدودیت متوجه آدرس افزوده شده به فرآیند مینویسد .دسترسی به این کدها
بدافزارهای سطح هسته نخواهد بود. میتواند نیت بدافزار را اِفشا نماید.
.4-4کشف حمالت تزریق به صورت ایستا مراحل ذکر شده در قسمت 6-9مربوط به تزریق کد به یک
فرآیند در حال اجرا است در صورتی که هدف ،تزریق کتابخانه به
در روش پیشنهادی حمالت تزریق کد و کتابخانه در سه الیه
آن فرآیند باشد کدهای تزریقشده کتابخانه جعلی را بارگذاری
تشخیصی کشف میشوند .الیه اول با جستجوی زیردنبالههای میکنند .روش کار بدین صورت است که در ابتدا معادل اسمبلی
یکتا بهوسیله ،n-gramالیههای دوم با استخراج فراخوانیها از تابع سیستمی SuspendThreadبرای متوقفسازی نخ اصلی سپس
سرآیند ساختار PEو درنهایت الیه سوم با استخراج فراخوانیها معادل اسمبلی تابع LoadLibraryبه همراه آدرس کتابخانه مورد
در زمان اجرا (تحلیل پویا) حمالت مذکور را کشف مینمایند. نظر برای تزریق و در ادامه معادل اسمبلی تابع سیستمی
در الیه اول کشف حمله تزریق کد با اثبات وجود اِستابهای
1
User Access Control
3 2
Suspend Kernel Path Protection
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 344
در غیر اینصورت فرآیند تزریق برای فایلهایی که خود فرآیند تزریقکننده در بدنه فایل اجراییهای صورت میپذیرد.
تزریقکننده مالک آنها است بدخواهانه در نظر گرفته پرکاربردترین این استابها EasyHookو Hook Tool SDKبرای
نمیشود .بهمنظور افزایش دقت روش پیشنهادی و نگهداشتن زبانهای برنامهنویسی داتنت Marshal SDK ،برای زبان دِلفی و
آهنگ کاذبمثبت 6در حد قابل قبول ،میزان بدخیمی فایل API Hijackبرای زبان C/C++است .تشخیص با جستجوی زیر
تحت نظارت با استفاده از معادله ( )6سنجش میشود [.]66 n-gram دنبالههایی یکتا از استابهای فوقالذکر با استفاده از
∑ ∑ از بایتهای ابتدایی و انتهایی صورت میپذیرد .مشکل موجود
∑
()6
در تشخیص توسط این روش ،وجود بدافزارهای بستهبندی و
در این معادله میزان بدخیمی یک فایل با ساختار PEرا
محافظت شده 8است .این گونه بدافزارها که با استفاده از ابزارهای
نشان میدهد .ویژگیهای منفی و ویژگیهای مثبت در
بستهبندیکننده و مبهمساز بدنه برنامههای تحت حفاظت خود را
ساختار PEاست .نشاندهنده ضریب تاثیر هر یک ویژگیها
بهگونهای تغییر میدهند که دیگر امکان تهیه امضاء و تحلیل آن
است .ویژگیها شامل اندازه ،نام ،تعداد و خواص قسمتها،
وجود نداشته باشد است [ .]61لذا الیه دوم تشخیص در روش
اندازه خام و مجازی ،میزان بینظمی و نقطه شروع کدهای
پیشنهادی یعنی تحلیل ساختار فایل PEبرای کشف رفتار
اجرایی است که با دادهکاوی در مقیاس وسیع از بدافزارها و
بدخواهانه متناظر با حمالت تزریق کد وارد عمل میشود .برنامه
برنامههای بیخطر استخراج شده است .این مقدار هرچقدر به
پویشگر در این الیه از روش پیشنهادی به دنبال نام توابع متناظر با
یک نزدیکتر باشد نشاندهنده تشابه ساختار فایل با بدافزارها
رفتار بدخواهانه تزریق کد بوده تا با استفاده از آن اقدام به کشف
و هرچقدر به صفر نزدیکتر باشد نشان دهنده تشابه با
رفتار بدخواهانه نماید .روش پیشنهادی جدول IATبرنامه هدف را
بیخطرها است.
به دقت مورد بررسی قرار داده تا نام توابع ذکر شده برای تزریق
نقطه ضعف و آسیبپذیری روش پویش ایستا در مواجهه با جستجو و استخراج شود .در روش پیشنهادی توابعی که نمایانگر
9
کدهای محافظتشده توسط ابزارهای بستهبندی و محافظ رفتار تزریق کد در فایل باینری برنامههای دیگر هستند بهصورت
است .این ابزارها با بهکارگیری روشهایی نظیر رمزنگاری،
زنجیرهای با چهار گام مطابق شکل ( )3مدلسازی میشود .روش
تخلیه یا تخریب IATامکان اعمال هرگونه تحلیل بهصورت
پیشنهادی بر اساس قوانین تعریف شده ،در صورت مشاهده این
ایستا را از تحلیلگر سلب میکنند .با توجه به چالشهای
زنجیره در یک برنامه آن را در بهعنوان رفتار مخرب و بدخواهانه
موجود ،روش پیشنهادی این مقاله راهکار اصلی را در تشخیص
تزریق کد تشخیص میدهد.
بر اساس شنود فراخوانیها در زمان اجرا پیشنهاد میکند علت
این امر عالوه چالشهای ذکر شده ،محدودیت تحلیل ایستا در
پویش فرآیندهای در حال اجرا و همچنین تعیین ترتیب
فراخوانیها است .الیه سوم که مبتنی بر تحلیل رفتار پویا است
برای مقابله با چالشهای موجود تعریف میشود.
شکل .3زنجیره پیشنهادی برای تشخیص رفتار تزریق کد در فایل
.3-4کشف حمالت تزریق به صورت پویا باینری به صورت ایستا
الیه سوم از روش پیشنهادی به کشف حمله تزریق کد/کتابخانه الزم به ذکر است در گذشته رفتار تزریق در یک فایل بهصورت
بهصورت پویا اختصاص دارد .یکی از مزایای روش پیشنهادی بالفطره بدخواهانه نبوده است ولی بهدلیل استفاده مُکَرَر بدافزارها
در این است که میتواند حمالت تزریق کتابخانه را قبل از بهویژه جاسوسافزارها از این روش ،امروزه بهعنوان یک رفتار مخرب
تکمیل شدن کشف نماید لذا امکان خنثیسازی حمله و تشخیص داده میشود.
ممانعت از تکمیل آن در روش پیشنهادی وجود دارد .همچنین
بهمنظور افزایش دقت تشخیص بدخواهانه بودن رفتار تزریق کد
روشهایی که بعد از تزریق و بارگذاری شدن کتابخانه داخل
در فراخوانی اولین گام از زنجیره یعنی تابع سیستمی CreateFileیا
حافظه اختصاص یافته به فرآیند قربانی حمله را کشف میکنند
OpenFileبررسی میشود که پارامتر اول آن یعنی ساختار
مستلزم هزینه دورریز برای تخلیه کتابخانه تزریقشده از حافظه
LPCTSTR lpFileNameبرابر با آدرس فایلی باشد که مالک آن
فرآیند قربانی هستند که روش پیشنهادی بهدلیل کشف
فرآیند جاری (فراخونیکننده) نباشد یعنی فرآیند تزریق در فایل
زودهنگام (قبل از تکمیل حمله) از این هزینه مستثنی است.
برنامه دیگری باشد تا بهعنوان رفتار بدخواهانه در نظر گرفته شود
2
False Positive
3 1
Packer and Protector Packed and Protected Malwares
www.SID.ir
Archive of SID
348 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
که یک فرآیند در فراخوانیهای سیستمیاَش چنین زنجیرهای کشف زودهنگام حمله موجب حفظ و نگهداشت جریان اجرایی
داشته باشد روش پیشنهادی بهصورت بالدرنگ آنرا بهعنوان برنامه هدف حمله میشود .در صورت تکمیل شدن فرآیند حمله و
رفتار بدخواهانه تزریق کد یا کتابخانه تشخیص میدهد این بارگذاری کتابخانه بهدلیل قالبشدن توابع ،احتمال از دست رفتن
رفتار نمایانگر فعالیت یک بدافزار از کالس آلودهکننده در کنترل اجرایی برنامه با تخریب توابع سیستمی حساس مانند
سیستم است. TerminateProcessتوسط بدافزار وجود دارد در این حالت ختم
فرآیند امکان پذیر نیست [ ]90لذا کشف زودهنگام و قبل از تکمیل
شدن فرآیند تزریق از نوآوریهای روش این مقاله محسوب میشود.
روشهای پیشین برای تشخیص اینگونه حمالت امکان کشف زود
هنگام را نداشته و عالوه بر آن از امکان مقابله و ایجاد مصونیت در
مقابل این گونه حمالت نیز محروم بودند .این دو امر مهم با توسعه
شکل .3زنجیره پیشنهادی برای تشخیص رفتار تزریق کد و کتابخانه
مدل پیشگو در روش پیشنهادی به دقت پیادهسازی شده است .از
در فرآیند به صورت پویا
جمله روشهای پیشین شمارش کتابخانههای موجود در فضایی
همانگونه که در شکل ( )4مشخص است زنجیره تزریق در تخصیص داده شده به یک برنامه و مقایسه آن با تعداد کتابخانههای
روش پیشنهادی از 0گام تشکیل شده است که نمایانگر رفتار
مورد نیاز که از قبل توسط کامپایلر در دادههای موجود در سرآیند
مخرب تزریق کتابخانه است .این در حالی است که 4گام
فایل PEقرار داده شده است .در این حاالت اگر تعداد کتابخانههای
ابتدایی آن به تنهایی نشاندهنده رفتار بدخواهانه تزریق کد
بارگذاریشده در حافظه فرآیند بیشتر از تعداد مورد نیاز باشد آنگاه
است همچنین الزم به ذکر است با توجه به دادهکاوی
میتوان نتیجه گرفت که یک حمله تزریق کد به برنامه صورت
انجامشده در حجم انبوه بدافزار گردآوری شده از مراجع
پذیرفته است .با استخراج نام کتابخانههای بارگذاریشده در حافظه
[ ]98-99بعضاً در برخی از بدافزارها در بین گامهای 6و 9از
فرآیند و مقایسه آنها با نام کتابخانههای مورد نیاز که از قبل در
زنجیره شکل ( )4تابع سیستمی ReadProcessMemoyو بین
جدول IATموجود است میتوان کتابخانه تزریقشده را یافت و
گامهای 4و 3تابع سیستمی SuspendThreadمشاهده شده
است .زنجیره پیشنهادی هموراه زیر مجموعهای از زنجیرههای آنرا از حافظه فرآیند تخلیه کرد .مشکل این روش در باال بودن
بزرگتر (با 6گام ذکر شده) است لذا همیشه میتواند رفتار آهنگ کاذب مثبت است همچنین کشف بعد از کامل شدن حمله و
معادل با تزریق را تشخیص داده و سرعت تشخیص آن نیز تزریق کتابخانه صورت میگیرد لذا هیچگونه امکانی برای مقابله و
بیشتر است .همچنین مشاهده شد که برخی از بدافزارها برای توقف حمله وجود ندارد و سربار اضافی برای تخلیه کتابخانه تزریق
ایجاد دستگیره به یک فرآیند در حال اجرا از تابع سیستمی شده و احتمال از دست رفتن کنترل برنامه قربانی نیز وجود دارد.
OpenProcessبهجای CreateProcessاستفاده میکنند که در روش پیشنهادی میتواند رفتار تزریق کد و کتابخانه را در الیه
روش پیشنهادی این دو تابع معادل در نظر گرفته شدهاند .در سوم و بهصورت پویا و زودهنگام کشف نماید .در روش پیشنهادی
ادامه و در شکل ( )0جدول IATمربوط به یک بدافزار با رفتار بدخواهانه تزریق کد و کتابخانه با استفاده از ترتیب
توانایی تزریق کد نشان داده شده است .این بدافزار در الیه فراخوانیهای سیستمی و فرکانس تَکَرُر آنها مدل شده است .برای
تشخیصی دوم از روش پیشنهادی کشف شده است. مدلسازی این رفتار از تابع رگرسیون خطی 8استفاده شده است .در
مدل مذکور رفتار بدخواهانه Mکه نمایانگر تزریق کد است بهصورت
معادله ( )9تعریف شده است [.]84
()9
1
Linear Regression
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 342
میدهد .معیارهای Confidenceو Liftبر اساس معادله ()4 همانگونه که ذکر شد تشخیص حمله تزریق کتابخانه در صورتی
محاسبه میشوند [:]94 که زودهنگام تشخیص داده شود ارزشمند است .برای تحقق این امر
در روش پیشنهادی از الگوریتم اَپریوری 8بهمنظور یادگیری مبتنی
()4
بر قواعده انجمی 6استفاده شده است شبه کد این الگوریتم به
صورت زیر است [:]94
در این معادله A, Bشاخص فراخوانیهای سیستمی مطابق
با زنجیره شکل ( )4هستند .معیار Confidenceنشاندهنده
میزان وابستگی بین فراخوانیها است در روش پیشنهادی
احتمال فراخوانیشدن گامهای 3تا 0به شرط انجام 4گام
اول را نشان میدهد .معیار Supportنشاندهنده تعداد
فراخوانیهایی است که هر دو تابع سیستمی Aو Bبا یکدیگر
در فراخوانی حضور دارند نسبت به کل فراخوانیها است .معیار
Liftنیز نشاندهنده میزان استقالل بین فراخوانیها است .الزم
به ذکر است که دادهکاوی و مدلسازی روش پیشنهادی این
مقاله در محیط نرمافزار Wekaنسخه 6.0.3انجام شده است.
همانگونه که اشاره شد روش پیشنهادی فرآیند تشخیص
را در سه الیه متفاوت و در قالب یک برنامه پویشگر با محاسبه میزان Confidenceو Liftبرای زنجیره
پیادهسازیشده به زبانهای C#.netو C++انجام میدهد. فراخوانیهای شکل ( )4امکان پیشگویی گامهای ششم و هفتم
معماری برنامه پویشگر و جریان کار 9آن در شکل ( )1نشان زنجیره محقق شده است .بدین ترتیب روش پیشنهادی قبل از
داده شده است. تکمیل حمله و تزریق کامل کتابخانه آن را در گام پنجم تشخیص
سامانه بوده و وظیفه آن کنترل استثنائات است ،تحویل سامانه پویشگر طراحیشده امکان تعبیهشدن در یک برنامه
میشود .این ماژول وظیفه خود را با بررسی وجود هَش فایل ضدبدافزار یا ضد جاسوسافزار را دارد .در این سامانه آدرس یک
ورودی در لیست استثنائات آغاز میکند در صورتی که فایل فایل باینری یا شماره یک فرآیند در حال اجرا بهعنوان ورودی
ورودی جزء استثنائات باشد از ادامه پویش کنار گذاشته شده و دریافت شده و به ماژول Exception Checkکه اولین ماژول در
فایل جدید از ورودی دریافت میشود در غیر این صورت فایل 1
Apriori
2
Association Rules
3
Workflow
www.SID.ir
Archive of SID
344 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
Dynamic Behavioral Scanبرای تشخیص مبتنی بر تحلیل مذکور به دومین ماژول یعنی Accessibility Checkکه ماژول
رفتار پویا میرویم در این الیه فایل ورودی در محیط ایزوله کنترل دسترسپذیری است داده میشود .هدف از تعریف لیست
تحت نظارت و کنترل اجرا شده سپس امکانات رصدگر استثنائات جلوگیری از پویش فایلهای تکراری است .وظیفه ماژول
برنامه اقدام به ضبط فراخوانیهای سیستمی بهمنظور کشف دوم بررسی امکان دسترسی به فایل یا فرآیند ورودی است در
زنجیرههای مخرب میکنند .اگر پویشگر پیشنهادی هیچ صورتی که فایل دسترسپذیر نباشد مسیر آن به مینی درایور فایل
زنجیره مخربی را کشف نکند سامانه فایل را بیخطر تشخیص سیستم سامانه برای خواندن مستقیم از روی دیسک سخت داده
میدهد و در صورتی که هر کدام از الیهها رفتار مخربی را میشود علت این امر در استقالل از سیستمعامل و محدودیتهای
تشخیص دهند بالفاصله فایل یا فرآیند مذکور به زیر سیستم اعمالشده توسط UACو KPPاست [ ]63در ادامه فایل به ماژول
مقابله برای خنثیسازی معرفی میشود .الزم به ذکر است که PE Validatorبرای تصدیق ساختار PEتحویل میشود ،سامانه
در صورتی که ورودی سامانه یک فرآیند باشد پس از کنترل پویشگر در حال حاضر امکان پویش فایل با ساختار PE32و
دسترسپذیری مستقیماً به الیه سوم معرفی میشود .امکان PE32+را در قالبهای dll ،exeو sysرا دارد .این ماژول معتبر
شنود فراخوانیها بر اساس نصب قالبهای شنودگر IRPمطابق بودن ساختارهای مذکور را کنترل کرده و فایلهای غیر PEرا کنار
با روش [ ]61محقق میشود .علت استفاده از قالبهای مبتنی میگذارد.
بر ،IRP8عمق تحلیل باال و شفافیت زیاد این نوع از قالبها
Packing فایلها با ساختار PE32و PE32+معتبر به ماژول
است که امکان تحلیل بدافزارهای فعال در فضای کاربر و هسته
Checkتحویل میشوند وظیفه این ماژول بررسی بستهبندی یا
را فراهم میکند.
محافظت شده بودن فایل است در صورتی که فایل ورودی
.3-4خنثیسازی حمالت تزریق بستهبندی نباشد برای پویش به الیه اول یعنی Signature Base
Scanبرای پویش مبتنیبر امضا تحویل میشود در غیر اینصورت به
این احتمال وجود دارد که برنامه پویشگر پیشنهادی هدف
ماژول Packer Detectorبرای تعیین نوع ابزار بستهبندی یا محافظ
حمله بدافزار بهمنظور تزریق کد یا کتابخانه جهت سرقت
منتقل میشود .این ماژول درصورتی که بتواند نوع ابزار بستهبندی
اطالعات یا ربایش کنترل اجرایی برنامه ،قرار گیرد .از اینرو،
کننده را تشخیص دهد ،فایل را برای بازگشایی ایستا به ماژول
سامانه پیشنهای برای عملکرد صحیح در محیط آلوده باید
Static Unpackingمیدهد این ماژول با در اختیار داشتن الگوریتم
بتواند با بدافزارهای فعال مقابله کرده و از خود در مقابل
بازگشایی میتواند فایل مبهمشده را رفع ابهام کرده و به الیه اول
حمالت تزریقی دفاع کند در این قسمت نحوه محافظت از یک
پویش منتقل کند در صورتی که نوع ابزار بستهبندیکننده تشخیص
فرآیند در حال اجرا و فایلهای سامانه پیشنهادی توضیح داده
داده نشود و یا فرآیند بازگشایی ایستا دچار مشکل شود فایل
میشود .روش این مقاله قادر است وقوع این حمالت را
ورودی به ماژول Dynamic Unpackingداده میشود .این ماژول
بهصورت زودهنگام و قبل از کامل شدن تشخیص دهد حال
فایل ورودی را در محیط ایزوله و تحت نظارت اجرا کرده و از
برای جلوگیری از تکمیل حمله با محدودسازی برخی از
محتویات حافظه آن در زمان مناسب بر اساس روش [ ]61روبرداری
فراخوانیهای سیستمی از شکلگیری زنجیرههای تزریق که
و پس از تعمیر خرابیهای احتمالی ،اطالعات را در قالب یک فایل
در قسمت 4-9توضیح داده شد ،جلوگیری میشود .قالب
جدید بازنویسی میکند .فایل بازنویسیشده به الیه اول پویش
نصبشده بروی توابع زنجیره شکل ( )4به غیر از تابع
منتقل میشود .در این الیه ،ماژول تشخیص مبتنی بر امضاء فایل را
CreateRemoteThreadهمگی از نوع Post Callbackهستند.
برای یافتن Stubهای بدخواه با استفاده از n-gramپویش میکند و
قالب تابع مذکور از نوع Pre Callbackاست در این نوع قالب،
در صورتی که امضاء آن بهعنوان رفتار مخرب در پایگاه داده موجود
تابع Callbackپیش از انجام فراخوانی تابع اصلی صدا زده
باشد آن را بدخواه تشخیص میدهد در غیر این صورت فایل به الیه
میشود و این فرصت به پویشگر داده میشود تا در صورت
پایینتر (الیه دوم) یعنی Static Behavioral Scanبرای تشخیص
تشخیص زود هنگام حمله از ادامه فراخوانیها جلوگیری کند.
مبتنیبر تحلیل رفتار ایستا تحویل میشود .این تشخیص فارغ از
این امر با مسدودسازی تابع CreateRemoteThreadاز جدول
اجرا و فقط با بررسی خواص ساختار PEصورت میپذیرد در
SSDT6در صورتی که پارامتر اول یعنی HANDLE hProcess
این الیه با بررسی سرآیند ساختار ،PEآهنگ بدخیمی مطابق
دستگیرهای به فرآیند برنامه تحت حفاظت باشد صورت
معادله ( )6مشخص و نام فراخوانیهای برنامه از جدول IAT
میپذیرد .در این حالت 4گام اول از فراخوانیهای زنجیره 0
استخراج میشود و در صورت یافتن فراخوانیها مخرب ،کار در این
1
مرحله تمام میشود در غیر اینصورت به الیه سوم (الیه آخر) یعنی
I/O Request Packet
2
System Service Descriptor Table
www.SID.ir
Archive of SID
نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم ،شماره ،3زمستان 8491 343
کد/کتابخانه ،داده آزمون حاوی نمونه بدافزارها و فایلهای مرحلهای شکل ( )4انجام میشود زیرا نمیتوان تا رسیدن به گام
بیخطر به برنامه پویشگر پیشنهادی که بر اساس طرح پنجم ماهیت رفتار مخرب تزریق کد/کتابخانه را بهطور دقیق
معماری ذکر شده در شکل ( )1طراحی و پیادهسازی شده، پیشگویی و از انجام فراخوانیهای بعدی جلوگیری کرد ولی قالب
معرفی شده است .برای مشخص شدن آهنگ دقت روش نصبشده بر تابع CreateRemoteThreadاز انجام گام پنجم
پیشنهادی از معادله ( )3استفاده شده [ ]93و نتایج حاصل از فراخوانی با دورریز درخواست وارده جلوگیری میکند .بدین ترتیب
پویش در آن قرار داده شدهاند .آهنگ دقت از نسبت تعداد مهاجم هیچگاه امکان ایجاد نخ راه دور در فرآیند تحت حفاظت را
بدافزار و فایل بیخطری که پویشگر پیشنهادی ماهیت آنها را پیدا نکرده و زنجیره تزریق در مرحله پنجم شکسته میشود.
بهدرستی تشخیص داده ،به کل نمونههای موجود در داده
.3نتایج و بحث
آزمون بهدست میآید.
()3 در این بخش روش پیشنهادی از حیث میزان دقت در تشخیص
رفتار بدخواهانه تزریق کد و کتابخانه و میزان موفقیت در ایجاد
در این معادله TP8شاخص تعداد نمونه بدافزاری است که
مصونیت در مقابل اینگونه حمالت حمالت توسط تزریق کنندههای
بهدرستی بدافزار تشخیص داده شده و TN6شاخص تعداد
موجود مورد ارزیابی و آزمون قرار گرفت است .همچنین دقت روش
نمونه فایلهای بیخطری است که بهدرستی بیخطر تشخیص
پیشنهادی با برترین نمونه برنامههای موجود مقایسه شده است.
داده شده است FP9 .شاخص تعداد فایل بیخطری است که به
اشتباه بدافزار تشخیص داده شده و FN4نشاندهنده تعداد .8-3سنجش و مقایسه دقت
بدافزارهایی است که به اشتباه بیخطر تشخیص داده شدهاند. برای انجام این آزمون 4094نمونه بدافزار با توانایی تزریق کد و
بدین ترتیب آهنگ دقت برای پویشگر روش پیشنهادی و کتابخانه از مراجع [ ]98-99در طی 3سال اخیر جمعآوری شده
است .مجموعه داده بدافزارها بهترتیب از سال 6089تا 6081از
0برنامه ضدبدافزار شناخته شده محاسبه شده است .الزم به
مراجع فوق الذکر قابل دریافت است .بدافزارها با 9803فایل
ذکر است ،مقایسه دقت روش پیشنهادی با ابزارهای ضدبدافزار
بیخطر ترکیب شده و جهت آزمون به ابزارهای پویشگر معرفی
دیگر در شرایط محیطی مشابه و با داده آزمون کامالً یکسان
شدهاند .بدافزارها از کالسهای آلودهکننده ،جاسوسافزار ،روت کیت
انجام شده است .آهنگ دقت بهدستآمده برای روش
و چسبنده بوده و بیخطرها شامل فایلهای سیستمعامل ویندوز
پیشنهادی و 0ابزار ضدبدافزار دیگر در شکل ( )80مقایسه
نسخه 0و 1و همچنین نرمافزارهای کاربردی هستند .بیخطر بودن
شده است.
نرمافزارهای کاربردی توسط حداقل 9ابزار ضدویروس تایید شده
100 93.85 97.62 96.77 96.44 95.3 93.12 92.32 است .درصد فراوانی کالسهای شرکتکننده در داده آزمون در
90.65
90 شکل ( )3نشان داده شده است.
80
70
60 [ CATEGORY
[ CATEGORY
]NAME
]NAME
50 ][PERCENTAGE
][PERCENTAGE
40
[ CATEGORY
30 ]NAME
][PERCENTAGE
20 جاسوس افزار
%80
10
0
[ CATEGORY بی خطر
]NAME
][PERCENTAGE سیستمی
%80
شکل .84مقایسه آهنگ دقت روش پیشنهادی در تشخیص رفتار
تزریق کد/کتابخانه
شکل .9فراوانی کالسهای موجود در مجموعه داده ارزیابی روش
پیشنهادی
1
True Positive
2
True Negative در ادامه ارزیابی برای مشخص شده میزان دقت روش
3
False Positive
4
False Negative
پیشنهادی در تشخیص بدافزارها با توانایی حمله تزریق
www.SID.ir
Archive of SID
343 ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده
www.SID.ir
Archive of SID
8491 زمستان،3 شماره،نشریه علمی «علوم و فناوریهای پدافند نوین»؛ سال دهم 343
[23] Liu, L.; Wang, B. Sh.; Yu, B.; Zhong, Q. X. “Automatic [7] AV-Test Security Institute “Malware Statics and Trends
Malware Classification and New Malware Detection Report”; https://www.av-test.org/en/statistics/malware, 2016-
Using Machine Learning”; Front. Inf. Technol. Electron. 2018.
Eng. 2017, 18, 1336–1347.
[8] Nayeem, Kh.; Johari, A.; Adnan, Sh. “Defending Malicious
[24] Mohaisen, A.; Alrawi, O.; Mohaisen, M. “AMAL: High- Script Attacks Using Machine Learning Classifiers”; Wirel.
Fidelity, Behavior-Based Automated Malware Analysis Commun. Mob. Com. 2017.
and Classification”; Comput. Secur. 2015, 52, 251–266.
[9] Kaspersky Report; https://usa.kaspersky.com/about/press-
[25] Hansen, S.; Larson, M. L.; Stevanovic, M.; Pedersen, J. releases/2016_kaspersky-lab-number-of-the-year-2016-
M. “An Approach for Detection and Family Classification 323000
of Malware Based on Behavioral Analysis”; Int. Conf. on -pieces-of-malware-detected-daily, 2017.
Computing, Networking and Communications, 2016.
[10] Yan, J.; Qi, Y.; Rao, Q. “Detecting Malware with an Ensemble
[26] Imran, M.; Afzal, M. T.; Qadir, M. A.; Xiao, Zh.; Li, K. Method Based on Deep Neural Network”; Secur. Commun.
“Malware Classification using Dynamic Features and Netw. 2018 (doi:10.1155/2018/7247095).
Hidden Markov Model”; J. Intell. Fuzzy Syst. 2016, 31,
837. [11] Seo, S. H.; Gupta, A.; Mohamed Sallam, A.; Bertino, E.; Yim,
K. “Detecting Mobile Malware Threats to Homeland Security
[27] Das, S.; Liu, Y.; Zhangy, W.; Chandramohan, M. through Static Analysis”; J. Netw. Comput. Appl. 2014, 38, 43-
“Semantics-based Online Malware Detection: Towards 53.
Efficient Real-time Protection against Malware”; IEEE
Trans. Inf. Forensic Secur. 2016, 11, 289-302. [12] Arshad, S.; Shah, M. A.; Wahid, A.; Mehmood, A.; Song, H.;
Yu, H. “SAMADroid: A Novel 3-Level Hybrid Malware
[28] Javaheri, D.; Hosseinzadeh, M. “A Framework for Detection Model for Android Operating System”; IEEE Access
Recognition and Confronting of Obfuscated Malwares 2018, 6, 4321-4339.
Based on Memory Dumping and Filter Drivers”; Wirel.
Pers. Commun. 2018, 98, 119-137. [13] Du, Y.; Wang, J.; Li, Q. “An Android Malware Detection
Approach Using Community Structures of Weighted Function
[29] Gouran Orimi, A. “Provide an Optimal and Transparent Call Graphs”; IEEE Access 2017, 5, 17478-17486.
Framework for Automatic Analysis of Malware”; M.Sc.
Thesis, Iran University of Science and Technology, [14] Rudd, E. M.; Rozsa, A.; Günther, M.; Boult, T. E. “A Survey
Tehran, 2014 (In Persian). of Stealth Malware Attacks, Mitigation Measures, and Steps
toward Autonomous Open World Solutions”; IEEE Commun.
[30] Mohammadzadeh Lajevardi, A. “Design and Surv. Tutor. 2017, 19, 1145-1172.
Implementation of a Behavior-Based Method for Malware
Detection”; M.Sc. Thesis, Iran University of Science and [15] Gandotra, E.; Bansal, D.; Sofat, S. “Malware Analysis and
Technology, Tehran, 2013 (In Persian). Classification: A Survey”; J. Inf. Secur. 2014, 5, 56-64.
[31] Adminus Malware Database; http://www.adminus.net, [16] Javaheri, D. “A Solution for Recognition and Confronting of
2017-2018. Obfuscation and Stealth Techniques of Behavior in Spywares”;
Ph.D. Thesis, Islamic Azad University, Science and Research
[32] Virus Share Malware Database; http://www.virusshare Branch, Tehran, Iran, 2018 (In Persian).
.com, 2016- 2017.
[17] Javaheri, D. “Detection and Behavioral Analysis of Modern
[33] Virus Sign Malware Data Base; http://www.virussign Malwares”; Olom Rayaneh Publications, Iran, 2017 (In
.com, 2013-2016. Persian).
[34] Zaki, M. J.; Wagner M. J. “Data Mining and Analysis: [18] OWASP Security Institute; https://www.owasp.org/
Fundamental Concepts and Algorithms”; Cambridge index.php/Category:OWASP_Top_Ten_Project, 2018.
University Press, 2014, 243-339.
[19] Javaheri D.; Parsa S. “Protection of Operation System against
[35] Conway, D.; Myles, W. J. “Machine Learning for Spywares and Their Diversion”; J. Adv. Defence Sci. &
Hackers”; O`Reilly, 2012. Technol. 2014, 5, 171-181.
[36] Salmani Balu, A. “Design and Implementing a Solution [20] Alam, Sh.; Horspool, R. N.; Traore, I.; Sogukpinar, I. “A
for Detection and Disinfection of Injected Code”; M.Sc. Framework for Metamorphic Malware Analysis and Real-Time
Thesis, Islamic Azad University, Shabestar Branch, East Detection”; Comput. Secur. 2015, 48, 212-233.
Azerbaijan, Iran, 2014 (In Persian).
[21] Wang, P.; Wang, Y. “Malware Behavioral Detection and
[37] NTCORE Injector Stub; http://www.ntcore.com/files/ Vaccine Development by Using a Support Vector Model
inject2exe.htm, 2018. Classifier”; J. Comput. Syst. Sci. 2015, 81, 1012-1026.
[22] Javaheri, D.; Parsa, S. “A Malware Detection Method Based on
Static Analysis of a Portable Executable Structure”; J. Adv.
Defence Sci. & Technol. 2014, 5, 187-201.
www.SID.ir