O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

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

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 46 Anúncio

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

قلاب سازی ، یک مفهوم برای به دست آوردن کنترل جریان اجرایی برنامه بدون تغییر و کامپایل مجدد کد منبع آن است .
توسط متوقف سازی فراخوانی تابع و هدایت مجدد آن به کد سفارشی‌شده ، به دست می‌آید.
با تزریق کد سفارشی ، هر عملیاتی را می‌توان اجرا نمود . پس‌ازآن ، قابلیت‌های اصلی تابع می تواند اجراشده و نتیجه می‌تواند یا به‌سادگی برگشت داده شود و یا تغییر داده ‌شود

محمد مهدی احمدیان

قلاب سازی ، یک مفهوم برای به دست آوردن کنترل جریان اجرایی برنامه بدون تغییر و کامپایل مجدد کد منبع آن است .
توسط متوقف سازی فراخوانی تابع و هدایت مجدد آن به کد سفارشی‌شده ، به دست می‌آید.
با تزریق کد سفارشی ، هر عملیاتی را می‌توان اجرا نمود . پس‌ازآن ، قابلیت‌های اصلی تابع می تواند اجراشده و نتیجه می‌تواند یا به‌سادگی برگشت داده شود و یا تغییر داده ‌شود

محمد مهدی احمدیان

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (13)

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

Anúncio

Mais de M Mehdi Ahmadian (7)

