SlideShare uma empresa Scribd logo
1 de 46
‫محمد‬‫مهدی‬‫احمدیان‬
‫اطالعات‬ ‫امنیت‬ ‫ارشد‬ ‫کارشناسی‬ ‫دانشجوی‬
‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬
‫تهران‬ ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫آذر‬93
‫سازی‬ ‫قالب‬(Hooking)‫در‬‫تحلیل‬‫و‬‫بدافزار‬ ‫طراحی‬
www.mmAhmadian.ir
[1] Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski
and Andrew Honig -2012.(chapter 11)
[2] w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling Behavior from malicious binary
Executable ,”in computer and electrical Engineering , ICCEE 2008 .International conference on ,pp.388-
392, 2008.
[3] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida
Institute of Technology,2004.
[4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes within non-control data."
Proceedings of the 23rd USENIX conference on Security Symposium. USENIX Association, 2014.
[5] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and
api hooking." Software: Practice and Experience 40.7 (2010): 567-584.
]6[‫مجموعه‬‫گزارشات‬‫آپا‬‫دانشگاه‬‫فردوسی‬‫مشهد‬(‫سوسن‬‫نادری،مریم‬‫نژاد‬‫کمالی،شهب‬‫الدین‬‫نمازی‬‫خواه‬)
[10] Toward Automated Dynamic Malware Analysis Using CWSandbox.CARSTEN WILLEMS, THORSTEN
HOLZ,FELIX FREILING, IEEE SECURITY & PRIVACY ,2007 .
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬-
1/40
www.mmAhmadian.ir
8
‫مقدمه‬
‫روش‬‫های‬‫سازی‬ ‫قالب‬
‫کتابخانه‬Detours
5
3
2
1
‫مراجع‬ ‫و‬ ‫منابع‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop
3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn
4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬
5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE
6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬
7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬
9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬
10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬
1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
4‫پویا‬ ‫سازی‬ ‫قالب‬
2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
‫مقدمه‬:
‫بدافزار‬ ‫یک‬ ‫توسط‬ ‫شده‬ ‫وارد‬ ‫توابع‬ ‫لیست‬ ‫استخراج‬ ‫اهمیت‬
‫ض‬‫ایستا‬ ‫تحلیل‬ ‫بر‬ ‫مبتنی‬ ‫های‬ ‫روش‬ ‫عف‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫برنامه‬ ‫توسعه‬ ‫جهت‬ ‫برنامه‬ ‫منبع‬ ‫کد‬ ‫داشتن‬ ‫اختیار‬ ‫در‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫برنامه‬ ‫خدمات‬ ‫از‬ ‫استفاده‬ ‫برای‬
‫ها‬ ‫افزونه‬ ‫یا‬ ‫ها‬ ‫رابط‬ ‫کردن‬ ‫اضافه‬
‫پایین‬ ‫سطح‬ ‫نویسی‬ ‫برنامه‬ ‫از‬ ‫استفاده‬(‫ماشین‬ ‫کد‬ ‫تغییر‬)
‫امنیتی‬ ‫اقدامات‬ ‫زدن‬ ‫دور‬ ،‫ناچیز‬ ‫تغییرات‬ ‫انجام‬ ،‫کوچک‬ ‫اشکاالت‬ ‫رفع‬ ‫برای‬
‫تزریق‬DLL:
‫در‬ ‫کد‬ ‫بارگذاری‬DLL‫اجرا‬ ‫حال‬ ‫در‬ ‫ی‬ ‫برنامه‬ ‫درون‬ ‫دلخواه‬
‫مثال‬:‫ایجاد‬DLL‫شده‬ ‫پروکسی‬
‫سازی‬ ‫قالب‬API(‫جعل‬API‫گذاری‬ ‫تله‬ ،)
‫تواب‬ ‫های‬ ‫فراخوان‬ ‫بر‬ ‫نظارت‬ ‫های‬ ‫روش‬ ‫ترین‬ ‫رایج‬ ‫از‬ ‫یکی‬‫ع‬
3/40
]1[
www.mmAhmadian.ir
•‫من‬ ‫کد‬ ‫مجدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬ ‫اجرایی‬ ‫جریان‬ ‫کنترل‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫است‬ ‫آن‬ ‫بع‬.
hooking
•‫آید‬‫می‬ ‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬ ‫مجدد‬ ‫هدایت‬ ‫و‬ ‫تابع‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬ ‫توسط‬.
•‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫مای‬ ‫تاابع‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫اجراشا‬ ‫تواناد‬‫نتیجاه‬ ‫و‬ ‫ده‬
‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫ش‬‫ود‬]2،7[.
‫کلی‬ ‫ایده‬:
•‫یاا‬ ‫و‬ ‫کااربردی‬ ‫عامل،برناماه‬ ‫سیستم‬ ‫یک‬ ‫رفتار‬ ‫تکمیل‬ ‫یا‬ ‫تغییر‬ ‫برای‬ ‫استفاده‬ ‫مورد‬ ‫سازوکارهای‬ ‫از‬ ‫وسیعی‬ ‫طیف‬ ‫سازی‬ ‫قالب‬‫نارم‬ ‫اجازان‬ ‫ساایر‬
‫دهد‬ ‫می‬ ‫پوشش‬ ‫را‬ ‫ها‬ ‫افزار‬(.‫رویدادها‬ ‫یا‬ ‫و‬ ‫ها‬ ‫توابع،پیام‬ ‫فراخوانی‬ ‫جلوگیری‬ ‫طریق‬ ‫از‬)
•‫ب‬‫دارد‬ ‫عهده‬ ‫بر‬ ‫را‬ ‫وظایف‬ ‫این‬ ‫مدیریت‬ ‫که‬ ‫کدی‬ ‫ه‬«‫قالب‬»‫شود‬ ‫می‬ ‫گفته‬.
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
4/40
]6[
‫مفاهیم‬‫اولیه‬]8[:
‫سیستمی‬ ‫فراخوان‬:
‫توابا‬ ‫از‬ ‫یکای‬ ،‫باشاد‬ ‫داشته‬ ‫را‬ ‫افزار‬ ‫سخت‬ ‫و‬ ‫سیستم‬ ‫منابع‬ ‫به‬ ‫دسترسی‬ ‫به‬ ‫نیاز‬ ‫کاربر‬ ‫سطح‬ ‫افزار‬‫نرم‬ ‫یک‬ ‫هرگاه‬‫سیساتم‬ ‫درون‬ ‫ع‬
‫سیستمی‬ ‫فراخوان‬ ‫عمل‬ ‫این‬ ‫به‬ ‫که‬ ،‫کند‬‫می‬ ‫فراخوانی‬ ‫را‬ ‫عامل‬‫گویند‬‫می‬.
‫یک‬ ‫خروجی‬File-handle‫است‬.
‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫انواع‬:
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
5/40
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
6/40
API:
‫شود‬ ‫می‬ ‫ارائه‬ ‫کاربر‬ ‫سطح‬ ‫های‬ ‫برنامه‬ ‫برای‬ ‫عامل‬ ‫سیستم‬ ‫توسط‬ ‫که‬ ‫است‬ ‫هایی‬ ‫روتین‬ ‫مجموعه‬(‫به‬ ‫دسترسی‬ ‫برای‬‫منابع‬).
‫های‬ ‫کتابخانه‬ ‫برخی‬ ‫در‬DLL‫مانند‬kernel32.dll‫و‬user32.dll‫و‬...
API‫بومی‬ ‫های‬‫ویندوز‬:
‫و‬ ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫رابط‬ ‫مابین‬API‫میگیرند‬ ‫قرار‬ ‫ویندوز‬ ‫های‬.
‫شوند‬ ‫می‬ ‫استفاده‬ ‫عامل‬ ‫سیستم‬ ‫خود‬ ‫توسط‬ ‫اکثرا‬.
‫توسط‬ ‫بومی‬ ‫توابع‬ ‫فراخوانی‬ ‫اکثر‬ntoskrnl.exe‫شود‬ ‫می‬ ‫انجام‬.
‫از‬ ‫توانند‬ ‫می‬ ‫تابع‬ ‫این‬ ‫فراخوانی‬ ‫برای‬ ‫کاربران‬ntdll.dll‫کنند‬ ‫استفاده‬.
‫پیشوند‬ ‫با‬ ‫توابع‬ ‫تمامی‬Nt‫شوند‬ ‫می‬ ‫شروع‬.
]8[
application programming interface
‫سیستمی‬ ‫فراخوان‬ ‫یک‬ ‫چرخه‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
8/40
‫فراخوانی‬ ‫بر‬ ‫بتوان‬ ‫اگر‬API‫کرد‬ ‫پویا‬ ‫تحلیل‬ ‫را‬ ‫ها‬ ‫آن‬ ‫توان‬ ‫می‬ ‫داشت‬ ‫نظارت‬ ‫آن‬ ‫پارامترهای‬ ‫و‬ ‫مربوطه‬ ‫های‬.
‫است‬ ‫سازی‬ ‫قالب‬ ‫راهها‬ ‫این‬ ‫از‬ ‫یکی‬.
‫ترین‬‫ساده‬‫کاربر‬ ‫سطح‬ ‫فضای‬ ‫در‬ ‫پویا‬ ‫رهگیری‬ ‫برای‬ ‫روش‬ ‫پرکاربردترین‬ ‫و‬‫است‬]9[.
‫سازی‬ ‫قالب‬ ‫انواع‬:
‫محلی‬
‫و‬ ‫نویسی‬ ‫برنامه‬ ‫امنیتی،ابزارهای‬ ‫های‬ ‫ضدبدافزارها،برنامه‬ ‫توسط‬ ‫استفاده‬...
‫سراسری‬
‫ارائه‬ ‫نخست‬ ‫بخش‬ ‫دو‬ ‫در‬ ‫ما‬ ‫هدف‬:
‫بدافزار‬ ‫رفتار‬ ‫تحلیل‬ ‫برای‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬
‫توجه‬:‫سازی‬ ‫قالب‬ ‫تابع‬ ‫تشخیص‬ ‫در‬ ‫سعی‬ ‫بدافرارها‬
www.mmAhmadian.ir
‫مقدمه‬
‫روش‬‫های‬‫سازی‬ ‫قالب‬
‫کتابخانه‬Detours
5
3
2
1
‫مراجع‬ ‫و‬ ‫منابع‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop
3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn
4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬
5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE
6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬
7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬
9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬
10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬
1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
4‫پویا‬ ‫سازی‬ ‫قالب‬
2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬
‫فرض‬ ‫با‬ ‫بعد‬ ‫به‬ ‫اینجا‬ ‫از‬‫معماری‬x86
‫غیرشرطی‬ ‫پرش‬ ‫دستور‬ ‫طول‬(‫همیشه‬ ‫تقریبا‬:)5‫بایت‬
‫بایت‬ ‫یک‬:‫کدعملگر‬
‫بایت‬ ‫چهار‬:‫نسبی‬ ‫آفست‬32‫بیتی‬
9/40
]1،6[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
10/40
‫تشخیص؟‬ ‫نحوه‬
]1،6[
‫بیشتر‬ ‫مطالعه‬ ‫برای‬:
jbremer.org/x86-api-hooking-demystified/
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫یک‬ ‫کردن‬ ‫اضافه‬NOP‫ابتدا‬ ‫به‬
11/40
‫تشخیص‬ ‫نحوه‬:
]5،10[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫دستور‬Push:‫مقدار‬ ‫یک‬ ‫دادن‬ ‫قرار‬32‫پشته‬ ‫روی‬ ‫بیتی‬
‫دستور‬ ‫طول‬:5‫بایت‬
‫دستور‬:Retn‫برداشتن‬‫مقدار‬ ‫یک‬32‫بیتای‬‫پشاته‬ ‫روی‬ ‫از‬
‫در‬ ‫دادن‬ ‫قرار‬ ‫و‬IP
‫دستور‬ ‫طول‬:1‫بایت‬
12/40
]5[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫روش‬ ‫مشابه‬Push/retn
‫مقاد‬ ‫ایان‬ ‫سپس‬ ‫و‬ ‫گیرد‬ ‫می‬ ‫قرار‬ ‫پشته‬ ‫روی‬ ‫ساختگی‬ ‫مقدار‬‫باا‬ ‫ار‬
‫شود‬ ‫می‬ ‫برگردانده‬ ‫سپس‬ ‫و‬ ‫شده‬ ‫بازنویسی‬ ‫واقعی‬ ‫آدرس‬.
‫آدرس‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫پرش‬ ‫آدرس‬ ‫سازی‬ ‫ذخیره‬ ‫جای‬ ‫به‬32‫بیتی‬
‫شناور‬ ‫نقطه‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫آدرس‬ ‫این‬64‫شود‬ ‫می‬ ‫ذخیره‬ ‫بیتی‬.
‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫پرش‬ ‫آدرس‬ ‫سپس‬Fld‫شده‬ ‫می‬ ‫خوانده‬
‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬fistp‫مقادار‬ ‫یاک‬ ‫به‬32‫مای‬ ‫ترجماه‬ ‫بیتای‬
‫شود‬.
‫از‬ ‫استفاده‬11‫بایت‬
13/40 Floating Point
]1،6[
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫شناور‬ ‫نقاط‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬
‫دستورات‬ ‫مجموعه‬ ‫از‬ ‫شناور‬ ‫نقطه‬ ‫از‬ ‫استفاده‬ ‫جای‬ ‫به‬MMX‫یا‬SSE‫کند‬ ‫می‬ ‫استفاده‬.
‫دستور‬ ‫نظیر‬movd:‫مثل‬fistp‫کند‬ ‫ذخیره‬ ‫پشته‬ ‫در‬ ‫و‬ ‫خوانده‬ ‫حافظه‬ ‫از‬ ‫مقدار‬ ‫یک‬ ‫دهد‬ ‫می‬ ‫اجازه‬.
‫دستورات‬MMX‫های‬ ‫ثبات‬ ‫در‬64‫بیتی‬
‫دستورات‬SSE‫های‬ ‫ثبات‬ ‫در‬128
14/40
]10[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫غیرمستقیم‬ ‫پرش‬ ‫طول‬:6‫بایت‬
15/40
]5[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫کردند‬ ‫می‬ ‫پرش‬ ‫قالب‬ ‫تابع‬ ‫به‬ ‫مستقیما‬ ‫قبل‬ ‫های‬ ‫روش‬.
‫دارد‬ ‫اضافی‬ ‫گام‬ ‫یک‬ ‫به‬ ‫نیاز‬ ‫روش‬ ‫این‬.
‫دساتور‬ ‫اینکاه‬ ‫دلیل‬ ‫به‬call‫از‬ ‫پاس‬‫آدرس‬ ‫قاراردادن‬
‫بازگشت‬‫مای‬ ‫پارش‬ ‫مشاخص‬ ‫آدرس‬ ‫یاک‬ ‫باه‬ ‫درپشته‬
‫کند‬
‫طا‬ ‫عاالوه‬ ‫به‬ ‫فعلی‬ ‫دستور‬ ‫گر‬ ‫بازگشت،اشاره‬ ‫آدرس‬‫ول‬
‫است‬ ‫فراخوانی‬ ‫دستور‬.
16/40
]1،6[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫بخش‬ ‫از‬ ‫استفاده‬idata‫ساختار‬ ‫در‬PE.
‫ورودی‬ ‫های‬ ‫آدرس‬ ‫جدول‬
‫ورودی‬ ‫توابع‬ ‫نسبی‬ ‫های‬ ‫آفست‬ ‫دارای‬
‫شوند‬ ‫می‬ ‫تصحیح‬ ‫پایه‬ ‫آدرس‬ ‫اساس‬ ‫بر‬ ‫بارگذار‬ ‫با‬.
‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬ ‫با‬
17/40
]1،6[
•‫سرویس‬ ‫توزیع‬ ‫جدول‬‫سیستم‬(SSDT)
•‫با‬‫ب‬ ‫کنتارل‬ ‫ابتادا‬ ‫گاردد‬‫مای‬ ‫فراخاوانی‬ ‫سیساتمی‬ ‫تاابعی‬ ،‫کااربر‬ ‫برناماه‬ ‫در‬ ‫کاه‬ ‫زماانی‬ ،‫جادول‬ ‫این‬ ‫از‬ ‫استفاده‬‫باه‬ ‫رناماه‬
‫توجا‬ ‫باا‬ ‫و‬ ‫مراجعه‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬ ‫جدول‬ ‫به‬ ‫عامل‬‫سیستم‬ ‫سپس‬ ، ‫شود‬‫می‬ ‫برگردانده‬ ‫عامل‬‫سیستم‬‫تاابع‬ ‫ناوع‬ ‫باه‬ ‫ه‬
‫ا‬‫ا‬‫فراخ‬ ‫را‬ ‫آن‬ ‫و‬ ‫اه‬‫ا‬‫یافت‬ ‫را‬ ‫ااز‬‫ا‬‫موردنی‬ ‫اتمی‬‫ا‬‫سیس‬ ‫اابع‬‫ا‬‫ت‬ ‫آدرس‬ ،‫اده‬‫ا‬‫ش‬‫اتاده‬‫ا‬‫فرس‬ ‫اای‬‫ا‬‫ه‬‫اان‬‫ا‬‫آرگوم‬ ‫و‬ ‫اا‬‫ا‬‫موردتقاض‬ ‫اتمی‬‫ا‬‫سیس‬‫وانی‬
‫کند‬‫می‬]3[.
System Service Dispatch Table
‫سازی‬ ‫قالب‬‫توسط‬SSDT[2]
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
18/40
‫پویا‬ ‫تحلیل‬ ‫نحوه‬:
‫پا‬ ‫و‬ ‫کارده‬ ‫جاایگزین‬ ‫ساابقه‬ ‫فایال‬ ‫ایجااد‬ ‫منظاور‬‫به‬ ‫دلخواهمان‬ ‫تابع‬ ‫آدرس‬ ‫با‬ ‫را‬ ‫جدول‬ ‫این‬ ‫در‬ ‫موجود‬ ‫های‬‫آدرس‬ ‫است‬ ‫کافی‬‫از‬ ‫س‬
‫نماییم‬ ‫پرش‬ ‫سیستمی‬ ‫تابع‬ ‫اصلی‬ ‫آدرس‬ ‫به‬ ‫سابقه‬ ‫ثبت‬]3[.
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
19/40
System Service Dispatch Table
‫معایب‬ ‫و‬ ‫مزایا‬:
•+‫در‬، ‫نوع‬ ‫توان‬‫می‬ ‫روش‬ ‫این‬‫فراخوانی‬ ‫سیستمی‬ ‫توابع‬ ‫ترتیب‬ ‫و‬ ‫تعداد‬‫داد‬ ‫تشخیص‬ ‫را‬ ‫شده‬
•-‫متأسفانه‬‫روش‬ ‫این‬‫تنها‬‫قادر‬‫است‬‫هساته‬ ‫ساطح‬ ‫سیستمی‬ ‫توابع‬‫خاانواده‬ ‫سیساتمی‬ ‫تواباع‬ ‫همانناد‬NT‫و‬ZW‫را‬‫رهگیاری‬
‫جدول‬ ‫به‬ ‫وابسته‬ ‫که‬ ‫کاربر‬ ‫سطح‬ ‫سیستمی‬ ‫توابع‬ ‫رهگیری‬ ‫به‬ ‫قادر‬ ‫و‬ ‫نماید‬SSDT‫هستند‬‫نیست‬]3[.
‫جدول‬ ‫از‬ ‫نمایی‬SSDT‫و‬‫داخل‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬‫آن‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
9-‫وصله‬‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬
‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬
‫خروجی‬ ‫آدرس‬ ‫جدول‬
‫دسترس‬ ‫قابل‬ ‫برنامه‬ ‫توسط‬ ‫که‬ ‫توابعی‬ ‫شامل‬
20/40
]1،5،6[
10-‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬
‫سازی‬ ‫قالب‬ ‫امکان‬API‫تزریق‬ ‫هنگام‬ ‫به‬DLL‫روش‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬DLL‫دارد‬ ‫وجود‬ ‫شده‬ ‫پروکسی‬.
DLL‫نام‬ ‫به‬ ‫ورودی‬ ‫نقطه‬ ‫یک‬ ‫حاوی‬ ‫شده‬ ‫پروکسی‬Function Forwarder‫است‬.
‫آن‬ ‫در‬ ‫دیگری‬ ‫تابع‬ ‫به‬ ‫را‬ ‫تابع‬ ‫یک‬ ‫فراخوانی‬ ‫که‬DLL‫کند‬ ‫می‬ ‫محول‬.
‫سازی‬ ‫قالب‬ ‫های‬ ‫روش‬ ‫این‬ ‫سازی‬ ‫پیاده‬ ‫عملی‬ ‫نمونه‬:
‫موارد‬ ‫سایر‬:
www.jbremer.org/x86-api-hooking-demystified/
‫مقدمه‬
‫روش‬‫های‬‫سازی‬ ‫قالب‬
‫کتابخانه‬Detours
5
3
2
1
‫مراجع‬ ‫و‬ ‫منابع‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop
3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn
4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬
5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE
6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬
7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬
9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬
10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬
1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
4‫پویا‬ ‫سازی‬ ‫قالب‬
2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
21/40
•Detours‫است‬ ‫سیستمی‬ ‫توابع‬ ‫فراخوانی‬ ‫مسیر‬ ‫کردن‬ ‫منحرف‬ ‫برای‬ ‫کتابخانه‬ ‫یک‬.
•‫های‬ ‫ماشین‬ ‫روی‬ ‫بر‬ ‫که‬ ‫است‬ ‫باینری‬ ‫فایلهای‬ ‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ARM،x86،x64،IA64‫کنند‬ ‫می‬ ‫کار‬.
•‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ ‫موارد‬ ‫اکثر‬ ‫در‬Win32‫مانند‬ ‫کاربردی‬ ‫برنامه‬ ‫در‬ ‫که‬ ‫است‬debugger‫شود‬ ‫می‬ ‫استفاده‬ ‫ها‬.
•‫شود‬‫می‬ ‫اضافه‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫پویا‬ ‫طور‬‫به‬ ‫توقف‬ ‫کد‬ ‫و‬ ‫کتابخانه‬ ‫این‬.
•‫شرطی‬ ‫غیر‬ ‫پرش‬ ‫شیوه‬ ‫به‬]2.7[.
•‫کند‬ ‫می‬ ‫ایجاد‬ ‫هدف‬ ‫تابع‬ ‫در‬ ‫را‬ ‫ها‬ ‫،وقفه‬ ‫پردازه‬ ‫در‬ ‫باینری‬ ‫بازنویسی‬ ‫طریق‬ ‫از‬.
•‫کتابخانه‬ ‫این‬ ‫بر‬ ‫عالوه‬Detours‫ورودی‬ ‫جدول‬ ‫ویرایش‬ ‫برای‬ ‫توابعی‬ ‫شامل‬DLL‫است‬ ‫باینری‬ ‫فایل‬ ‫هر‬.
•‫و‬ ‫کرد‬ ‫اضافه‬ ‫موجود‬ ‫باینری‬ ‫به‬ ‫را‬ ‫دلخواه‬ ‫داده‬ ‫سگمت‬ ‫نوع‬ ‫هر‬ ‫بتوان‬ ‫تا‬DLL‫کرد‬ ‫اضافه‬ ‫جدید‬ ‫پردازه‬ ‫یک‬ ‫در‬ ‫را‬.
]6[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫برنامه‬Simple‫نموناه‬ ‫ترین‬ ‫ساده‬Dll‫ای‬
‫کتابخانااه‬ ‫از‬ ‫آن‬ ‫در‬ ‫کااه‬ ‫اساات‬Detours
‫شود‬ ‫می‬ ‫لستفاده‬.
‫تغییر‬API‫کارد‬ ‫اضاافه‬ ‫و‬ ‫ویندوز‬‫ن‬
‫هایی‬ ‫قابلیت‬:‫تغییر‬‫تابع‬Sleep
22/40
]6[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫نیست‬ ‫موجود‬ ‫هدف‬ ‫برنامه‬ ‫متن‬ ‫که‬ ‫زمانی‬.
‫یک‬ ‫در‬ ‫باید‬ ‫توابع‬DLL‫بگیرند‬ ‫قرار‬.
DLL‫تابع‬ ‫فراخوانی‬ ‫با‬ ‫اجرا‬ ‫زمان‬ ‫در‬DetourCreateProcessWithDLLEx‫مای‬ ‫بارگاذاری‬ ‫جدیاد‬ ‫پاردازه‬ ‫یاک‬ ‫در‬
‫شود‬
‫فایل‬ ‫ورودی‬ ‫جدول‬ ‫تغییر‬ ‫با‬PE‫حافظه‬ ‫درون‬ ‫در‬ ‫هدف‬
‫اجرای‬ ‫باعث‬DLL‫شده‬ ‫تزریق‬‫اولین‬ ‫عنوان‬ ‫به‬DLL‫برنامه‬
23/40
]5[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫کتابخانه‬Detours‫آن‬ ‫کمک‬ ‫به‬ ‫توان‬ ‫می‬ ‫که‬ ‫است‬ ‫توابعی‬ ‫شامل‬
‫را‬ ‫دلخواه‬ ‫های‬ ‫سگمنت‬(Payload)‫کرد‬ ‫پیوست‬ ‫اجرایی‬ ‫های‬ ‫فایل‬ ‫به‬.
‫ورودی‬ ‫جدول‬ ‫یا‬DLL‫کرد‬ ‫ویرایش‬ ‫را‬.
‫است‬ ‫پذیر‬ ‫برگشت‬ ‫کامال‬ ‫توابع‬ ‫این‬ ‫تغییرات‬.
24/40
]6[
www.mmAhmadian.ir
‫مقدمه‬
‫روش‬‫های‬‫سازی‬ ‫قالب‬
‫کتابخانه‬Detours
5
3
2
1
‫مراجع‬ ‫و‬ ‫منابع‬
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop
3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn
4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬
5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE
6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬
7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬
9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬
10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬
1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
4‫پویا‬ ‫سازی‬ ‫قالب‬
2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬
3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
25/40
(1‫کد‬ ‫سازی‬ ‫قالب‬
(2‫داده‬ ‫سازی‬ ‫قالب‬
‫قالب‬ ‫جایگاه‬ ‫انواع‬
(1Persistent Control Data
(2Transient Control Data
‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫های‬ ‫روش‬ ‫انواع‬Persistent Control Data
Transient Control Data
‫ضعف‬!‫؟‬
[4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes
within non-control data." Proceedings of the 23rd USENIX conference on
Security Symposium. USENIX Association, 2014.
VOGL, S., PFOH, J., KITTEL, T., ANDECKERT, C. Persistent data-only
malware: Function Hooks without Code. In Symposium on Network and
Distributed System Security (NDSS),2014.
‫پویا‬ ‫سازی‬ ‫قالب‬
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
96%‫دارند‬ ‫سازی‬ ‫قالب‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬!
‫کنند‬ ‫می‬ ‫استفاده‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬ ‫امروزه‬ ‫پیشرفته‬ ‫بدافزارهای‬ ‫اکثر‬.
‫دادن‬ ‫قرار‬ ‫حمله‬ ‫جای‬ ‫به‬ ‫میتوانند‬ ‫بدافزارها‬Persistent Control Data‫روی‬ ‫بار‬ ‫را‬ ‫خاود‬ ‫هدف‬Transient Control
Data‫بزارند‬:
‫د‬ ‫مثال‬‫ر‬return-oriented rootkits
26/40
‫مهاجم‬ ‫مدل‬ ‫فرضیات‬:
‫مهاجم‬ ‫هدف‬:‫همیشگی‬ ‫صورت‬ ‫به‬ ‫هسته‬ ‫سطح‬ ‫در‬ ‫بدافزار‬ ‫نصب‬
‫دارد‬ ‫را‬ ‫هسته‬ ‫به‬ ‫مرتبط‬ ‫حافظه‬ ‫دستکار‬ ‫توانایی‬ ‫شودمهاجم‬ ‫می‬ ‫فرض‬ ‫بنابراین‬(.‫داخل‬ ‫مهاجم‬ ‫نوعی‬ ‫به‬‫ی‬)
‫هسته‬ ‫سطح‬ ‫در‬ ‫ماژول‬ ‫بازگذاری‬ ‫امکان‬
‫قربانی‬ ‫سیستم‬ ‫مدل‬ ‫فرضیات‬:
‫امنیتی‬ ‫های‬ ‫مکانیزم‬ ‫دارای‬ASLR + stack Canary+ W^X
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
27/40
‫امنیتی‬ ‫های‬ ‫مکانیزم‬ASLR + stack Canary + W^X‫محافظات‬ ‫خاارجی‬ ‫مهااجم‬ ‫برابار‬ ‫در‬ ‫را‬ ‫قرباانی‬ ‫سیساتم‬ ‫تنها‬
‫دارد‬ ‫کنترل‬ ‫برنامه‬ ‫بر‬ ‫که‬ ‫مهاجمی‬ ‫توسط‬ ‫نه‬ ‫کند‬ ‫می‬!
‫مهاجم‬ ‫روش‬ ‫این‬ ‫در‬‫تواند‬ ‫می‬‫ندارد‬ ‫آنها‬ ‫روی‬ ‫بر‬ ‫تصرفی‬ ‫هیچ‬ ‫کاربر‬ ‫که‬ ‫کند‬ ‫دستکاری‬ ‫را‬ ‫توابعی‬!
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
28/40
‫یییی‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
30/40
‫گرفت‬ ‫بهره‬ ‫توان‬ ‫می‬ ‫پویا‬ ‫سازی‬ ‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫برای‬ ‫پذیری‬ ‫آسیب‬ ‫نوع‬ ‫هر‬ ‫از‬.
‫روی‬ ‫تمرکز‬ ‫سادگی‬ ‫برای‬ ‫مقاله‬ ‫این‬ ‫در‬n-byte writes
‫فرض‬:‫توانایی‬ ‫اینجا‬ ‫مهاجم‬8-byte writes
‫معماری‬ ‫در‬ ‫العمل‬ ‫دستور‬ ‫نمونه‬x86‫آسیب‬ ‫پتاسیل‬ ‫که‬‫پذیری‬8-byte writes‫دارد‬ ‫را‬
Mov [rax] , rbx
‫هسته‬ ‫در‬3.8‫لینوکس‬:
103‫دستور‬ ‫هزار‬mov‫باال‬ ‫مشابه‬(5%‫ها‬ ‫دستورالعمل‬ ‫کل‬!1.976.441)
‫گرفتن‬ ‫نظر‬ ‫در‬ ‫عدم‬n=1,2,4‫سایر‬ ‫و‬n‫ها‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
31/40
(1‫پویا‬ ‫کنترلی‬ ‫سازی‬ ‫قالب‬
(2‫پویا‬ ‫ای‬ ‫داده‬ ‫سازی‬ ‫قالب‬
‫انواع‬‫پویا‬ ‫سازی‬ ‫قالب‬
‫پویا‬ ‫کنترلی‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫ای‬ ‫نمونه‬:‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫رهگیری‬
‫رود‬ ‫بکار‬ ‫خاص‬ ‫پردازه‬ ‫یک‬ ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫تمام‬ ‫رهگیری‬ ‫برای‬ ‫تواند‬ ‫می‬ ‫پویا‬ ‫قالب‬ ‫یک‬.
‫روی‬ ‫قالب‬ ‫باید‬system call handler‫سیساتمی‬ ‫فراخاوان‬ ‫مکاانیزم‬ ‫از‬ ‫مساتقل‬ ‫کاه‬ ‫گیارد‬ ‫قارار‬
‫است‬(.‫هسته‬ ‫سطح‬ ‫بدافزارهای‬)
system call handler‫های‬ ‫پرچم‬ ‫تنظیم‬ ‫با‬ ‫کردن‬ ‫دیباگ‬ ‫قابل‬TID_SYSCALL_AUDIT
__audit_syscall_entry
invocation of system call
__audit_syscall_exit audit_free_names
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
32/40
‫بتوان‬ ‫اگر‬name_list‫به‬ ‫ارسالی‬ ‫های‬ ‫ورودی‬ ‫توان‬ ‫می‬ ‫کرد‬ ‫کنترل‬ ‫را‬list-del‫کرد‬ ‫کنترل‬ ‫را‬.
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
33/40
‫وابستگی‬ ‫معیار‬(Binding)
‫انداز‬ ‫راه‬ ‫بخش‬ ‫و‬ ‫انداز‬ ‫راه‬ ‫مسیرهای‬ ‫تعداد‬ ‫میان‬ ‫رابطه‬
‫تر‬ ‫سخت‬ ‫مهاجم‬ ‫کار‬ ‫کمتر‬ ‫وابستگی‬ ‫هرچه‬(loosely bound)
‫پوشش‬ ‫معیار‬(Coverage:)
‫کامل‬ ‫پوشش‬(Full)
‫ناقص‬ ‫پوشش‬(Partial)
‫برسد‬ ‫کامل‬ ‫پوشش‬ ‫به‬ ‫تا‬ ‫شود‬ ‫ادغام‬ ‫هوک‬ ‫های‬ ‫روش‬ ‫سایر‬ ‫با‬ ‫باید‬.
(1‫انداز‬ ‫راه‬ ‫بخش‬(Trigger)
•‫در‬ ‫مثال‬8-byte write‫دستور‬mov
•‫انداز‬ ‫راه‬ ‫مسیر‬(trigger path)
(2payload
‫اجزا‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
34/40
‫سازی‬ ‫خودکار‬ ‫مراحل‬
(1‫بر‬ ‫زمان‬
(2‫بسیار‬ ‫خطای‬ ‫معرض‬ ‫در‬
‫دستی‬ ‫استخراج‬ ‫معایب‬
(1‫ایس‬ ‫صورت‬ ‫به‬ ‫برنامه‬ ‫برش‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬‫تا‬
(2‫نمادین‬ ‫اجرای‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
35/40
‫برش‬(Slice:)
‫گ‬ ‫می‬ ‫تاثیر‬ ‫عالقه‬ ‫مورد‬ ‫نقطه‬ ‫روی‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫بالقوه‬ ‫طور‬ ‫به‬ ‫که‬ ‫برنامه‬ ‫از‬ ‫قسمتی‬‫ذارد‬.
‫زوج‬ ‫یک‬ ‫صورت‬ ‫به‬(N,V)
‫م‬ ‫در‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫مستقیم‬ ‫غیر‬ ‫یا‬ ‫مستقیم‬ ‫تاثیر‬ ‫که‬ ‫برنامه‬ ‫یک‬ ‫از‬ ‫هایی‬ ‫قسمت‬‫بارش‬ ‫عیاار‬C
‫معیار‬ ‫با‬ ‫رابطه‬ ‫در‬ ‫برنامه‬ ‫برش‬ ،‫دارند‬C‫دهد‬ ‫می‬ ‫تشکیل‬ ‫را‬.
‫برنامه‬ ‫برش‬
‫شوند‬ ‫پیدا‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬ ‫باید‬.
‫دارند‬ ‫وجود‬ ‫زیادی‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬!
‫هستند‬ ‫مفید‬ ‫آنها‬ ‫از‬ ‫برخی‬!
‫ایستا‬ ‫برش‬:
‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫بدون‬ ‫ایستا‬ ‫صورت‬ ‫به‬
‫برش‬‫پویا‬:
‫صورت‬ ‫به‬‫با‬ ‫پویا‬‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
36/40
(1‫یافتن‬mov‫اساس‬ ‫بر‬ ‫ها‬CFG‫از‬ ‫شده‬ ‫استخراج‬IDA pro
(2Backward‫دهد‬ ‫می‬ ‫تغییر‬ ‫را‬ ‫منبع‬ ‫که‬ ‫دستورالعملی‬ ‫اولین‬ ‫یافتن‬ ‫و‬ ‫کردن‬
(3‫سراسری‬ ‫متغیر‬ ‫به‬ ‫وابسته‬ ‫مقصد‬ ‫و‬ ‫مبدا‬ ‫اگر‬ ‫مسیر‬ ‫استخراج‬
‫مقاله‬ ‫در‬ ‫برش‬ ‫نحوه‬]4[
‫برش‬ ‫از‬ ‫ای‬ ‫نمونه‬‫ایستا‬[11]
‫ابزار‬Slicer
‫با‬BFS
]11[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
37/40
‫نمادین‬ ‫اجرای‬
‫جلو‬ ‫به‬ ‫رو‬ ‫نمادین‬ ‫اجرای‬ ‫از‬ ‫استفاده‬
‫پویا‬ ‫سازی‬ ‫قالب‬ ‫برای‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬ ‫و‬ ‫ها‬ ‫مسیر‬ ‫بررسی‬ ‫برای‬
‫پایه‬ ‫بلوک‬ ‫هر‬ ‫انتقال‬ ‫با‬‫به‬ ‫استخراجی‬ ‫مسیرهای‬Pyvex(‫قالب‬ ‫در‬VEX IR)
‫به‬ ‫تبدیل‬Z3 expression
‫شرطی‬ ‫انشعابات‬ ‫پذیری‬ ‫ارضا‬ ‫بررسی‬
‫کنترلی‬ ‫رجیسترهای‬ ‫مورد‬ ‫در‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
38/40
]4[
‫ها‬ ‫ویژگی‬
‫های‬ ‫تکنیک‬ ‫زدن‬ ‫دور‬HookSafe‫و‬SBCFI
www.mmAhmadian.ir
‫خط‬8:‫شود‬ ‫می‬ ‫تعریف‬ ‫پشته‬ ‫در‬ ‫محلی‬ ‫ساختار‬ ‫یک‬.
‫است‬ ‫دیگر‬ ‫ساختار‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یک‬ ‫دارای‬ ‫ساختار‬ ‫این‬(‫خط‬2)
‫خط‬ ‫در‬ ‫است‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫که‬ ‫ساختار‬ ‫این‬10‫شود‬ ‫می‬ ‫فراخوانی‬.
‫کند‬ ‫ایجاد‬ ‫پویا‬ ‫ساختار‬ ‫به‬ ‫گره‬ ‫اشاره‬ ‫در‬ ‫تغییر‬ ‫پویا‬ ‫هوک‬ ‫کمک‬ ‫با‬ ‫تواند‬ ‫می‬ ‫مهاجم‬(‫خط‬ ‫در‬2)
‫بگیرد‬ ‫دست‬ ‫به‬ ‫را‬ ‫ساختار‬ ‫کنترل‬ ‫ده‬ ‫خط‬ ‫در‬ ‫سپس‬
‫جای‬ ‫به‬‫گرفتن‬ ‫هدف‬Ret address‫مستقیم‬ ‫صورت‬ ‫به‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یا‬‫پشات‬ ‫در‬ ‫محلای‬ ‫گار‬ ‫اشااره‬ ‫مهاجم‬ ،‫را‬ ‫ه‬
‫دهد‬ ‫می‬ ‫قرار‬ ‫هدف‬.
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
39/40
‫در‬‫برش‬‫علت‬ ‫به‬‫حافظه‬ ‫مدل‬ ‫وجود‬ ‫عدم‬
‫های‬ ‫ثبات‬ ‫بازگشتی‬ ‫مقادیر‬ ‫مدل‬ ‫این‬ ‫در‬ ‫توان‬ ‫نمی‬Subfunction‫ذخیره‬ ‫را‬‫کرد‬.
‫از‬ ‫نظر‬ ‫صرف‬79.853‫مسیر‬
‫نمادین‬ ‫اجرای‬‫های‬ ‫العمل‬ ‫دستور‬ ‫مجموعه‬ ‫تنها‬x86
‫سطح‬ ‫های‬ ‫دستورالعمل‬ ‫از‬ ‫برخی‬ring-0‫کند‬ ‫نمی‬ ‫حمایت‬ ‫را‬.
‫نظر‬ ‫صرف‬‫از‬5.857‫برش‬
‫نیستند‬ ‫پذیر‬ ‫آسیب‬ ‫پویا‬ ‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫برای‬ ‫توابع‬ ‫همه‬.
‫ندارند‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫توابع‬ ‫همه‬.
‫که‬ ‫دارد‬ ‫حافظه‬ ‫از‬ ‫بخشی‬ ‫به‬ ‫نیاز‬ ‫پویا‬ ‫هوک‬‫اجرا‬ ‫قابل‬‫باشد‬.
‫های‬ ‫ویژگی‬ ‫بررسی‬ ‫عدم‬‫پیوستگی‬ ‫و‬ ‫پوشش‬
‫با‬ ‫تشخیص‬CFI(‫البته‬Kernel-level CFI)
‫با‬ ‫ادغام‬ ‫و‬ ‫مقصد‬ ‫چند‬ ‫با‬ ‫های‬ ‫العمل‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫در‬ ‫اما‬ret-to-libc‫سخت‬ ‫تشخیص‬!
‫در‬CFI‫با‬Lazy control flow verfication‫است‬ ‫شدنی‬ ‫هوک‬ ‫اما‬ ‫شود‬ ‫می‬ ‫سخت‬ ‫پویا‬ ‫هوک‬ ‫با‬ ‫مهاجم‬ ‫کار‬
]4[
www.mmAhmadian.ir
‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
[1] Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael
Sikorski and Andrew Honig -2012.(chapter 11)
[2] w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling Behavior from malicious binary
Executable ,”in computer and electrical Engineering , ICCEE 2008 .International conference on
,pp.388-392, 2008.
[3] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida
Institute of Technology,2004.
[4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes within non-control data."
Proceedings of the 23rd USENIX conference on Security Symposium. USENIX Association, 2014.
[5] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection
and api hooking." Software: Practice and Experience 40.7 (2010): 567-584.
]6[‫مجموعه‬‫گزارشات‬‫آپا‬‫دانشگاه‬‫فردوسی‬‫مشهد‬(‫سوسن‬‫نادری،مریم‬‫نژاد‬‫کمالی،شهب‬‫الدین‬‫نمازی‬‫خواه‬)
[7]‫کاظم‬،‫زاده‬‫میثم؛‬‫سیدمجتبی‬‫حسینی؛‬‫حسین‬‫شیرازی‬‫و‬‫محمدابراهیم‬،‫زارع‬‫تشخیص‬‫هوشمند‬‫رفتارهای‬‫مخرب‬‫بدافزارها‬‫مبتنی‬‫بر‬‫رف‬‫تار‬‫پویای‬،‫آنها‬
‫ششمین‬‫کنفرانس‬‫ملی‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬،‫تهران‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬‫دانشکده‬‫برق‬‫و‬‫کامپیوتر‬‫دانشگاه‬‫شهید‬
،‫بهشتی‬1391‫ظ‬
[8]Manuel Egele, Theodoor Scholte, Engin Kirda, and Christopher Kruegel. A survey on automated
dynamic malware-analysis techniques and tools. ACM Computing Surveys(CSUR), 44(2):6, 2012.
[9]Kruegel, C., Kirda, E., Mutz, D., Robertson, W., Vigna, G.: Polymorphic worm detection using
structural information of executables. In: International Symposium on Recent Advances in Intrusion
Detection (RAID) (2005).
[10] Toward Automated Dynamic Malware Analysis Using CWSandbox.CARSTEN
WILLEMS, THORSTEN HOLZ,FELIX FREILING 2007, IEEE SECURITY & PRIVACY .
[11]J. Krinke. Advanced Slicing of Sequential and Concurrent Programs. Issues and Solutions.
Ph.D thesis, University of Passau. April 2003.
40/40
www.mmAhmadian.ir
‫شما‬ ‫توجه‬ ‫حسن‬ ‫از‬ ‫باتشکر‬...
www.mmAhmadian.ir
www.mmAhmadian.ir

Mais conteúdo relacionado

Mais procurados

ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتMahdi Sayyad
 
امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...
 امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas... امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...
امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...M Mehdi Ahmadian
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذSaeidGhasemshirazi
 
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...M Mehdi Ahmadian
 
Penetration test training camp
Penetration test training campPenetration test training camp
Penetration test training camphamid.k
 
Ips سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذIps سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذkamrankamran1234
 
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...M Mehdi Ahmadian
 
Network security
Network securityNetwork security
Network securityM Nemati
 
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس Shwana M
 
گاهنامه چهارمحال و_بختیاری_دیماه
گاهنامه چهارمحال و_بختیاری_دیماهگاهنامه چهارمحال و_بختیاری_دیماه
گاهنامه چهارمحال و_بختیاری_دیماهtarasad
 
Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Muhibullah Aman
 

Mais procurados (13)

ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
 
امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...
 امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas... امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...
امنیت در سیستم های کنترل صنعتیCyber–Physical Systems Security Challenges(Cas...
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
 
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...
امنیت سیستم های کنترل صنعتی : بررسی اجمالی مستند «آفتاب نهان» از زاویه نشت اط...
 
Penetration test training camp
Penetration test training campPenetration test training camp
Penetration test training camp
 
Ips سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذIps سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذ
 
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
 
Network security
Network securityNetwork security
Network security
 
CEH
CEHCEH
CEH
 
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
 
گاهنامه چهارمحال و_بختیاری_دیماه
گاهنامه چهارمحال و_بختیاری_دیماهگاهنامه چهارمحال و_بختیاری_دیماه
گاهنامه چهارمحال و_بختیاری_دیماه
 
Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت
 
SIEM and SOC
SIEM and SOCSIEM and SOC
SIEM and SOC
 

Semelhante a قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis

The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)Ali Bahrani
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdfhbsd1374
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationMorteza Zakeri
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدعباس بني اسدي مقدم
 
Applying event driven architecture to mobile computing
Applying event driven architecture to mobile computingApplying event driven architecture to mobile computing
Applying event driven architecture to mobile computingMehdi Rizvandi
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
Defeating software analysis using logical anti-debugging technique
Defeating software analysis using logical anti-debugging technique Defeating software analysis using logical anti-debugging technique
Defeating software analysis using logical anti-debugging technique Nima Nikjoo
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریtarasad
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsMorteza Javan
 
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانAli Yazdani
 
Security tools - ابزارهای امنیتی
Security tools - ابزارهای امنیتیSecurity tools - ابزارهای امنیتی
Security tools - ابزارهای امنیتیMehdi Esmaeilpour
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىmarketingfarkhad
 
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت   تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت abbas pirnazaraine
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approachSadegh Saberi
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...amri k
 
Microservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسMicroservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسAmir Mahjoorian
 
امنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبامنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبShiraz LUG
 

Semelhante a قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis (20)

The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهد
 
Applying event driven architecture to mobile computing
Applying event driven architecture to mobile computingApplying event driven architecture to mobile computing
Applying event driven architecture to mobile computing
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
Defeating software analysis using logical anti-debugging technique
Defeating software analysis using logical anti-debugging technique Defeating software analysis using logical anti-debugging technique
Defeating software analysis using logical anti-debugging technique
 
ارائهٔ DLP
ارائهٔ DLPارائهٔ DLP
ارائهٔ DLP
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
 
Proxmox
ProxmoxProxmox
Proxmox
 
Security tools - ابزارهای امنیتی
Security tools - ابزارهای امنیتیSecurity tools - ابزارهای امنیتی
Security tools - ابزارهای امنیتی
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
 
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت   تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
 
Ossec و Wazuh
Ossec   و WazuhOssec   و Wazuh
Ossec و Wazuh
 
Microservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویسMicroservice architecture - معماری مایکروسرویس
Microservice architecture - معماری مایکروسرویس
 
امنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبامنیت در نرم افزارهای وب
امنیت در نرم افزارهای وب
 

Mais de M Mehdi Ahmadian

Industrial Control System Security Taxonomic Framework with Application to a ...
Industrial Control System Security Taxonomic Framework with Application to a ...Industrial Control System Security Taxonomic Framework with Application to a ...
Industrial Control System Security Taxonomic Framework with Application to a ...M Mehdi Ahmadian
 
امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...
 امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر... امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...
امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...M Mehdi Ahmadian
 
امنیت سایبری سیستم‌ های کنترل صنعتی
  امنیت سایبری سیستم‌ های کنترل صنعتی   امنیت سایبری سیستم‌ های کنترل صنعتی
امنیت سایبری سیستم‌ های کنترل صنعتی M Mehdi Ahmadian
 
Malware futureology ahmadian
Malware futureology ahmadianMalware futureology ahmadian
Malware futureology ahmadianM Mehdi Ahmadian
 
حفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبناحفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبناM Mehdi Ahmadian
 
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!M Mehdi Ahmadian
 
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme... هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...M Mehdi Ahmadian
 

Mais de M Mehdi Ahmadian (7)

Industrial Control System Security Taxonomic Framework with Application to a ...
Industrial Control System Security Taxonomic Framework with Application to a ...Industrial Control System Security Taxonomic Framework with Application to a ...
Industrial Control System Security Taxonomic Framework with Application to a ...
 
امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...
 امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر... امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...
امنیت سیستم های کنترل صنعتی : طبقه بندی رخدادهای امنیت سایبری سیستم های کنتر...
 
امنیت سایبری سیستم‌ های کنترل صنعتی
  امنیت سایبری سیستم‌ های کنترل صنعتی   امنیت سایبری سیستم‌ های کنترل صنعتی
امنیت سایبری سیستم‌ های کنترل صنعتی
 
Malware futureology ahmadian
Malware futureology ahmadianMalware futureology ahmadian
Malware futureology ahmadian
 
حفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبناحفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبنا
 
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!
بررسی امنیتی بیت کوین Is Bitcoin a secure online digital currency?!
 
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme... هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 

قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis

  • 1. ‫محمد‬‫مهدی‬‫احمدیان‬ ‫اطالعات‬ ‫امنیت‬ ‫ارشد‬ ‫کارشناسی‬ ‫دانشجوی‬ ‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬ ‫تهران‬ ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫آذر‬93 ‫سازی‬ ‫قالب‬(Hooking)‫در‬‫تحلیل‬‫و‬‫بدافزار‬ ‫طراحی‬ www.mmAhmadian.ir
  • 2. [1] Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski and Andrew Honig -2012.(chapter 11) [2] w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling Behavior from malicious binary Executable ,”in computer and electrical Engineering , ICCEE 2008 .International conference on ,pp.388- 392, 2008. [3] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology,2004. [4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes within non-control data." Proceedings of the 23rd USENIX conference on Security Symposium. USENIX Association, 2014. [5] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and api hooking." Software: Practice and Experience 40.7 (2010): 567-584. ]6[‫مجموعه‬‫گزارشات‬‫آپا‬‫دانشگاه‬‫فردوسی‬‫مشهد‬(‫سوسن‬‫نادری،مریم‬‫نژاد‬‫کمالی،شهب‬‫الدین‬‫نمازی‬‫خواه‬) [10] Toward Automated Dynamic Malware Analysis Using CWSandbox.CARSTEN WILLEMS, THORSTEN HOLZ,FELIX FREILING, IEEE SECURITY & PRIVACY ,2007 . ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬- 1/40 www.mmAhmadian.ir
  • 3. 8 ‫مقدمه‬ ‫روش‬‫های‬‫سازی‬ ‫قالب‬ ‫کتابخانه‬Detours 5 3 2 1 ‫مراجع‬ ‫و‬ ‫منابع‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop 3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn 4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬ 5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE 6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬ 7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ ‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ 9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬ 10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬ 1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 4‫پویا‬ ‫سازی‬ ‫قالب‬ 2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
  • 4. ‫مقدمه‬: ‫بدافزار‬ ‫یک‬ ‫توسط‬ ‫شده‬ ‫وارد‬ ‫توابع‬ ‫لیست‬ ‫استخراج‬ ‫اهمیت‬ ‫ض‬‫ایستا‬ ‫تحلیل‬ ‫بر‬ ‫مبتنی‬ ‫های‬ ‫روش‬ ‫عف‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫برنامه‬ ‫توسعه‬ ‫جهت‬ ‫برنامه‬ ‫منبع‬ ‫کد‬ ‫داشتن‬ ‫اختیار‬ ‫در‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫برنامه‬ ‫خدمات‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫ها‬ ‫افزونه‬ ‫یا‬ ‫ها‬ ‫رابط‬ ‫کردن‬ ‫اضافه‬ ‫پایین‬ ‫سطح‬ ‫نویسی‬ ‫برنامه‬ ‫از‬ ‫استفاده‬(‫ماشین‬ ‫کد‬ ‫تغییر‬) ‫امنیتی‬ ‫اقدامات‬ ‫زدن‬ ‫دور‬ ،‫ناچیز‬ ‫تغییرات‬ ‫انجام‬ ،‫کوچک‬ ‫اشکاالت‬ ‫رفع‬ ‫برای‬ ‫تزریق‬DLL: ‫در‬ ‫کد‬ ‫بارگذاری‬DLL‫اجرا‬ ‫حال‬ ‫در‬ ‫ی‬ ‫برنامه‬ ‫درون‬ ‫دلخواه‬ ‫مثال‬:‫ایجاد‬DLL‫شده‬ ‫پروکسی‬ ‫سازی‬ ‫قالب‬API(‫جعل‬API‫گذاری‬ ‫تله‬ ،) ‫تواب‬ ‫های‬ ‫فراخوان‬ ‫بر‬ ‫نظارت‬ ‫های‬ ‫روش‬ ‫ترین‬ ‫رایج‬ ‫از‬ ‫یکی‬‫ع‬ 3/40 ]1[ www.mmAhmadian.ir
  • 5. •‫من‬ ‫کد‬ ‫مجدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬ ‫اجرایی‬ ‫جریان‬ ‫کنترل‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫است‬ ‫آن‬ ‫بع‬. hooking •‫آید‬‫می‬ ‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬ ‫مجدد‬ ‫هدایت‬ ‫و‬ ‫تابع‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬ ‫توسط‬. •‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫مای‬ ‫تاابع‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫اجراشا‬ ‫تواناد‬‫نتیجاه‬ ‫و‬ ‫ده‬ ‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫ش‬‫ود‬]2،7[. ‫کلی‬ ‫ایده‬: •‫یاا‬ ‫و‬ ‫کااربردی‬ ‫عامل،برناماه‬ ‫سیستم‬ ‫یک‬ ‫رفتار‬ ‫تکمیل‬ ‫یا‬ ‫تغییر‬ ‫برای‬ ‫استفاده‬ ‫مورد‬ ‫سازوکارهای‬ ‫از‬ ‫وسیعی‬ ‫طیف‬ ‫سازی‬ ‫قالب‬‫نارم‬ ‫اجازان‬ ‫ساایر‬ ‫دهد‬ ‫می‬ ‫پوشش‬ ‫را‬ ‫ها‬ ‫افزار‬(.‫رویدادها‬ ‫یا‬ ‫و‬ ‫ها‬ ‫توابع،پیام‬ ‫فراخوانی‬ ‫جلوگیری‬ ‫طریق‬ ‫از‬) •‫ب‬‫دارد‬ ‫عهده‬ ‫بر‬ ‫را‬ ‫وظایف‬ ‫این‬ ‫مدیریت‬ ‫که‬ ‫کدی‬ ‫ه‬«‫قالب‬»‫شود‬ ‫می‬ ‫گفته‬. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 4/40 ]6[
  • 6. ‫مفاهیم‬‫اولیه‬]8[: ‫سیستمی‬ ‫فراخوان‬: ‫توابا‬ ‫از‬ ‫یکای‬ ،‫باشاد‬ ‫داشته‬ ‫را‬ ‫افزار‬ ‫سخت‬ ‫و‬ ‫سیستم‬ ‫منابع‬ ‫به‬ ‫دسترسی‬ ‫به‬ ‫نیاز‬ ‫کاربر‬ ‫سطح‬ ‫افزار‬‫نرم‬ ‫یک‬ ‫هرگاه‬‫سیساتم‬ ‫درون‬ ‫ع‬ ‫سیستمی‬ ‫فراخوان‬ ‫عمل‬ ‫این‬ ‫به‬ ‫که‬ ،‫کند‬‫می‬ ‫فراخوانی‬ ‫را‬ ‫عامل‬‫گویند‬‫می‬. ‫یک‬ ‫خروجی‬File-handle‫است‬. ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫انواع‬: ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 5/40 www.mmAhmadian.ir
  • 7. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 6/40 API: ‫شود‬ ‫می‬ ‫ارائه‬ ‫کاربر‬ ‫سطح‬ ‫های‬ ‫برنامه‬ ‫برای‬ ‫عامل‬ ‫سیستم‬ ‫توسط‬ ‫که‬ ‫است‬ ‫هایی‬ ‫روتین‬ ‫مجموعه‬(‫به‬ ‫دسترسی‬ ‫برای‬‫منابع‬). ‫های‬ ‫کتابخانه‬ ‫برخی‬ ‫در‬DLL‫مانند‬kernel32.dll‫و‬user32.dll‫و‬... API‫بومی‬ ‫های‬‫ویندوز‬: ‫و‬ ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫رابط‬ ‫مابین‬API‫میگیرند‬ ‫قرار‬ ‫ویندوز‬ ‫های‬. ‫شوند‬ ‫می‬ ‫استفاده‬ ‫عامل‬ ‫سیستم‬ ‫خود‬ ‫توسط‬ ‫اکثرا‬. ‫توسط‬ ‫بومی‬ ‫توابع‬ ‫فراخوانی‬ ‫اکثر‬ntoskrnl.exe‫شود‬ ‫می‬ ‫انجام‬. ‫از‬ ‫توانند‬ ‫می‬ ‫تابع‬ ‫این‬ ‫فراخوانی‬ ‫برای‬ ‫کاربران‬ntdll.dll‫کنند‬ ‫استفاده‬. ‫پیشوند‬ ‫با‬ ‫توابع‬ ‫تمامی‬Nt‫شوند‬ ‫می‬ ‫شروع‬. ]8[ application programming interface
  • 9. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 8/40 ‫فراخوانی‬ ‫بر‬ ‫بتوان‬ ‫اگر‬API‫کرد‬ ‫پویا‬ ‫تحلیل‬ ‫را‬ ‫ها‬ ‫آن‬ ‫توان‬ ‫می‬ ‫داشت‬ ‫نظارت‬ ‫آن‬ ‫پارامترهای‬ ‫و‬ ‫مربوطه‬ ‫های‬. ‫است‬ ‫سازی‬ ‫قالب‬ ‫راهها‬ ‫این‬ ‫از‬ ‫یکی‬. ‫ترین‬‫ساده‬‫کاربر‬ ‫سطح‬ ‫فضای‬ ‫در‬ ‫پویا‬ ‫رهگیری‬ ‫برای‬ ‫روش‬ ‫پرکاربردترین‬ ‫و‬‫است‬]9[. ‫سازی‬ ‫قالب‬ ‫انواع‬: ‫محلی‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫امنیتی،ابزارهای‬ ‫های‬ ‫ضدبدافزارها،برنامه‬ ‫توسط‬ ‫استفاده‬... ‫سراسری‬ ‫ارائه‬ ‫نخست‬ ‫بخش‬ ‫دو‬ ‫در‬ ‫ما‬ ‫هدف‬: ‫بدافزار‬ ‫رفتار‬ ‫تحلیل‬ ‫برای‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬ ‫توجه‬:‫سازی‬ ‫قالب‬ ‫تابع‬ ‫تشخیص‬ ‫در‬ ‫سعی‬ ‫بدافرارها‬ www.mmAhmadian.ir
  • 10. ‫مقدمه‬ ‫روش‬‫های‬‫سازی‬ ‫قالب‬ ‫کتابخانه‬Detours 5 3 2 1 ‫مراجع‬ ‫و‬ ‫منابع‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop 3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn 4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬ 5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE 6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬ 7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ 9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬ 10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬ 1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 4‫پویا‬ ‫سازی‬ ‫قالب‬ 2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
  • 11. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬ ‫فرض‬ ‫با‬ ‫بعد‬ ‫به‬ ‫اینجا‬ ‫از‬‫معماری‬x86 ‫غیرشرطی‬ ‫پرش‬ ‫دستور‬ ‫طول‬(‫همیشه‬ ‫تقریبا‬:)5‫بایت‬ ‫بایت‬ ‫یک‬:‫کدعملگر‬ ‫بایت‬ ‫چهار‬:‫نسبی‬ ‫آفست‬32‫بیتی‬ 9/40 ]1،6[ www.mmAhmadian.ir
  • 12. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 10/40 ‫تشخیص؟‬ ‫نحوه‬ ]1،6[ ‫بیشتر‬ ‫مطالعه‬ ‫برای‬: jbremer.org/x86-api-hooking-demystified/ www.mmAhmadian.ir
  • 13. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫یک‬ ‫کردن‬ ‫اضافه‬NOP‫ابتدا‬ ‫به‬ 11/40 ‫تشخیص‬ ‫نحوه‬: ]5،10[ www.mmAhmadian.ir
  • 14. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫دستور‬Push:‫مقدار‬ ‫یک‬ ‫دادن‬ ‫قرار‬32‫پشته‬ ‫روی‬ ‫بیتی‬ ‫دستور‬ ‫طول‬:5‫بایت‬ ‫دستور‬:Retn‫برداشتن‬‫مقدار‬ ‫یک‬32‫بیتای‬‫پشاته‬ ‫روی‬ ‫از‬ ‫در‬ ‫دادن‬ ‫قرار‬ ‫و‬IP ‫دستور‬ ‫طول‬:1‫بایت‬ 12/40 ]5[ www.mmAhmadian.ir
  • 15. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫روش‬ ‫مشابه‬Push/retn ‫مقاد‬ ‫ایان‬ ‫سپس‬ ‫و‬ ‫گیرد‬ ‫می‬ ‫قرار‬ ‫پشته‬ ‫روی‬ ‫ساختگی‬ ‫مقدار‬‫باا‬ ‫ار‬ ‫شود‬ ‫می‬ ‫برگردانده‬ ‫سپس‬ ‫و‬ ‫شده‬ ‫بازنویسی‬ ‫واقعی‬ ‫آدرس‬. ‫آدرس‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫پرش‬ ‫آدرس‬ ‫سازی‬ ‫ذخیره‬ ‫جای‬ ‫به‬32‫بیتی‬ ‫شناور‬ ‫نقطه‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫آدرس‬ ‫این‬64‫شود‬ ‫می‬ ‫ذخیره‬ ‫بیتی‬. ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫پرش‬ ‫آدرس‬ ‫سپس‬Fld‫شده‬ ‫می‬ ‫خوانده‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬fistp‫مقادار‬ ‫یاک‬ ‫به‬32‫مای‬ ‫ترجماه‬ ‫بیتای‬ ‫شود‬. ‫از‬ ‫استفاده‬11‫بایت‬ 13/40 Floating Point ]1،6[
  • 16. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫شناور‬ ‫نقاط‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬ ‫دستورات‬ ‫مجموعه‬ ‫از‬ ‫شناور‬ ‫نقطه‬ ‫از‬ ‫استفاده‬ ‫جای‬ ‫به‬MMX‫یا‬SSE‫کند‬ ‫می‬ ‫استفاده‬. ‫دستور‬ ‫نظیر‬movd:‫مثل‬fistp‫کند‬ ‫ذخیره‬ ‫پشته‬ ‫در‬ ‫و‬ ‫خوانده‬ ‫حافظه‬ ‫از‬ ‫مقدار‬ ‫یک‬ ‫دهد‬ ‫می‬ ‫اجازه‬. ‫دستورات‬MMX‫های‬ ‫ثبات‬ ‫در‬64‫بیتی‬ ‫دستورات‬SSE‫های‬ ‫ثبات‬ ‫در‬128 14/40 ]10[ www.mmAhmadian.ir
  • 17. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫غیرمستقیم‬ ‫پرش‬ ‫طول‬:6‫بایت‬ 15/40 ]5[ www.mmAhmadian.ir
  • 18. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫کردند‬ ‫می‬ ‫پرش‬ ‫قالب‬ ‫تابع‬ ‫به‬ ‫مستقیما‬ ‫قبل‬ ‫های‬ ‫روش‬. ‫دارد‬ ‫اضافی‬ ‫گام‬ ‫یک‬ ‫به‬ ‫نیاز‬ ‫روش‬ ‫این‬. ‫دساتور‬ ‫اینکاه‬ ‫دلیل‬ ‫به‬call‫از‬ ‫پاس‬‫آدرس‬ ‫قاراردادن‬ ‫بازگشت‬‫مای‬ ‫پارش‬ ‫مشاخص‬ ‫آدرس‬ ‫یاک‬ ‫باه‬ ‫درپشته‬ ‫کند‬ ‫طا‬ ‫عاالوه‬ ‫به‬ ‫فعلی‬ ‫دستور‬ ‫گر‬ ‫بازگشت،اشاره‬ ‫آدرس‬‫ول‬ ‫است‬ ‫فراخوانی‬ ‫دستور‬. 16/40 ]1،6[ www.mmAhmadian.ir
  • 19. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫بخش‬ ‫از‬ ‫استفاده‬idata‫ساختار‬ ‫در‬PE. ‫ورودی‬ ‫های‬ ‫آدرس‬ ‫جدول‬ ‫ورودی‬ ‫توابع‬ ‫نسبی‬ ‫های‬ ‫آفست‬ ‫دارای‬ ‫شوند‬ ‫می‬ ‫تصحیح‬ ‫پایه‬ ‫آدرس‬ ‫اساس‬ ‫بر‬ ‫بارگذار‬ ‫با‬. ‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬ ‫با‬ 17/40 ]1،6[ •‫سرویس‬ ‫توزیع‬ ‫جدول‬‫سیستم‬(SSDT) •‫با‬‫ب‬ ‫کنتارل‬ ‫ابتادا‬ ‫گاردد‬‫مای‬ ‫فراخاوانی‬ ‫سیساتمی‬ ‫تاابعی‬ ،‫کااربر‬ ‫برناماه‬ ‫در‬ ‫کاه‬ ‫زماانی‬ ،‫جادول‬ ‫این‬ ‫از‬ ‫استفاده‬‫باه‬ ‫رناماه‬ ‫توجا‬ ‫باا‬ ‫و‬ ‫مراجعه‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬ ‫جدول‬ ‫به‬ ‫عامل‬‫سیستم‬ ‫سپس‬ ، ‫شود‬‫می‬ ‫برگردانده‬ ‫عامل‬‫سیستم‬‫تاابع‬ ‫ناوع‬ ‫باه‬ ‫ه‬ ‫ا‬‫ا‬‫فراخ‬ ‫را‬ ‫آن‬ ‫و‬ ‫اه‬‫ا‬‫یافت‬ ‫را‬ ‫ااز‬‫ا‬‫موردنی‬ ‫اتمی‬‫ا‬‫سیس‬ ‫اابع‬‫ا‬‫ت‬ ‫آدرس‬ ،‫اده‬‫ا‬‫ش‬‫اتاده‬‫ا‬‫فرس‬ ‫اای‬‫ا‬‫ه‬‫اان‬‫ا‬‫آرگوم‬ ‫و‬ ‫اا‬‫ا‬‫موردتقاض‬ ‫اتمی‬‫ا‬‫سیس‬‫وانی‬ ‫کند‬‫می‬]3[. System Service Dispatch Table ‫سازی‬ ‫قالب‬‫توسط‬SSDT[2]
  • 20. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 18/40 ‫پویا‬ ‫تحلیل‬ ‫نحوه‬: ‫پا‬ ‫و‬ ‫کارده‬ ‫جاایگزین‬ ‫ساابقه‬ ‫فایال‬ ‫ایجااد‬ ‫منظاور‬‫به‬ ‫دلخواهمان‬ ‫تابع‬ ‫آدرس‬ ‫با‬ ‫را‬ ‫جدول‬ ‫این‬ ‫در‬ ‫موجود‬ ‫های‬‫آدرس‬ ‫است‬ ‫کافی‬‫از‬ ‫س‬ ‫نماییم‬ ‫پرش‬ ‫سیستمی‬ ‫تابع‬ ‫اصلی‬ ‫آدرس‬ ‫به‬ ‫سابقه‬ ‫ثبت‬]3[. www.mmAhmadian.ir
  • 21. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 19/40 System Service Dispatch Table ‫معایب‬ ‫و‬ ‫مزایا‬: •+‫در‬، ‫نوع‬ ‫توان‬‫می‬ ‫روش‬ ‫این‬‫فراخوانی‬ ‫سیستمی‬ ‫توابع‬ ‫ترتیب‬ ‫و‬ ‫تعداد‬‫داد‬ ‫تشخیص‬ ‫را‬ ‫شده‬ •-‫متأسفانه‬‫روش‬ ‫این‬‫تنها‬‫قادر‬‫است‬‫هساته‬ ‫ساطح‬ ‫سیستمی‬ ‫توابع‬‫خاانواده‬ ‫سیساتمی‬ ‫تواباع‬ ‫همانناد‬NT‫و‬ZW‫را‬‫رهگیاری‬ ‫جدول‬ ‫به‬ ‫وابسته‬ ‫که‬ ‫کاربر‬ ‫سطح‬ ‫سیستمی‬ ‫توابع‬ ‫رهگیری‬ ‫به‬ ‫قادر‬ ‫و‬ ‫نماید‬SSDT‫هستند‬‫نیست‬]3[. ‫جدول‬ ‫از‬ ‫نمایی‬SSDT‫و‬‫داخل‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬‫آن‬
  • 22. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 9-‫وصله‬‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬ ‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫دسترس‬ ‫قابل‬ ‫برنامه‬ ‫توسط‬ ‫که‬ ‫توابعی‬ ‫شامل‬ 20/40 ]1،5،6[ 10-‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫سازی‬ ‫قالب‬ ‫امکان‬API‫تزریق‬ ‫هنگام‬ ‫به‬DLL‫روش‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬DLL‫دارد‬ ‫وجود‬ ‫شده‬ ‫پروکسی‬. DLL‫نام‬ ‫به‬ ‫ورودی‬ ‫نقطه‬ ‫یک‬ ‫حاوی‬ ‫شده‬ ‫پروکسی‬Function Forwarder‫است‬. ‫آن‬ ‫در‬ ‫دیگری‬ ‫تابع‬ ‫به‬ ‫را‬ ‫تابع‬ ‫یک‬ ‫فراخوانی‬ ‫که‬DLL‫کند‬ ‫می‬ ‫محول‬. ‫سازی‬ ‫قالب‬ ‫های‬ ‫روش‬ ‫این‬ ‫سازی‬ ‫پیاده‬ ‫عملی‬ ‫نمونه‬: ‫موارد‬ ‫سایر‬: www.jbremer.org/x86-api-hooking-demystified/
  • 23. ‫مقدمه‬ ‫روش‬‫های‬‫سازی‬ ‫قالب‬ ‫کتابخانه‬Detours 5 3 2 1 ‫مراجع‬ ‫و‬ ‫منابع‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop 3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn 4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬ 5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE 6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬ 7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ 9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬ 10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬ 1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 4‫پویا‬ ‫سازی‬ ‫قالب‬ 2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
  • 24. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 21/40 •Detours‫است‬ ‫سیستمی‬ ‫توابع‬ ‫فراخوانی‬ ‫مسیر‬ ‫کردن‬ ‫منحرف‬ ‫برای‬ ‫کتابخانه‬ ‫یک‬. •‫های‬ ‫ماشین‬ ‫روی‬ ‫بر‬ ‫که‬ ‫است‬ ‫باینری‬ ‫فایلهای‬ ‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ARM،x86،x64،IA64‫کنند‬ ‫می‬ ‫کار‬. •‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ ‫موارد‬ ‫اکثر‬ ‫در‬Win32‫مانند‬ ‫کاربردی‬ ‫برنامه‬ ‫در‬ ‫که‬ ‫است‬debugger‫شود‬ ‫می‬ ‫استفاده‬ ‫ها‬. •‫شود‬‫می‬ ‫اضافه‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫پویا‬ ‫طور‬‫به‬ ‫توقف‬ ‫کد‬ ‫و‬ ‫کتابخانه‬ ‫این‬. •‫شرطی‬ ‫غیر‬ ‫پرش‬ ‫شیوه‬ ‫به‬]2.7[. •‫کند‬ ‫می‬ ‫ایجاد‬ ‫هدف‬ ‫تابع‬ ‫در‬ ‫را‬ ‫ها‬ ‫،وقفه‬ ‫پردازه‬ ‫در‬ ‫باینری‬ ‫بازنویسی‬ ‫طریق‬ ‫از‬. •‫کتابخانه‬ ‫این‬ ‫بر‬ ‫عالوه‬Detours‫ورودی‬ ‫جدول‬ ‫ویرایش‬ ‫برای‬ ‫توابعی‬ ‫شامل‬DLL‫است‬ ‫باینری‬ ‫فایل‬ ‫هر‬. •‫و‬ ‫کرد‬ ‫اضافه‬ ‫موجود‬ ‫باینری‬ ‫به‬ ‫را‬ ‫دلخواه‬ ‫داده‬ ‫سگمت‬ ‫نوع‬ ‫هر‬ ‫بتوان‬ ‫تا‬DLL‫کرد‬ ‫اضافه‬ ‫جدید‬ ‫پردازه‬ ‫یک‬ ‫در‬ ‫را‬. ]6[ www.mmAhmadian.ir
  • 25. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫برنامه‬Simple‫نموناه‬ ‫ترین‬ ‫ساده‬Dll‫ای‬ ‫کتابخانااه‬ ‫از‬ ‫آن‬ ‫در‬ ‫کااه‬ ‫اساات‬Detours ‫شود‬ ‫می‬ ‫لستفاده‬. ‫تغییر‬API‫کارد‬ ‫اضاافه‬ ‫و‬ ‫ویندوز‬‫ن‬ ‫هایی‬ ‫قابلیت‬:‫تغییر‬‫تابع‬Sleep 22/40 ]6[ www.mmAhmadian.ir
  • 26. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫نیست‬ ‫موجود‬ ‫هدف‬ ‫برنامه‬ ‫متن‬ ‫که‬ ‫زمانی‬. ‫یک‬ ‫در‬ ‫باید‬ ‫توابع‬DLL‫بگیرند‬ ‫قرار‬. DLL‫تابع‬ ‫فراخوانی‬ ‫با‬ ‫اجرا‬ ‫زمان‬ ‫در‬DetourCreateProcessWithDLLEx‫مای‬ ‫بارگاذاری‬ ‫جدیاد‬ ‫پاردازه‬ ‫یاک‬ ‫در‬ ‫شود‬ ‫فایل‬ ‫ورودی‬ ‫جدول‬ ‫تغییر‬ ‫با‬PE‫حافظه‬ ‫درون‬ ‫در‬ ‫هدف‬ ‫اجرای‬ ‫باعث‬DLL‫شده‬ ‫تزریق‬‫اولین‬ ‫عنوان‬ ‫به‬DLL‫برنامه‬ 23/40 ]5[ www.mmAhmadian.ir
  • 27. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫کتابخانه‬Detours‫آن‬ ‫کمک‬ ‫به‬ ‫توان‬ ‫می‬ ‫که‬ ‫است‬ ‫توابعی‬ ‫شامل‬ ‫را‬ ‫دلخواه‬ ‫های‬ ‫سگمنت‬(Payload)‫کرد‬ ‫پیوست‬ ‫اجرایی‬ ‫های‬ ‫فایل‬ ‫به‬. ‫ورودی‬ ‫جدول‬ ‫یا‬DLL‫کرد‬ ‫ویرایش‬ ‫را‬. ‫است‬ ‫پذیر‬ ‫برگشت‬ ‫کامال‬ ‫توابع‬ ‫این‬ ‫تغییرات‬. 24/40 ]6[ www.mmAhmadian.ir
  • 28. ‫مقدمه‬ ‫روش‬‫های‬‫سازی‬ ‫قالب‬ ‫کتابخانه‬Detours 5 3 2 1 ‫مراجع‬ ‫و‬ ‫منابع‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop 3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn 4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬ 5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE 6‫مستقی‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬‫م‬ 7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 8‫از‬‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ 9‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫وصله‬ ‫طریق‬ ‫از‬ 10‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬ 1‫سفید‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 4‫پویا‬ ‫سازی‬ ‫قالب‬ 2‫سیاه‬ ‫جعبه‬ ‫صورت‬ ‫به‬ ‫استفاده‬ 3‫افزودن‬ ‫جهت‬ ‫استفاده‬Payload
  • 29. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 25/40 (1‫کد‬ ‫سازی‬ ‫قالب‬ (2‫داده‬ ‫سازی‬ ‫قالب‬ ‫قالب‬ ‫جایگاه‬ ‫انواع‬ (1Persistent Control Data (2Transient Control Data ‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫های‬ ‫روش‬ ‫انواع‬Persistent Control Data Transient Control Data ‫ضعف‬!‫؟‬ [4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes within non-control data." Proceedings of the 23rd USENIX conference on Security Symposium. USENIX Association, 2014. VOGL, S., PFOH, J., KITTEL, T., ANDECKERT, C. Persistent data-only malware: Function Hooks without Code. In Symposium on Network and Distributed System Security (NDSS),2014. ‫پویا‬ ‫سازی‬ ‫قالب‬ www.mmAhmadian.ir
  • 30. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 96%‫دارند‬ ‫سازی‬ ‫قالب‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬! ‫کنند‬ ‫می‬ ‫استفاده‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬ ‫امروزه‬ ‫پیشرفته‬ ‫بدافزارهای‬ ‫اکثر‬. ‫دادن‬ ‫قرار‬ ‫حمله‬ ‫جای‬ ‫به‬ ‫میتوانند‬ ‫بدافزارها‬Persistent Control Data‫روی‬ ‫بار‬ ‫را‬ ‫خاود‬ ‫هدف‬Transient Control Data‫بزارند‬: ‫د‬ ‫مثال‬‫ر‬return-oriented rootkits 26/40 ‫مهاجم‬ ‫مدل‬ ‫فرضیات‬: ‫مهاجم‬ ‫هدف‬:‫همیشگی‬ ‫صورت‬ ‫به‬ ‫هسته‬ ‫سطح‬ ‫در‬ ‫بدافزار‬ ‫نصب‬ ‫دارد‬ ‫را‬ ‫هسته‬ ‫به‬ ‫مرتبط‬ ‫حافظه‬ ‫دستکار‬ ‫توانایی‬ ‫شودمهاجم‬ ‫می‬ ‫فرض‬ ‫بنابراین‬(.‫داخل‬ ‫مهاجم‬ ‫نوعی‬ ‫به‬‫ی‬) ‫هسته‬ ‫سطح‬ ‫در‬ ‫ماژول‬ ‫بازگذاری‬ ‫امکان‬ ‫قربانی‬ ‫سیستم‬ ‫مدل‬ ‫فرضیات‬: ‫امنیتی‬ ‫های‬ ‫مکانیزم‬ ‫دارای‬ASLR + stack Canary+ W^X ]4[ www.mmAhmadian.ir
  • 31. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 27/40 ‫امنیتی‬ ‫های‬ ‫مکانیزم‬ASLR + stack Canary + W^X‫محافظات‬ ‫خاارجی‬ ‫مهااجم‬ ‫برابار‬ ‫در‬ ‫را‬ ‫قرباانی‬ ‫سیساتم‬ ‫تنها‬ ‫دارد‬ ‫کنترل‬ ‫برنامه‬ ‫بر‬ ‫که‬ ‫مهاجمی‬ ‫توسط‬ ‫نه‬ ‫کند‬ ‫می‬! ‫مهاجم‬ ‫روش‬ ‫این‬ ‫در‬‫تواند‬ ‫می‬‫ندارد‬ ‫آنها‬ ‫روی‬ ‫بر‬ ‫تصرفی‬ ‫هیچ‬ ‫کاربر‬ ‫که‬ ‫کند‬ ‫دستکاری‬ ‫را‬ ‫توابعی‬! ]4[ www.mmAhmadian.ir
  • 32. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 28/40 ‫یییی‬ ]4[ www.mmAhmadian.ir
  • 33. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 30/40 ‫گرفت‬ ‫بهره‬ ‫توان‬ ‫می‬ ‫پویا‬ ‫سازی‬ ‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫برای‬ ‫پذیری‬ ‫آسیب‬ ‫نوع‬ ‫هر‬ ‫از‬. ‫روی‬ ‫تمرکز‬ ‫سادگی‬ ‫برای‬ ‫مقاله‬ ‫این‬ ‫در‬n-byte writes ‫فرض‬:‫توانایی‬ ‫اینجا‬ ‫مهاجم‬8-byte writes ‫معماری‬ ‫در‬ ‫العمل‬ ‫دستور‬ ‫نمونه‬x86‫آسیب‬ ‫پتاسیل‬ ‫که‬‫پذیری‬8-byte writes‫دارد‬ ‫را‬ Mov [rax] , rbx ‫هسته‬ ‫در‬3.8‫لینوکس‬: 103‫دستور‬ ‫هزار‬mov‫باال‬ ‫مشابه‬(5%‫ها‬ ‫دستورالعمل‬ ‫کل‬!1.976.441) ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫عدم‬n=1,2,4‫سایر‬ ‫و‬n‫ها‬ ]4[ www.mmAhmadian.ir
  • 34. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 31/40 (1‫پویا‬ ‫کنترلی‬ ‫سازی‬ ‫قالب‬ (2‫پویا‬ ‫ای‬ ‫داده‬ ‫سازی‬ ‫قالب‬ ‫انواع‬‫پویا‬ ‫سازی‬ ‫قالب‬ ‫پویا‬ ‫کنترلی‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫ای‬ ‫نمونه‬:‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫رهگیری‬ ‫رود‬ ‫بکار‬ ‫خاص‬ ‫پردازه‬ ‫یک‬ ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫تمام‬ ‫رهگیری‬ ‫برای‬ ‫تواند‬ ‫می‬ ‫پویا‬ ‫قالب‬ ‫یک‬. ‫روی‬ ‫قالب‬ ‫باید‬system call handler‫سیساتمی‬ ‫فراخاوان‬ ‫مکاانیزم‬ ‫از‬ ‫مساتقل‬ ‫کاه‬ ‫گیارد‬ ‫قارار‬ ‫است‬(.‫هسته‬ ‫سطح‬ ‫بدافزارهای‬) system call handler‫های‬ ‫پرچم‬ ‫تنظیم‬ ‫با‬ ‫کردن‬ ‫دیباگ‬ ‫قابل‬TID_SYSCALL_AUDIT __audit_syscall_entry invocation of system call __audit_syscall_exit audit_free_names ]4[ www.mmAhmadian.ir
  • 35. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 32/40 ‫بتوان‬ ‫اگر‬name_list‫به‬ ‫ارسالی‬ ‫های‬ ‫ورودی‬ ‫توان‬ ‫می‬ ‫کرد‬ ‫کنترل‬ ‫را‬list-del‫کرد‬ ‫کنترل‬ ‫را‬. ]4[ www.mmAhmadian.ir
  • 36. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 33/40 ‫وابستگی‬ ‫معیار‬(Binding) ‫انداز‬ ‫راه‬ ‫بخش‬ ‫و‬ ‫انداز‬ ‫راه‬ ‫مسیرهای‬ ‫تعداد‬ ‫میان‬ ‫رابطه‬ ‫تر‬ ‫سخت‬ ‫مهاجم‬ ‫کار‬ ‫کمتر‬ ‫وابستگی‬ ‫هرچه‬(loosely bound) ‫پوشش‬ ‫معیار‬(Coverage:) ‫کامل‬ ‫پوشش‬(Full) ‫ناقص‬ ‫پوشش‬(Partial) ‫برسد‬ ‫کامل‬ ‫پوشش‬ ‫به‬ ‫تا‬ ‫شود‬ ‫ادغام‬ ‫هوک‬ ‫های‬ ‫روش‬ ‫سایر‬ ‫با‬ ‫باید‬. (1‫انداز‬ ‫راه‬ ‫بخش‬(Trigger) •‫در‬ ‫مثال‬8-byte write‫دستور‬mov •‫انداز‬ ‫راه‬ ‫مسیر‬(trigger path) (2payload ‫اجزا‬ ]4[ www.mmAhmadian.ir
  • 37. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 34/40 ‫سازی‬ ‫خودکار‬ ‫مراحل‬ (1‫بر‬ ‫زمان‬ (2‫بسیار‬ ‫خطای‬ ‫معرض‬ ‫در‬ ‫دستی‬ ‫استخراج‬ ‫معایب‬ (1‫ایس‬ ‫صورت‬ ‫به‬ ‫برنامه‬ ‫برش‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬‫تا‬ (2‫نمادین‬ ‫اجرای‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬ ]4[ www.mmAhmadian.ir
  • 38. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 35/40 ‫برش‬(Slice:) ‫گ‬ ‫می‬ ‫تاثیر‬ ‫عالقه‬ ‫مورد‬ ‫نقطه‬ ‫روی‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫بالقوه‬ ‫طور‬ ‫به‬ ‫که‬ ‫برنامه‬ ‫از‬ ‫قسمتی‬‫ذارد‬. ‫زوج‬ ‫یک‬ ‫صورت‬ ‫به‬(N,V) ‫م‬ ‫در‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫مستقیم‬ ‫غیر‬ ‫یا‬ ‫مستقیم‬ ‫تاثیر‬ ‫که‬ ‫برنامه‬ ‫یک‬ ‫از‬ ‫هایی‬ ‫قسمت‬‫بارش‬ ‫عیاار‬C ‫معیار‬ ‫با‬ ‫رابطه‬ ‫در‬ ‫برنامه‬ ‫برش‬ ،‫دارند‬C‫دهد‬ ‫می‬ ‫تشکیل‬ ‫را‬. ‫برنامه‬ ‫برش‬ ‫شوند‬ ‫پیدا‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬ ‫باید‬. ‫دارند‬ ‫وجود‬ ‫زیادی‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬! ‫هستند‬ ‫مفید‬ ‫آنها‬ ‫از‬ ‫برخی‬! ‫ایستا‬ ‫برش‬: ‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫بدون‬ ‫ایستا‬ ‫صورت‬ ‫به‬ ‫برش‬‫پویا‬: ‫صورت‬ ‫به‬‫با‬ ‫پویا‬‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ]4[ www.mmAhmadian.ir
  • 39. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 36/40 (1‫یافتن‬mov‫اساس‬ ‫بر‬ ‫ها‬CFG‫از‬ ‫شده‬ ‫استخراج‬IDA pro (2Backward‫دهد‬ ‫می‬ ‫تغییر‬ ‫را‬ ‫منبع‬ ‫که‬ ‫دستورالعملی‬ ‫اولین‬ ‫یافتن‬ ‫و‬ ‫کردن‬ (3‫سراسری‬ ‫متغیر‬ ‫به‬ ‫وابسته‬ ‫مقصد‬ ‫و‬ ‫مبدا‬ ‫اگر‬ ‫مسیر‬ ‫استخراج‬ ‫مقاله‬ ‫در‬ ‫برش‬ ‫نحوه‬]4[ ‫برش‬ ‫از‬ ‫ای‬ ‫نمونه‬‫ایستا‬[11] ‫ابزار‬Slicer ‫با‬BFS ]11[ www.mmAhmadian.ir
  • 40. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 37/40 ‫نمادین‬ ‫اجرای‬ ‫جلو‬ ‫به‬ ‫رو‬ ‫نمادین‬ ‫اجرای‬ ‫از‬ ‫استفاده‬ ‫پویا‬ ‫سازی‬ ‫قالب‬ ‫برای‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬ ‫و‬ ‫ها‬ ‫مسیر‬ ‫بررسی‬ ‫برای‬ ‫پایه‬ ‫بلوک‬ ‫هر‬ ‫انتقال‬ ‫با‬‫به‬ ‫استخراجی‬ ‫مسیرهای‬Pyvex(‫قالب‬ ‫در‬VEX IR) ‫به‬ ‫تبدیل‬Z3 expression ‫شرطی‬ ‫انشعابات‬ ‫پذیری‬ ‫ارضا‬ ‫بررسی‬ ‫کنترلی‬ ‫رجیسترهای‬ ‫مورد‬ ‫در‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬ ]4[ www.mmAhmadian.ir
  • 41. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 38/40 ]4[ ‫ها‬ ‫ویژگی‬ ‫های‬ ‫تکنیک‬ ‫زدن‬ ‫دور‬HookSafe‫و‬SBCFI www.mmAhmadian.ir
  • 42. ‫خط‬8:‫شود‬ ‫می‬ ‫تعریف‬ ‫پشته‬ ‫در‬ ‫محلی‬ ‫ساختار‬ ‫یک‬. ‫است‬ ‫دیگر‬ ‫ساختار‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یک‬ ‫دارای‬ ‫ساختار‬ ‫این‬(‫خط‬2) ‫خط‬ ‫در‬ ‫است‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫که‬ ‫ساختار‬ ‫این‬10‫شود‬ ‫می‬ ‫فراخوانی‬. ‫کند‬ ‫ایجاد‬ ‫پویا‬ ‫ساختار‬ ‫به‬ ‫گره‬ ‫اشاره‬ ‫در‬ ‫تغییر‬ ‫پویا‬ ‫هوک‬ ‫کمک‬ ‫با‬ ‫تواند‬ ‫می‬ ‫مهاجم‬(‫خط‬ ‫در‬2) ‫بگیرد‬ ‫دست‬ ‫به‬ ‫را‬ ‫ساختار‬ ‫کنترل‬ ‫ده‬ ‫خط‬ ‫در‬ ‫سپس‬ ‫جای‬ ‫به‬‫گرفتن‬ ‫هدف‬Ret address‫مستقیم‬ ‫صورت‬ ‫به‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یا‬‫پشات‬ ‫در‬ ‫محلای‬ ‫گار‬ ‫اشااره‬ ‫مهاجم‬ ،‫را‬ ‫ه‬ ‫دهد‬ ‫می‬ ‫قرار‬ ‫هدف‬.
  • 43. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 39/40 ‫در‬‫برش‬‫علت‬ ‫به‬‫حافظه‬ ‫مدل‬ ‫وجود‬ ‫عدم‬ ‫های‬ ‫ثبات‬ ‫بازگشتی‬ ‫مقادیر‬ ‫مدل‬ ‫این‬ ‫در‬ ‫توان‬ ‫نمی‬Subfunction‫ذخیره‬ ‫را‬‫کرد‬. ‫از‬ ‫نظر‬ ‫صرف‬79.853‫مسیر‬ ‫نمادین‬ ‫اجرای‬‫های‬ ‫العمل‬ ‫دستور‬ ‫مجموعه‬ ‫تنها‬x86 ‫سطح‬ ‫های‬ ‫دستورالعمل‬ ‫از‬ ‫برخی‬ring-0‫کند‬ ‫نمی‬ ‫حمایت‬ ‫را‬. ‫نظر‬ ‫صرف‬‫از‬5.857‫برش‬ ‫نیستند‬ ‫پذیر‬ ‫آسیب‬ ‫پویا‬ ‫قالب‬ ‫سازی‬ ‫پیاده‬ ‫برای‬ ‫توابع‬ ‫همه‬. ‫ندارند‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫توابع‬ ‫همه‬. ‫که‬ ‫دارد‬ ‫حافظه‬ ‫از‬ ‫بخشی‬ ‫به‬ ‫نیاز‬ ‫پویا‬ ‫هوک‬‫اجرا‬ ‫قابل‬‫باشد‬. ‫های‬ ‫ویژگی‬ ‫بررسی‬ ‫عدم‬‫پیوستگی‬ ‫و‬ ‫پوشش‬ ‫با‬ ‫تشخیص‬CFI(‫البته‬Kernel-level CFI) ‫با‬ ‫ادغام‬ ‫و‬ ‫مقصد‬ ‫چند‬ ‫با‬ ‫های‬ ‫العمل‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫در‬ ‫اما‬ret-to-libc‫سخت‬ ‫تشخیص‬! ‫در‬CFI‫با‬Lazy control flow verfication‫است‬ ‫شدنی‬ ‫هوک‬ ‫اما‬ ‫شود‬ ‫می‬ ‫سخت‬ ‫پویا‬ ‫هوک‬ ‫با‬ ‫مهاجم‬ ‫کار‬ ]4[ www.mmAhmadian.ir
  • 44. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ [1] Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski and Andrew Honig -2012.(chapter 11) [2] w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling Behavior from malicious binary Executable ,”in computer and electrical Engineering , ICCEE 2008 .International conference on ,pp.388-392, 2008. [3] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology,2004. [4] Sebastian Vogl , et al. "Dynamic hooks: hiding control flow changes within non-control data." Proceedings of the 23rd USENIX conference on Security Symposium. USENIX Association, 2014. [5] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and api hooking." Software: Practice and Experience 40.7 (2010): 567-584. ]6[‫مجموعه‬‫گزارشات‬‫آپا‬‫دانشگاه‬‫فردوسی‬‫مشهد‬(‫سوسن‬‫نادری،مریم‬‫نژاد‬‫کمالی،شهب‬‫الدین‬‫نمازی‬‫خواه‬) [7]‫کاظم‬،‫زاده‬‫میثم؛‬‫سیدمجتبی‬‫حسینی؛‬‫حسین‬‫شیرازی‬‫و‬‫محمدابراهیم‬،‫زارع‬‫تشخیص‬‫هوشمند‬‫رفتارهای‬‫مخرب‬‫بدافزارها‬‫مبتنی‬‫بر‬‫رف‬‫تار‬‫پویای‬،‫آنها‬ ‫ششمین‬‫کنفرانس‬‫ملی‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬،‫تهران‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬‫دانشکده‬‫برق‬‫و‬‫کامپیوتر‬‫دانشگاه‬‫شهید‬ ،‫بهشتی‬1391‫ظ‬ [8]Manuel Egele, Theodoor Scholte, Engin Kirda, and Christopher Kruegel. A survey on automated dynamic malware-analysis techniques and tools. ACM Computing Surveys(CSUR), 44(2):6, 2012. [9]Kruegel, C., Kirda, E., Mutz, D., Robertson, W., Vigna, G.: Polymorphic worm detection using structural information of executables. In: International Symposium on Recent Advances in Intrusion Detection (RAID) (2005). [10] Toward Automated Dynamic Malware Analysis Using CWSandbox.CARSTEN WILLEMS, THORSTEN HOLZ,FELIX FREILING 2007, IEEE SECURITY & PRIVACY . [11]J. Krinke. Advanced Slicing of Sequential and Concurrent Programs. Issues and Solutions. Ph.D thesis, University of Passau. April 2003. 40/40 www.mmAhmadian.ir
  • 45. ‫شما‬ ‫توجه‬ ‫حسن‬ ‫از‬ ‫باتشکر‬... www.mmAhmadian.ir