You are on page 1of 16

Archive of SID

‫نش علم‬
»‫رهی ی «علوم و فناوریاهی پدافند نوین‬
939-404 ‫؛ ص‬8931 ‫ زمستان‬،4 ‫ شماره‬،‫سال دهم‬

‫ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی‬


‫حمالت تزریق کد و کتابخانه در بدافزارها‬
2
‫ مهدی حسینزاده‬،1‫دانیال جواهری‬
.‫ ایران‬،‫ تهران‬،‫ واحد علوم و تحقیقات‬،‫ دانشگاه آزاد اسالمی‬،‫ دانشیار گروه مهندسی کامپیوتر‬-2 ،‫ – دکتری مهندسی کامپیوتر‬1
)30/80/64 :‫ پذیرش‬،30/01/00 :‫(دریافت‬

‫چکیده‬

‫ همچنین رفتار بدافزارهای جدید در حال مبهمتر شدن و‬.‫آهنگ رشد بدافزارها در سالهای اخیر بهصورت فزآیندهای افزایش یافته است‬
‫ این مقاله ضمن تشریح روشهای موجود برای تشخیص بدافزار بهصورت خاص بر روی تشخیص زودهنگام حمالت‬.‫پیچیدهتر شدن است‬
‫ بدافزارهای نوین با تزریق کد بدخواه در فایل باینری و یا حافظه اجرایی برنامههای مجاز سعی در‬.‫تزریق کد و کتابخانه متمرکز شده است‬
‫ زنجیره فراخوانیهای رفتار مخرب‬،‫ روش پیشنهادی این مقاله با دادهکاوی در حجم انبوه بدافزار‬.‫مبهمسازی و مخفیسازی رفتار خود دارند‬
‫کتابخانه را بهوسیله نصب قالبهای شنودگر در فضای هسته سیستمعامل استخراج و بر اساس تابع رگرسیون خطی مدلسازی‬/‫تزریق کد‬
‫ استفاده میکند و‬Apriori ‫ روش پیشنهادی برای تشخیص زود هنگام حمله از یادگیری مبتنی بر قواعد انجمنی بر اساس الگوریتم‬.‫میکند‬
‫ همچنین روش پیشنهادی میتواند از‬.‫قادر است حمالت را قبل از کامل شدن و از بین رفتن کنترل جریان اجرایی برنامه قربانی تشخیص دهد‬
‫ در انتها این مقاله دقت روش پیشنهادی خود در تشخیص بدافزارهای کالس‬.‫وقوع حمله با انسداد فراخوانی ایجاد نخ راه دور جلوگیری کند‬
‫ نتایج‬.‫تزریقکننده را با مجموعه داده جمعآوریشده از مراجع معتبر ارزیابی و در شرایط یکسان با ابزارهای ضدبدافزار موجود مقایسه میکند‬
‫ همچنین ضریب‬.‫کتابخانه را تشخیص دهد‬/‫ حمالت تزریق کد‬%34 ‫ارزیابی نشان میدهد که روش پیشنهادی میتواند با دقت نزدیک به‬
.‫ سنجش شده است‬11/11 ‫کتابخانه‬/‫موفقیت سامانه خود حفاظتی پیشنهادی در مواجهه با حمالت تزریق کد‬

‫ مخفیسازی‬،‫ مبهمسازی‬،‫ خود حفاظتی‬،‫ تزریق کد‬،‫ کشف جاسوس افزار‬،‫ تحلیل بدافزار‬:‫کلیدواژه ها‬

A Solution for Early Detection and Negation of


Code and DLL Injection Attacks of Malwares
D. Javaheri, M. Hosseinzadeh*
Department of Computer Engineering, Science and Research Branch, Islamic Azad University, Tehran, Iran.
(Received: 29/10/2018; Accepted: 16/01/2019)

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‬‬

‫‪ 6084‬به ‪ 969‬هزار بدافزار در روز رسیده است [‪ ]3‬که روزانه‬ ‫‪ .8‬مقدمه‬


‫‪ 89‬هزار بدافزار بیشتر از سال ‪ 6083‬بوده است و در نهایت در‬
‫سال ‪ 6080‬تعداد ‪ 400‬میلیون بدافزار توسط آزمایشگاه‬ ‫در سالهای اخیر‪ ،‬نفوذ باالی سیستمهای نرمافزاری در زندگی‬
‫مَکآفی کشف شده است [‪ .]80‬علت آهنگ باالی تولید‬ ‫انسان منجر به تولید و انباشت حجم انبوهی از اطالعات بهصورت‬
‫بدافزار‪ ،‬ابزارهای خودکار تولید کد‪ ،‬مبهمساز‪ 4‬و چندریخت‬ ‫دیجیتال شده است‪ .‬پیش بینی شده که هر ‪ 40‬ماه مقدار دادههای‬
‫ساز‪ 3‬است‪.‬‬ ‫تولیدشده در جهان دو برابر میشود [‪ .]8‬مَنشاء تولید بسیاری از‬
‫این اطالعات حسگرها‪ ،‬شبکههای اجتماعی و سازمانهای‬
‫آهنگ رو به رشد بدافزارها در دیگر سیستمعاملها از‬ ‫الکترونیکی است‪ .‬تعداد کاربران شبکه جهانی اینترنت در سال‬
‫جمله اَندروید‪ iOS ،‬و مَک‪ 4‬نیز دیده میشود‪ .‬امروزه اَندروید‬ ‫‪ 6081‬از مرز ‪ 4‬میلیارد گذشته و به ‪ 4‬میلیارد و ‪ 68‬میلیون رسیده‬
‫محبوبترین سیستمعامل برای گوشیهای هوشمند در جهان‬ ‫است [‪ ]8‬با توجه به آمار رسمی جمعیت کره زمین که در این سال‬
‫است [‪ ]88‬به همین دلیل مورد توجه بدافزارها قرار گرفته‬ ‫‪ 0‬میلیارد و ‪ 339‬میلیون تخمین زده میشود‪ ،‬ضریب نفوذ اینترنت‬
‫است [‪ .]86‬سیستمعامل اَندروید هدف ‪ 30‬درصد از حمالت‬ ‫در زندگی بَشَر ‪ 39‬درصد است‪ .‬رشد سریع سیستمهای اینترنت‬
‫جهان موبایل محور در سال ‪ 6089‬بوده و در سال ‪ 6084‬تعداد‬ ‫پایه عامل اصلی پیدایش جرایم سایبری شامل هَک‪ ،‬فیشینگ‪،8‬‬
‫تروجانهای کشفشده در این سیستمعامل به ‪ 000‬هزار نمونه‬ ‫سرقت اطالعات‪/‬هویت و گسترش بدافزارها بوده است [‪ .]6‬در سبک‬
‫رسیده است [‪ .]89‬اگر چه بدافزارها در دیگر سیستمعاملها‬ ‫زندگی جدید عمده داراییهای اشخاص و سازمانها بهصورت‬
‫نظیر اَندروید رشد قابل توجهی داشتهاند اما همچنان‬ ‫دیجیتال توسط سیستمهای نرمافزاری تولید و ذخیره میشوند‪.‬‬
‫جهتگیری اصلی بدافزارها به سمت سیستمعامل ویندوز است‬ ‫ارزشمند بودن این اطالعات سبب شده که همزمان با گسترش‬
‫بهگونهای که بیش از ‪ 30‬درصد کل بدافزارهای فعال در جهان‬ ‫دنیای دیجیتال در زندگی بشر‪ ،‬افراد سود جو و بدخواه نیز بدین‬
‫خاص این سیستمعامل طراحی شدهاند [‪ .]84‬شکل (‪)8‬‬ ‫عرصه ورود کرده و بهدنبال اهداف بدخواهانه خود باشند‪ .‬حمالت‬
‫مقایسه دقیقی از آهنگ رشد بدافزارها در سیستمعاملهای‬ ‫سایبری سازمان یافته‪ ،‬توسعه و انتقال برنامههای مخرب و بدافزارها‬
‫مختلف را در بین سالهای ‪ 6003‬تا ‪ 6081‬نشان میدهد‪ .‬بر‬ ‫از جمله این اهداف بدخواهانه هستند که مقابله با آنها مستلزم‬
‫این اساس آهنگ رشد بدافزار در سیستمعامل ویندوز ‪ 64‬برابر‬ ‫کسب دانش و توسعه سیستمهای دفاعی است‪ .‬اگرچه همواره‬
‫سیستمعامل اَندروید در سال ‪ 6081‬بوده است‪.‬‬ ‫توسعه سیستمهای مخرب سریعتر از سیستمهای امنیتی بوده‬
‫‪100000000‬‬
‫‪31M‬‬ ‫‪35M‬‬
‫‪68M‬‬ ‫‪50M‬‬ ‫‪66M‬‬ ‫‪48M‬‬ ‫است [‪ .]9‬بسیاری از تهدیدات و حمالت سایبری توسط بدافزارها‬
‫‪20M‬‬
‫‪13M‬‬ ‫‪13M‬‬ ‫انجام میشود‪ .‬عامل رُخداد ‪ 30‬درصد از خرابیها در سیستمهای‬
‫‪10000000‬‬ ‫‪5M‬‬
‫‪3M‬‬
‫‪4M‬‬ ‫نرمافزاری ناشی از وجود و فعالیت بدافزارها است [‪.]4‬‬
‫‪2M‬‬

‫‪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‬‬

‫بدون فایل و مقیم پروفایل‬ ‫حافظههای جانبی‬ ‫محل اقامت‬ ‫‪3‬‬

‫بسیار باال‬ ‫پایین‬ ‫سهولت در انتشار‬ ‫‪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‬یک‬
‫تزریق به حافظه یک برنامه زمانی که در حال اجرا است‬
‫برنامه کاربردی که هدف حمله بدافزار جهت تزریق کد مخرب‬
‫متفاوت و بسیار سختتر از زمانی است که بهصورت فایل باینری‬
‫قرار گرفته است را بهترتیب قبل و بعد از فرآیند تزریق نشان‬
‫بروی دیسک سخت ذخیره شده است‪ .‬بنابراین‪ ،‬تزریق کد و‬
‫میدهند‪ .‬بدافزار با ایجاد یک قسمت جدید و تغییر در‬
‫کتابخانه میتواند بهصورت پویا برای یک برنامه در حال اجرا و یا‬
‫آدرسهای سایر قسمتها کدهای مخرب خود را در زمان آغاز‬
‫بهصورت ایستا برای یک برنامه ذخیرهشده روی دیسک سخت‬
‫اجرای برنامه قربانی اجرا میکند‪.‬‬
‫صورت پذیرد که در ادامه تشریح میشوند‪.‬‬

‫تزریق به فایل باینری‬ ‫‪.8-4‬‬


‫در این روش هدف حمله یک فایل باینری ذخیرهشده روی دیسک‬
‫سخت بوده و فرآیند تزریق بدین صورت است که ابتدا یک دستگیره‬
‫به فایل هدف با استفاده از توابع سیستمی ‪ CreateFile‬و یا‬
‫‪ OpenFile‬ایجاد میشود در گام بعد آدرس نقطه شروع برنامه‬
‫شکل ‪ .4‬ساختار ‪ PE‬برنامه بیخطر قبل از تزریق کد توسط بدافزار‬ ‫محاسبه میشود‪ .‬نقطه شروع برنامه یا ‪ EP8‬محلی است که کدهای‬
‫اجرایی برنامه از آن نقطه شروع به اجرا میکنند‪ .‬آدرس این نقطه بر‬
‫اساس معادله (‪ )8‬محاسبه میشود در ادامه بعد از بهدست آوردن‬
‫نقطه ورود فایل اجرایی‪ ،‬یک قسمت جدید به فایل ‪ PE‬اضافه‬
‫میشود و با استفاده از تابع سیستمی ‪ WriteFile‬کدهای مخرب در‬
‫قسمت جدید که اخیراً ایجاد شده نوشته میشوند سپس مقدار‬
‫‪ OEP6‬بروی آدرس آغازین قسمت جدید تنظیم میشود‪ .‬علت این‬
‫شکل ‪ .3‬ساختار ‪ PE‬همان برنامه بعد از تزریق کد توسط بدافزار‬
‫‪1‬‬
‫‪Entry Point‬‬
‫‪3‬‬ ‫‪2‬‬
‫‪Address Space Layout Randomization‬‬ ‫‪Original Entry Point‬‬

‫‪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‬‬

‫‪,‬‬ ‫‪,‬‬ ‫در این معادله ‪ A, B, C‬فراخوانیهای سیستی و‬


‫فرکانس تَکَرُر آنها هستند‪ M .‬زنجیره فراخوانی براساس تَواتُر زمان‬
‫فراخوانی است‪ .‬برای استفاده از معادله (‪ )9‬در روش پیشنهادی‪ ،‬از‬
‫توابع سیستمی ذکر شده در شکل (‪ )4‬استفاده شده و رفتار‬
‫بدخواهانه تزریق کد یا کتابخانه مدل میشود‪ .‬بنابراین‪ ،‬در روش‬
‫شکل ‪ .3‬توابع موجود در جدول ‪ IAT‬یک جاسوس افزار با توانایی‬ ‫پیشنهادی زنجیرهای مطابق با شکل (‪ )4‬تشکیل میشود‪ .‬در صورتی‬
‫تزریق کتابخانه که توسط روش پیشنهادی تشخیص داده شده‬

‫‪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‬نشان‬ ‫زنجیره محقق شده است‪ .‬بدین ترتیب روش پیشنهادی قبل از‬
‫داده شده است‪.‬‬ ‫تکمیل حمله و تزریق کامل کتابخانه آن را در گام پنجم تشخیص‬

‫شکل ‪ .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‬‬ ‫ارائه راهکاری برای تشخیص زودهنگام و خنثیسازی حمالت تزریق کد و کتابخانه در بدافزارها؛ دانیال جواهری و مهدی حسینزاده‬

‫‪ .3‬نتیجهگیری‬ ‫همانگونه که در شکل (‪ )80‬مشخص است روش پیشنهادی از‬


‫نظر دقت توانسته از ضدبدافزارهای مشهور مانند کِلَم اِیوی‪ 8‬برتر‬
‫بدافزارها بهشدت در حال گسترش و پیچیدهترشدن هستند‪ .‬از‬ ‫‪9‬‬
‫عمل کرده و با ضدبدافزارهایی نظیر ایسِت نود‪ 696‬و مَکآفی‬
‫جمله روشهای مورد استفاده بدافزارها برای مبهمسازی و‬
‫برابری کند‪.‬‬
‫مخفیسازی رفتار بدخواهانه خود‪ ،‬تزریق کد و کتابخانه در‬
‫حافظه اجرایی دیگر فرآیندهای در حال اجرا و یا بدنه یک فایل‬ ‫‪ .2-3‬ضریب موفقیت سامانه خود حفاظتی‬
‫باینری روی دیسک سخت است‪ .‬این مقاله راهکاری برای‬ ‫روش پیشنهادی برای تشخیص صحیح حمالت تزریق کد یا‬
‫تشخیص زود هنگام حمالت تزریق کد‪/‬کتابخانه را با شنود‬ ‫کتابخانه در زمانی که سیستم آلوده است‪ ،‬خود باید در مواجه با این‬
‫روتینهای سیستمی سطح هسته مبتنی بر قالب ‪ IRP‬فراهم‬ ‫حمالت مصون باشد‪ .‬در این آزمون میزان موفقیت روش پیشنهادی‬
‫آورد‪ .‬در ادامه این مقاله امکان خود حفاظتی در مقابل حمالت‬ ‫برای ایجاد مصونیت در مقابل حمالت تزریق کد و کتابخانه سنجیده‬
‫مبتنی بر تزریق را تشریح کرده و طرح معماری یک سامانه‬ ‫میشود‪ .‬سازوکار خود حفاظتی بر اساس روش پیشنهادی این مقاله‬
‫پویشگر بر اساس روش پیشنهادی خود را ارائه کرد‪ .‬در پایان‬ ‫با زبان ‪ C#.net‬پیادهسازی و بر روی پویشگر پیشنهادی این مقاله‬
‫مقاله دقت روش پیشنهادی خود را در تشخیص بدافزارهای‬ ‫تعبیه شده است سپس توسط ابزارهای تزریقکننده کد‪/‬کتابخانه‬
‫کالس آلودهکننده و چسبنده ارزیابی و با ابزارهای ضدبدافزار‬ ‫مطابق با جدول (‪ )6‬سعی در تزریق کد بدخواه به بدنه فایل باینری‬
‫موجود مقایسه کرد همچنین ضریب موفقیت در جلوگیری از‬ ‫روی دیسک سخت و تزریق کتابخانه به حافظه فرآیند برنامه‬
‫حمالت تزریق کد‪/‬کتابخانه نیز سنجش شد‪ .‬نتایج ارزیابی‬ ‫پویشگر (تحت حفاظت) شده است‪ .‬برنامههای تزریقکننده از‬
‫نشاندهنده دقت نزدیک به ‪ 34‬درصدی روش پیشنهادی در‬ ‫نمونههای موجود و در دسترس انتخاب شدهاند‪ .‬برخی از ابزارها‬
‫تشخیص حمالت مبتنی تزریق کد‪/‬کتابخانه و ضریب موفقیت‬ ‫امکان تزریق در بدنه فایل باینری ذخیرهشده روی دیسک سخت‬
‫باالی ‪ 11‬درصد در خنثیسازی آنها بود‪ .‬اهمیت این پژوهش‬ ‫(تزریق ایستا) و برخی دیگر امکان تزریق در حافظه فرآیند در حال‬
‫با توجه به هجوم گسترده و روز افزون بدافزارهای مبهم شده و‬ ‫اجرا (تزریق پویا) را دارند‪ .‬در دو مورد ابزار مورد استفاده هر دو‬
‫خاص منظوره کامالً نمایان است‪ .‬همانگونه که در طول این‬ ‫امکان تزریق به فایل اجرایی روی دیسک سخت و تزریق به حافظه‬
‫مقاله ذکر شد روش پیشنهادی برای تشخیص زودهنگام و‬ ‫اختصاص یافته به فرآیند در حال اجرا را دارد‪ .‬نتایج در جدول (‪)6‬‬
‫خنثیسازی حمالت تزریق کد و کتابخانه بر پایه سیستمعامل‬ ‫آورده شده است‪.‬‬
‫ویندوز طراحی و پیادهسازی شده است‪ .‬با عنایت به گسترش‬
‫جدول ‪ . 2‬ارزیابی ضریب موفقیت روش پیشنهادی برای خود حفاظتی در‬
‫روز افزون بدافزارها در سیستمعاملهای دیگر از جمله‬
‫مقابل ابزارهای تزریق کد‪/‬کتابخانه‬
‫سیستمعامل اَندروید پیشنهاد میشود راهکاری برای شناسایی‬
‫و مقابله با اینگونه حمالت در سایر سیستمعاملها مورد توجه‬ ‫ابزار [‪]94‬‬ ‫‪API Mon‬‬ ‫‪API Hijack‬‬ ‫ابزار [‪]63‬‬ ‫نام ابزار‬
‫پژوهشگران قرار گیرد‪.‬‬ ‫فایل‬ ‫فرآیند‬ ‫فرآیند‬ ‫فرآیند‬ ‫فایل‬ ‫هدف حمله‬
‫ناموفق‬ ‫ناموفق‬ ‫ناموفق‬ ‫موفق‬ ‫ناموفق‬ ‫نتیجه حمله‬
‫‪ .3‬مرجعها‬ ‫‪NtCore‬‬ ‫‪Hook Tool‬‬
‫‪EasyHook‬‬ ‫‪Marshal SDK‬‬ ‫نام ابزار‬
‫[‪]90‬‬ ‫‪SDK‬‬
‫]‪[1‬‬ ‫‪Hootsuite & WAS Institute; https://wearesocial.‬‬ ‫فایل‬ ‫فایل‬ ‫فرآیند‬ ‫فایل‬ ‫فایل‬ ‫هدف حمله‬
‫‪com/blog/2018/01/global-digital-report-2018, 2018.‬‬
‫ناموفق‬ ‫ناموفق‬ ‫ناموفق‬ ‫ناموفق‬ ‫نتیجه حمله‬
‫]‪[2‬‬ ‫‪Huang, T.; Zhao, Y. “Revolution of Securities Law in the‬‬
‫‪Internet Age: A Review on Equity Crowd-Funding”; J.‬‬
‫‪Comput. Law Secur. Rev. 2017, 33, 802-810.‬‬ ‫همانگونه که در جدول (‪ )6‬مشخص است روش پیشنهادی‬
‫]‪[3‬‬ ‫‪Garry, L. W. “Education and Prevention Relationships on‬‬ ‫توانسته است از فرآیند و فایلهای خود در مقابل ‪ 1‬حمله تزریق‬
‫‪Security Incidents for Home Computers”; J. Comput.‬‬
‫‪Inform. Syst. 2015, 55, 29-37.‬‬ ‫کد‪/‬کتابخانه از ‪ 3‬مورد حمله به خوبی محافظت کند که با نتیجه‬
‫]‪[4‬‬ ‫‪Han, L.; Liu, S.; Han, S.; Jia, W.; Lei, J. “Owner Based‬‬ ‫"ناموفق" در جدول (‪ )6‬نشان داده شده است‪ .‬از تناسب میان‬
‫‪Malware Discrimination”; J. Future Gener. Comput. Syst.‬‬
‫‪2018, 80, 496-504.‬‬ ‫حمالت ناموفق به کل حمالت صورت گرفته علیه پویشگر‬
‫]‪[5‬‬ ‫‪Vidal, J. M.; Sandoval Orozco, A. L.; García Villalba, L.‬‬ ‫پیشنهادی‪ ،‬ضریب موفقیت ‪ 11/11‬درصدی برای خود حفاظتی‬
‫‪J. “Alert Correlation Framework for Malware Detection‬‬
‫‪By Anomaly-Based Packet Payload Analysis”; J. Netw.‬‬ ‫پویشگر بهدست میآید‪.‬‬
‫‪Comput. Appl. 2017, 97, 11-22.‬‬
‫]‪[6‬‬ ‫;”‪McAfee Report “Infographic: The State of Malware‬‬ ‫‪1‬‬
‫‪ClamAV‬‬
‫‪http://www.mcafee.com/in/security-awareness/articles/‬‬ ‫‪2‬‬
‫‪Eset Nod32‬‬
‫‪state-of-malware-2013.aspx, Accessed 2014.‬‬ ‫‪3‬‬
‫‪McAfee‬‬

‫‪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

You might also like