Anúncio

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

  1. 1. ‫محمد‬‫مهدی‬‫احمدیان‬ ‫اطالعات‬ ‫امنیت‬ ‫ارشد‬ ‫کارشناسی‬ ‫دانشجوی‬ ‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬ ‫تهران‬ ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫آذر‬93 ‫سازی‬ ‫قالب‬(Hooking)‫در‬‫تحلیل‬‫و‬‫بدافزار‬ ‫طراحی‬ www.mmAhmadian.ir
  2. 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. 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. 4. ‫مقدمه‬: ‫بدافزار‬ ‫یک‬ ‫توسط‬ ‫شده‬ ‫وارد‬ ‫توابع‬ ‫لیست‬ ‫استخراج‬ ‫اهمیت‬ ‫ض‬‫ایستا‬ ‫تحلیل‬ ‫بر‬ ‫مبتنی‬ ‫های‬ ‫روش‬ ‫عف‬ ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫برنامه‬ ‫توسعه‬ ‫جهت‬ ‫برنامه‬ ‫منبع‬ ‫کد‬ ‫داشتن‬ ‫اختیار‬ ‫در‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫برنامه‬ ‫خدمات‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫ها‬ ‫افزونه‬ ‫یا‬ ‫ها‬ ‫رابط‬ ‫کردن‬ ‫اضافه‬ ‫پایین‬ ‫سطح‬ ‫نویسی‬ ‫برنامه‬ ‫از‬ ‫استفاده‬(‫ماشین‬ ‫کد‬ ‫تغییر‬) ‫امنیتی‬ ‫اقدامات‬ ‫زدن‬ ‫دور‬ ،‫ناچیز‬ ‫تغییرات‬ ‫انجام‬ ،‫کوچک‬ ‫اشکاالت‬ ‫رفع‬ ‫برای‬ ‫تزریق‬DLL: ‫در‬ ‫کد‬ ‫بارگذاری‬DLL‫اجرا‬ ‫حال‬ ‫در‬ ‫ی‬ ‫برنامه‬ ‫درون‬ ‫دلخواه‬ ‫مثال‬:‫ایجاد‬DLL‫شده‬ ‫پروکسی‬ ‫سازی‬ ‫قالب‬API(‫جعل‬API‫گذاری‬ ‫تله‬ ،) ‫تواب‬ ‫های‬ ‫فراخوان‬ ‫بر‬ ‫نظارت‬ ‫های‬ ‫روش‬ ‫ترین‬ ‫رایج‬ ‫از‬ ‫یکی‬‫ع‬ 3/40 ]1[ www.mmAhmadian.ir
  5. 5. •‫من‬ ‫کد‬ ‫مجدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬ ‫اجرایی‬ ‫جریان‬ ‫کنترل‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫است‬ ‫آن‬ ‫بع‬. hooking •‫آید‬‫می‬ ‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬ ‫مجدد‬ ‫هدایت‬ ‫و‬ ‫تابع‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬ ‫توسط‬. •‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫مای‬ ‫تاابع‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫اجراشا‬ ‫تواناد‬‫نتیجاه‬ ‫و‬ ‫ده‬ ‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫ش‬‫ود‬]2،7[. ‫کلی‬ ‫ایده‬: •‫یاا‬ ‫و‬ ‫کااربردی‬ ‫عامل،برناماه‬ ‫سیستم‬ ‫یک‬ ‫رفتار‬ ‫تکمیل‬ ‫یا‬ ‫تغییر‬ ‫برای‬ ‫استفاده‬ ‫مورد‬ ‫سازوکارهای‬ ‫از‬ ‫وسیعی‬ ‫طیف‬ ‫سازی‬ ‫قالب‬‫نارم‬ ‫اجازان‬ ‫ساایر‬ ‫دهد‬ ‫می‬ ‫پوشش‬ ‫را‬ ‫ها‬ ‫افزار‬(.‫رویدادها‬ ‫یا‬ ‫و‬ ‫ها‬ ‫توابع،پیام‬ ‫فراخوانی‬ ‫جلوگیری‬ ‫طریق‬ ‫از‬) •‫ب‬‫دارد‬ ‫عهده‬ ‫بر‬ ‫را‬ ‫وظایف‬ ‫این‬ ‫مدیریت‬ ‫که‬ ‫کدی‬ ‫ه‬«‫قالب‬»‫شود‬ ‫می‬ ‫گفته‬. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 4/40 ]6[
  6. 6. ‫مفاهیم‬‫اولیه‬]8[: ‫سیستمی‬ ‫فراخوان‬: ‫توابا‬ ‫از‬ ‫یکای‬ ،‫باشاد‬ ‫داشته‬ ‫را‬ ‫افزار‬ ‫سخت‬ ‫و‬ ‫سیستم‬ ‫منابع‬ ‫به‬ ‫دسترسی‬ ‫به‬ ‫نیاز‬ ‫کاربر‬ ‫سطح‬ ‫افزار‬‫نرم‬ ‫یک‬ ‫هرگاه‬‫سیساتم‬ ‫درون‬ ‫ع‬ ‫سیستمی‬ ‫فراخوان‬ ‫عمل‬ ‫این‬ ‫به‬ ‫که‬ ،‫کند‬‫می‬ ‫فراخوانی‬ ‫را‬ ‫عامل‬‫گویند‬‫می‬. ‫یک‬ ‫خروجی‬File-handle‫است‬. ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫انواع‬: ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 5/40 www.mmAhmadian.ir
  7. 7. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 6/40 API: ‫شود‬ ‫می‬ ‫ارائه‬ ‫کاربر‬ ‫سطح‬ ‫های‬ ‫برنامه‬ ‫برای‬ ‫عامل‬ ‫سیستم‬ ‫توسط‬ ‫که‬ ‫است‬ ‫هایی‬ ‫روتین‬ ‫مجموعه‬(‫به‬ ‫دسترسی‬ ‫برای‬‫منابع‬). ‫های‬ ‫کتابخانه‬ ‫برخی‬ ‫در‬DLL‫مانند‬kernel32.dll‫و‬user32.dll‫و‬... API‫بومی‬ ‫های‬‫ویندوز‬: ‫و‬ ‫سیستمی‬ ‫های‬ ‫فراخوان‬ ‫رابط‬ ‫مابین‬API‫میگیرند‬ ‫قرار‬ ‫ویندوز‬ ‫های‬. ‫شوند‬ ‫می‬ ‫استفاده‬ ‫عامل‬ ‫سیستم‬ ‫خود‬ ‫توسط‬ ‫اکثرا‬. ‫توسط‬ ‫بومی‬ ‫توابع‬ ‫فراخوانی‬ ‫اکثر‬ntoskrnl.exe‫شود‬ ‫می‬ ‫انجام‬. ‫از‬ ‫توانند‬ ‫می‬ ‫تابع‬ ‫این‬ ‫فراخوانی‬ ‫برای‬ ‫کاربران‬ntdll.dll‫کنند‬ ‫استفاده‬. ‫پیشوند‬ ‫با‬ ‫توابع‬ ‫تمامی‬Nt‫شوند‬ ‫می‬ ‫شروع‬. ]8[ application programming interface
  8. 8. ‫سیستمی‬ ‫فراخوان‬ ‫یک‬ ‫چرخه‬
  9. 9. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 8/40 ‫فراخوانی‬ ‫بر‬ ‫بتوان‬ ‫اگر‬API‫کرد‬ ‫پویا‬ ‫تحلیل‬ ‫را‬ ‫ها‬ ‫آن‬ ‫توان‬ ‫می‬ ‫داشت‬ ‫نظارت‬ ‫آن‬ ‫پارامترهای‬ ‫و‬ ‫مربوطه‬ ‫های‬. ‫است‬ ‫سازی‬ ‫قالب‬ ‫راهها‬ ‫این‬ ‫از‬ ‫یکی‬. ‫ترین‬‫ساده‬‫کاربر‬ ‫سطح‬ ‫فضای‬ ‫در‬ ‫پویا‬ ‫رهگیری‬ ‫برای‬ ‫روش‬ ‫پرکاربردترین‬ ‫و‬‫است‬]9[. ‫سازی‬ ‫قالب‬ ‫انواع‬: ‫محلی‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫امنیتی،ابزارهای‬ ‫های‬ ‫ضدبدافزارها،برنامه‬ ‫توسط‬ ‫استفاده‬... ‫سراسری‬ ‫ارائه‬ ‫نخست‬ ‫بخش‬ ‫دو‬ ‫در‬ ‫ما‬ ‫هدف‬: ‫بدافزار‬ ‫رفتار‬ ‫تحلیل‬ ‫برای‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬ ‫توجه‬:‫سازی‬ ‫قالب‬ ‫تابع‬ ‫تشخیص‬ ‫در‬ ‫سعی‬ ‫بدافرارها‬ www.mmAhmadian.ir
  10. 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. 11. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬ ‫فرض‬ ‫با‬ ‫بعد‬ ‫به‬ ‫اینجا‬ ‫از‬‫معماری‬x86 ‫غیرشرطی‬ ‫پرش‬ ‫دستور‬ ‫طول‬(‫همیشه‬ ‫تقریبا‬:)5‫بایت‬ ‫بایت‬ ‫یک‬:‫کدعملگر‬ ‫بایت‬ ‫چهار‬:‫نسبی‬ ‫آفست‬32‫بیتی‬ 9/40 ]1،6[ www.mmAhmadian.ir
  12. 12. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 10/40 ‫تشخیص؟‬ ‫نحوه‬ ]1،6[ ‫بیشتر‬ ‫مطالعه‬ ‫برای‬: jbremer.org/x86-api-hooking-demystified/ www.mmAhmadian.ir
  13. 13. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫یک‬ ‫کردن‬ ‫اضافه‬NOP‫ابتدا‬ ‫به‬ 11/40 ‫تشخیص‬ ‫نحوه‬: ]5،10[ www.mmAhmadian.ir
  14. 14. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫دستور‬Push:‫مقدار‬ ‫یک‬ ‫دادن‬ ‫قرار‬32‫پشته‬ ‫روی‬ ‫بیتی‬ ‫دستور‬ ‫طول‬:5‫بایت‬ ‫دستور‬:Retn‫برداشتن‬‫مقدار‬ ‫یک‬32‫بیتای‬‫پشاته‬ ‫روی‬ ‫از‬ ‫در‬ ‫دادن‬ ‫قرار‬ ‫و‬IP ‫دستور‬ ‫طول‬:1‫بایت‬ 12/40 ]5[ www.mmAhmadian.ir
  15. 15. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫روش‬ ‫مشابه‬Push/retn ‫مقاد‬ ‫ایان‬ ‫سپس‬ ‫و‬ ‫گیرد‬ ‫می‬ ‫قرار‬ ‫پشته‬ ‫روی‬ ‫ساختگی‬ ‫مقدار‬‫باا‬ ‫ار‬ ‫شود‬ ‫می‬ ‫برگردانده‬ ‫سپس‬ ‫و‬ ‫شده‬ ‫بازنویسی‬ ‫واقعی‬ ‫آدرس‬. ‫آدرس‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫پرش‬ ‫آدرس‬ ‫سازی‬ ‫ذخیره‬ ‫جای‬ ‫به‬32‫بیتی‬ ‫شناور‬ ‫نقطه‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫آدرس‬ ‫این‬64‫شود‬ ‫می‬ ‫ذخیره‬ ‫بیتی‬. ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫پرش‬ ‫آدرس‬ ‫سپس‬Fld‫شده‬ ‫می‬ ‫خوانده‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬fistp‫مقادار‬ ‫یاک‬ ‫به‬32‫مای‬ ‫ترجماه‬ ‫بیتای‬ ‫شود‬. ‫از‬ ‫استفاده‬11‫بایت‬ 13/40 Floating Point ]1،6[
  16. 16. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫شناور‬ ‫نقاط‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬ ‫دستورات‬ ‫مجموعه‬ ‫از‬ ‫شناور‬ ‫نقطه‬ ‫از‬ ‫استفاده‬ ‫جای‬ ‫به‬MMX‫یا‬SSE‫کند‬ ‫می‬ ‫استفاده‬. ‫دستور‬ ‫نظیر‬movd:‫مثل‬fistp‫کند‬ ‫ذخیره‬ ‫پشته‬ ‫در‬ ‫و‬ ‫خوانده‬ ‫حافظه‬ ‫از‬ ‫مقدار‬ ‫یک‬ ‫دهد‬ ‫می‬ ‫اجازه‬. ‫دستورات‬MMX‫های‬ ‫ثبات‬ ‫در‬64‫بیتی‬ ‫دستورات‬SSE‫های‬ ‫ثبات‬ ‫در‬128 14/40 ]10[ www.mmAhmadian.ir
  17. 17. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫غیرمستقیم‬ ‫پرش‬ ‫طول‬:6‫بایت‬ 15/40 ]5[ www.mmAhmadian.ir
  18. 18. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫کردند‬ ‫می‬ ‫پرش‬ ‫قالب‬ ‫تابع‬ ‫به‬ ‫مستقیما‬ ‫قبل‬ ‫های‬ ‫روش‬. ‫دارد‬ ‫اضافی‬ ‫گام‬ ‫یک‬ ‫به‬ ‫نیاز‬ ‫روش‬ ‫این‬. ‫دساتور‬ ‫اینکاه‬ ‫دلیل‬ ‫به‬call‫از‬ ‫پاس‬‫آدرس‬ ‫قاراردادن‬ ‫بازگشت‬‫مای‬ ‫پارش‬ ‫مشاخص‬ ‫آدرس‬ ‫یاک‬ ‫باه‬ ‫درپشته‬ ‫کند‬ ‫طا‬ ‫عاالوه‬ ‫به‬ ‫فعلی‬ ‫دستور‬ ‫گر‬ ‫بازگشت،اشاره‬ ‫آدرس‬‫ول‬ ‫است‬ ‫فراخوانی‬ ‫دستور‬. 16/40 ]1،6[ www.mmAhmadian.ir
  19. 19. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫بخش‬ ‫از‬ ‫استفاده‬idata‫ساختار‬ ‫در‬PE. ‫ورودی‬ ‫های‬ ‫آدرس‬ ‫جدول‬ ‫ورودی‬ ‫توابع‬ ‫نسبی‬ ‫های‬ ‫آفست‬ ‫دارای‬ ‫شوند‬ ‫می‬ ‫تصحیح‬ ‫پایه‬ ‫آدرس‬ ‫اساس‬ ‫بر‬ ‫بارگذار‬ ‫با‬. ‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫از‬ ‫استفاده‬ ‫با‬ 17/40 ]1،6[ •‫سرویس‬ ‫توزیع‬ ‫جدول‬‫سیستم‬(SSDT) •‫با‬‫ب‬ ‫کنتارل‬ ‫ابتادا‬ ‫گاردد‬‫مای‬ ‫فراخاوانی‬ ‫سیساتمی‬ ‫تاابعی‬ ،‫کااربر‬ ‫برناماه‬ ‫در‬ ‫کاه‬ ‫زماانی‬ ،‫جادول‬ ‫این‬ ‫از‬ ‫استفاده‬‫باه‬ ‫رناماه‬ ‫توجا‬ ‫باا‬ ‫و‬ ‫مراجعه‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬ ‫جدول‬ ‫به‬ ‫عامل‬‫سیستم‬ ‫سپس‬ ، ‫شود‬‫می‬ ‫برگردانده‬ ‫عامل‬‫سیستم‬‫تاابع‬ ‫ناوع‬ ‫باه‬ ‫ه‬ ‫ا‬‫ا‬‫فراخ‬ ‫را‬ ‫آن‬ ‫و‬ ‫اه‬‫ا‬‫یافت‬ ‫را‬ ‫ااز‬‫ا‬‫موردنی‬ ‫اتمی‬‫ا‬‫سیس‬ ‫اابع‬‫ا‬‫ت‬ ‫آدرس‬ ،‫اده‬‫ا‬‫ش‬‫اتاده‬‫ا‬‫فرس‬ ‫اای‬‫ا‬‫ه‬‫اان‬‫ا‬‫آرگوم‬ ‫و‬ ‫اا‬‫ا‬‫موردتقاض‬ ‫اتمی‬‫ا‬‫سیس‬‫وانی‬ ‫کند‬‫می‬]3[. System Service Dispatch Table ‫سازی‬ ‫قالب‬‫توسط‬SSDT[2]
  20. 20. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 18/40 ‫پویا‬ ‫تحلیل‬ ‫نحوه‬: ‫پا‬ ‫و‬ ‫کارده‬ ‫جاایگزین‬ ‫ساابقه‬ ‫فایال‬ ‫ایجااد‬ ‫منظاور‬‫به‬ ‫دلخواهمان‬ ‫تابع‬ ‫آدرس‬ ‫با‬ ‫را‬ ‫جدول‬ ‫این‬ ‫در‬ ‫موجود‬ ‫های‬‫آدرس‬ ‫است‬ ‫کافی‬‫از‬ ‫س‬ ‫نماییم‬ ‫پرش‬ ‫سیستمی‬ ‫تابع‬ ‫اصلی‬ ‫آدرس‬ ‫به‬ ‫سابقه‬ ‫ثبت‬]3[. www.mmAhmadian.ir
  21. 21. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 19/40 System Service Dispatch Table ‫معایب‬ ‫و‬ ‫مزایا‬: •+‫در‬، ‫نوع‬ ‫توان‬‫می‬ ‫روش‬ ‫این‬‫فراخوانی‬ ‫سیستمی‬ ‫توابع‬ ‫ترتیب‬ ‫و‬ ‫تعداد‬‫داد‬ ‫تشخیص‬ ‫را‬ ‫شده‬ •-‫متأسفانه‬‫روش‬ ‫این‬‫تنها‬‫قادر‬‫است‬‫هساته‬ ‫ساطح‬ ‫سیستمی‬ ‫توابع‬‫خاانواده‬ ‫سیساتمی‬ ‫تواباع‬ ‫همانناد‬NT‫و‬ZW‫را‬‫رهگیاری‬ ‫جدول‬ ‫به‬ ‫وابسته‬ ‫که‬ ‫کاربر‬ ‫سطح‬ ‫سیستمی‬ ‫توابع‬ ‫رهگیری‬ ‫به‬ ‫قادر‬ ‫و‬ ‫نماید‬SSDT‫هستند‬‫نیست‬]3[. ‫جدول‬ ‫از‬ ‫نمایی‬SSDT‫و‬‫داخل‬ ‫سیستمی‬ ‫توابع‬ ‫آدرس‬‫آن‬
  22. 22. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 9-‫وصله‬‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫کردن‬ ‫ورودی‬ ‫آدرس‬ ‫جدول‬ ‫سازی‬ ‫قالب‬ ‫مشابه‬ ‫خروجی‬ ‫آدرس‬ ‫جدول‬ ‫دسترس‬ ‫قابل‬ ‫برنامه‬ ‫توسط‬ ‫که‬ ‫توابعی‬ ‫شامل‬ 20/40 ]1،5،6[ 10-‫ای‬ ‫کتابخانه‬ ‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫سازی‬ ‫قالب‬ ‫امکان‬API‫تزریق‬ ‫هنگام‬ ‫به‬DLL‫روش‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬DLL‫دارد‬ ‫وجود‬ ‫شده‬ ‫پروکسی‬. DLL‫نام‬ ‫به‬ ‫ورودی‬ ‫نقطه‬ ‫یک‬ ‫حاوی‬ ‫شده‬ ‫پروکسی‬Function Forwarder‫است‬. ‫آن‬ ‫در‬ ‫دیگری‬ ‫تابع‬ ‫به‬ ‫را‬ ‫تابع‬ ‫یک‬ ‫فراخوانی‬ ‫که‬DLL‫کند‬ ‫می‬ ‫محول‬. ‫سازی‬ ‫قالب‬ ‫های‬ ‫روش‬ ‫این‬ ‫سازی‬ ‫پیاده‬ ‫عملی‬ ‫نمونه‬: ‫موارد‬ ‫سایر‬: www.jbremer.org/x86-api-hooking-demystified/
  23. 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. 24. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 21/40 •Detours‫است‬ ‫سیستمی‬ ‫توابع‬ ‫فراخوانی‬ ‫مسیر‬ ‫کردن‬ ‫منحرف‬ ‫برای‬ ‫کتابخانه‬ ‫یک‬. •‫های‬ ‫ماشین‬ ‫روی‬ ‫بر‬ ‫که‬ ‫است‬ ‫باینری‬ ‫فایلهای‬ ‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ARM،x86،x64،IA64‫کنند‬ ‫می‬ ‫کار‬. •‫توابع‬ ‫در‬ ‫وقفه‬ ‫ایجاد‬ ‫برای‬ ‫موارد‬ ‫اکثر‬ ‫در‬Win32‫مانند‬ ‫کاربردی‬ ‫برنامه‬ ‫در‬ ‫که‬ ‫است‬debugger‫شود‬ ‫می‬ ‫استفاده‬ ‫ها‬. •‫شود‬‫می‬ ‫اضافه‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫پویا‬ ‫طور‬‫به‬ ‫توقف‬ ‫کد‬ ‫و‬ ‫کتابخانه‬ ‫این‬. •‫شرطی‬ ‫غیر‬ ‫پرش‬ ‫شیوه‬ ‫به‬]2.7[. •‫کند‬ ‫می‬ ‫ایجاد‬ ‫هدف‬ ‫تابع‬ ‫در‬ ‫را‬ ‫ها‬ ‫،وقفه‬ ‫پردازه‬ ‫در‬ ‫باینری‬ ‫بازنویسی‬ ‫طریق‬ ‫از‬. •‫کتابخانه‬ ‫این‬ ‫بر‬ ‫عالوه‬Detours‫ورودی‬ ‫جدول‬ ‫ویرایش‬ ‫برای‬ ‫توابعی‬ ‫شامل‬DLL‫است‬ ‫باینری‬ ‫فایل‬ ‫هر‬. •‫و‬ ‫کرد‬ ‫اضافه‬ ‫موجود‬ ‫باینری‬ ‫به‬ ‫را‬ ‫دلخواه‬ ‫داده‬ ‫سگمت‬ ‫نوع‬ ‫هر‬ ‫بتوان‬ ‫تا‬DLL‫کرد‬ ‫اضافه‬ ‫جدید‬ ‫پردازه‬ ‫یک‬ ‫در‬ ‫را‬. ]6[ www.mmAhmadian.ir
  25. 25. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫برنامه‬Simple‫نموناه‬ ‫ترین‬ ‫ساده‬Dll‫ای‬ ‫کتابخانااه‬ ‫از‬ ‫آن‬ ‫در‬ ‫کااه‬ ‫اساات‬Detours ‫شود‬ ‫می‬ ‫لستفاده‬. ‫تغییر‬API‫کارد‬ ‫اضاافه‬ ‫و‬ ‫ویندوز‬‫ن‬ ‫هایی‬ ‫قابلیت‬:‫تغییر‬‫تابع‬Sleep 22/40 ]6[ www.mmAhmadian.ir
  26. 26. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫نیست‬ ‫موجود‬ ‫هدف‬ ‫برنامه‬ ‫متن‬ ‫که‬ ‫زمانی‬. ‫یک‬ ‫در‬ ‫باید‬ ‫توابع‬DLL‫بگیرند‬ ‫قرار‬. DLL‫تابع‬ ‫فراخوانی‬ ‫با‬ ‫اجرا‬ ‫زمان‬ ‫در‬DetourCreateProcessWithDLLEx‫مای‬ ‫بارگاذاری‬ ‫جدیاد‬ ‫پاردازه‬ ‫یاک‬ ‫در‬ ‫شود‬ ‫فایل‬ ‫ورودی‬ ‫جدول‬ ‫تغییر‬ ‫با‬PE‫حافظه‬ ‫درون‬ ‫در‬ ‫هدف‬ ‫اجرای‬ ‫باعث‬DLL‫شده‬ ‫تزریق‬‫اولین‬ ‫عنوان‬ ‫به‬DLL‫برنامه‬ 23/40 ]5[ www.mmAhmadian.ir
  27. 27. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ‫کتابخانه‬Detours‫آن‬ ‫کمک‬ ‫به‬ ‫توان‬ ‫می‬ ‫که‬ ‫است‬ ‫توابعی‬ ‫شامل‬ ‫را‬ ‫دلخواه‬ ‫های‬ ‫سگمنت‬(Payload)‫کرد‬ ‫پیوست‬ ‫اجرایی‬ ‫های‬ ‫فایل‬ ‫به‬. ‫ورودی‬ ‫جدول‬ ‫یا‬DLL‫کرد‬ ‫ویرایش‬ ‫را‬. ‫است‬ ‫پذیر‬ ‫برگشت‬ ‫کامال‬ ‫توابع‬ ‫این‬ ‫تغییرات‬. 24/40 ]6[ www.mmAhmadian.ir
  28. 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. 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. 30. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 96%‫دارند‬ ‫سازی‬ ‫قالب‬ ‫به‬ ‫نیاز‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬! ‫کنند‬ ‫می‬ ‫استفاده‬ ‫ها‬ ‫کیت‬ ‫روت‬ ‫از‬ ‫امروزه‬ ‫پیشرفته‬ ‫بدافزارهای‬ ‫اکثر‬. ‫دادن‬ ‫قرار‬ ‫حمله‬ ‫جای‬ ‫به‬ ‫میتوانند‬ ‫بدافزارها‬Persistent Control Data‫روی‬ ‫بار‬ ‫را‬ ‫خاود‬ ‫هدف‬Transient Control Data‫بزارند‬: ‫د‬ ‫مثال‬‫ر‬return-oriented rootkits 26/40 ‫مهاجم‬ ‫مدل‬ ‫فرضیات‬: ‫مهاجم‬ ‫هدف‬:‫همیشگی‬ ‫صورت‬ ‫به‬ ‫هسته‬ ‫سطح‬ ‫در‬ ‫بدافزار‬ ‫نصب‬ ‫دارد‬ ‫را‬ ‫هسته‬ ‫به‬ ‫مرتبط‬ ‫حافظه‬ ‫دستکار‬ ‫توانایی‬ ‫شودمهاجم‬ ‫می‬ ‫فرض‬ ‫بنابراین‬(.‫داخل‬ ‫مهاجم‬ ‫نوعی‬ ‫به‬‫ی‬) ‫هسته‬ ‫سطح‬ ‫در‬ ‫ماژول‬ ‫بازگذاری‬ ‫امکان‬ ‫قربانی‬ ‫سیستم‬ ‫مدل‬ ‫فرضیات‬: ‫امنیتی‬ ‫های‬ ‫مکانیزم‬ ‫دارای‬ASLR + stack Canary+ W^X ]4[ www.mmAhmadian.ir
  31. 31. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 27/40 ‫امنیتی‬ ‫های‬ ‫مکانیزم‬ASLR + stack Canary + W^X‫محافظات‬ ‫خاارجی‬ ‫مهااجم‬ ‫برابار‬ ‫در‬ ‫را‬ ‫قرباانی‬ ‫سیساتم‬ ‫تنها‬ ‫دارد‬ ‫کنترل‬ ‫برنامه‬ ‫بر‬ ‫که‬ ‫مهاجمی‬ ‫توسط‬ ‫نه‬ ‫کند‬ ‫می‬! ‫مهاجم‬ ‫روش‬ ‫این‬ ‫در‬‫تواند‬ ‫می‬‫ندارد‬ ‫آنها‬ ‫روی‬ ‫بر‬ ‫تصرفی‬ ‫هیچ‬ ‫کاربر‬ ‫که‬ ‫کند‬ ‫دستکاری‬ ‫را‬ ‫توابعی‬! ]4[ www.mmAhmadian.ir
  32. 32. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 28/40 ‫یییی‬ ]4[ www.mmAhmadian.ir
  33. 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. 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. 35. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 32/40 ‫بتوان‬ ‫اگر‬name_list‫به‬ ‫ارسالی‬ ‫های‬ ‫ورودی‬ ‫توان‬ ‫می‬ ‫کرد‬ ‫کنترل‬ ‫را‬list-del‫کرد‬ ‫کنترل‬ ‫را‬. ]4[ www.mmAhmadian.ir
  36. 36. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 33/40 ‫وابستگی‬ ‫معیار‬(Binding) ‫انداز‬ ‫راه‬ ‫بخش‬ ‫و‬ ‫انداز‬ ‫راه‬ ‫مسیرهای‬ ‫تعداد‬ ‫میان‬ ‫رابطه‬ ‫تر‬ ‫سخت‬ ‫مهاجم‬ ‫کار‬ ‫کمتر‬ ‫وابستگی‬ ‫هرچه‬(loosely bound) ‫پوشش‬ ‫معیار‬(Coverage:) ‫کامل‬ ‫پوشش‬(Full) ‫ناقص‬ ‫پوشش‬(Partial) ‫برسد‬ ‫کامل‬ ‫پوشش‬ ‫به‬ ‫تا‬ ‫شود‬ ‫ادغام‬ ‫هوک‬ ‫های‬ ‫روش‬ ‫سایر‬ ‫با‬ ‫باید‬. (1‫انداز‬ ‫راه‬ ‫بخش‬(Trigger) •‫در‬ ‫مثال‬8-byte write‫دستور‬mov •‫انداز‬ ‫راه‬ ‫مسیر‬(trigger path) (2payload ‫اجزا‬ ]4[ www.mmAhmadian.ir
  37. 37. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 34/40 ‫سازی‬ ‫خودکار‬ ‫مراحل‬ (1‫بر‬ ‫زمان‬ (2‫بسیار‬ ‫خطای‬ ‫معرض‬ ‫در‬ ‫دستی‬ ‫استخراج‬ ‫معایب‬ (1‫ایس‬ ‫صورت‬ ‫به‬ ‫برنامه‬ ‫برش‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬‫تا‬ (2‫نمادین‬ ‫اجرای‬ ‫تکنیک‬ ‫از‬ ‫استفاده‬ ]4[ www.mmAhmadian.ir
  38. 38. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 35/40 ‫برش‬(Slice:) ‫گ‬ ‫می‬ ‫تاثیر‬ ‫عالقه‬ ‫مورد‬ ‫نقطه‬ ‫روی‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫بالقوه‬ ‫طور‬ ‫به‬ ‫که‬ ‫برنامه‬ ‫از‬ ‫قسمتی‬‫ذارد‬. ‫زوج‬ ‫یک‬ ‫صورت‬ ‫به‬(N,V) ‫م‬ ‫در‬ ‫شده‬ ‫محاسبه‬ ‫مقادیر‬ ‫روی‬ ‫مستقیم‬ ‫غیر‬ ‫یا‬ ‫مستقیم‬ ‫تاثیر‬ ‫که‬ ‫برنامه‬ ‫یک‬ ‫از‬ ‫هایی‬ ‫قسمت‬‫بارش‬ ‫عیاار‬C ‫معیار‬ ‫با‬ ‫رابطه‬ ‫در‬ ‫برنامه‬ ‫برش‬ ،‫دارند‬C‫دهد‬ ‫می‬ ‫تشکیل‬ ‫را‬. ‫برنامه‬ ‫برش‬ ‫شوند‬ ‫پیدا‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬ ‫باید‬. ‫دارند‬ ‫وجود‬ ‫زیادی‬ ‫انداز‬ ‫راه‬ ‫های‬ ‫بخش‬! ‫هستند‬ ‫مفید‬ ‫آنها‬ ‫از‬ ‫برخی‬! ‫ایستا‬ ‫برش‬: ‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫بدون‬ ‫ایستا‬ ‫صورت‬ ‫به‬ ‫برش‬‫پویا‬: ‫صورت‬ ‫به‬‫با‬ ‫پویا‬‫ها‬ ‫ورودی‬ ‫برای‬ ‫مقدار‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ]4[ www.mmAhmadian.ir
  39. 39. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 36/40 (1‫یافتن‬mov‫اساس‬ ‫بر‬ ‫ها‬CFG‫از‬ ‫شده‬ ‫استخراج‬IDA pro (2Backward‫دهد‬ ‫می‬ ‫تغییر‬ ‫را‬ ‫منبع‬ ‫که‬ ‫دستورالعملی‬ ‫اولین‬ ‫یافتن‬ ‫و‬ ‫کردن‬ (3‫سراسری‬ ‫متغیر‬ ‫به‬ ‫وابسته‬ ‫مقصد‬ ‫و‬ ‫مبدا‬ ‫اگر‬ ‫مسیر‬ ‫استخراج‬ ‫مقاله‬ ‫در‬ ‫برش‬ ‫نحوه‬]4[ ‫برش‬ ‫از‬ ‫ای‬ ‫نمونه‬‫ایستا‬[11] ‫ابزار‬Slicer ‫با‬BFS ]11[ www.mmAhmadian.ir
  40. 40. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 37/40 ‫نمادین‬ ‫اجرای‬ ‫جلو‬ ‫به‬ ‫رو‬ ‫نمادین‬ ‫اجرای‬ ‫از‬ ‫استفاده‬ ‫پویا‬ ‫سازی‬ ‫قالب‬ ‫برای‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬ ‫و‬ ‫ها‬ ‫مسیر‬ ‫بررسی‬ ‫برای‬ ‫پایه‬ ‫بلوک‬ ‫هر‬ ‫انتقال‬ ‫با‬‫به‬ ‫استخراجی‬ ‫مسیرهای‬Pyvex(‫قالب‬ ‫در‬VEX IR) ‫به‬ ‫تبدیل‬Z3 expression ‫شرطی‬ ‫انشعابات‬ ‫پذیری‬ ‫ارضا‬ ‫بررسی‬ ‫کنترلی‬ ‫رجیسترهای‬ ‫مورد‬ ‫در‬ ‫جزئی‬ ‫اطالعات‬ ‫تولید‬ ]4[ www.mmAhmadian.ir
  41. 41. ‫م‬.‫احمدیان‬ ‫مهدی‬-‫امن‬ ‫های‬ ‫سیستم‬ ‫تحلیل‬ ‫و‬ ‫طراحی‬ ‫آزمایشگاه‬-‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ 38/40 ]4[ ‫ها‬ ‫ویژگی‬ ‫های‬ ‫تکنیک‬ ‫زدن‬ ‫دور‬HookSafe‫و‬SBCFI www.mmAhmadian.ir
  42. 42. ‫خط‬8:‫شود‬ ‫می‬ ‫تعریف‬ ‫پشته‬ ‫در‬ ‫محلی‬ ‫ساختار‬ ‫یک‬. ‫است‬ ‫دیگر‬ ‫ساختار‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یک‬ ‫دارای‬ ‫ساختار‬ ‫این‬(‫خط‬2) ‫خط‬ ‫در‬ ‫است‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫که‬ ‫ساختار‬ ‫این‬10‫شود‬ ‫می‬ ‫فراخوانی‬. ‫کند‬ ‫ایجاد‬ ‫پویا‬ ‫ساختار‬ ‫به‬ ‫گره‬ ‫اشاره‬ ‫در‬ ‫تغییر‬ ‫پویا‬ ‫هوک‬ ‫کمک‬ ‫با‬ ‫تواند‬ ‫می‬ ‫مهاجم‬(‫خط‬ ‫در‬2) ‫بگیرد‬ ‫دست‬ ‫به‬ ‫را‬ ‫ساختار‬ ‫کنترل‬ ‫ده‬ ‫خط‬ ‫در‬ ‫سپس‬ ‫جای‬ ‫به‬‫گرفتن‬ ‫هدف‬Ret address‫مستقیم‬ ‫صورت‬ ‫به‬ ‫تابع‬ ‫به‬ ‫گر‬ ‫اشاره‬ ‫یا‬‫پشات‬ ‫در‬ ‫محلای‬ ‫گار‬ ‫اشااره‬ ‫مهاجم‬ ،‫را‬ ‫ه‬ ‫دهد‬ ‫می‬ ‫قرار‬ ‫هدف‬.
  43. 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. 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. 45. ‫شما‬ ‫توجه‬ ‫حسن‬ ‫از‬ ‫باتشکر‬... www.mmAhmadian.ir
  46. 46. www.mmAhmadian.ir

×