SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
‫اسفند‬‫ماه‬1395
Control Flow Integrity
(CFI)
‫کنترل‬ ‫جریان‬ ‫صحت‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬‫گیری‬
‫پیاده‬‫سازی‬‫عملی‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫مسئله‬ ‫جایگاه‬
3
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫پذیری‬ ‫آسیب‬ ‫و‬ ‫حمالت‬‫حافظه‬ ‫های‬
•‫پذیری‬ ‫آسیب‬‫حافظه‬ ‫تخریب‬ ‫های‬
•‫پشته‬ ‫در‬ ‫بافر‬ ‫سرریز‬
•‫هیپ‬ ‫در‬ ‫بافر‬ ‫سرریز‬
•‫سرریز‬‫عددی‬ ‫مقدار‬
•‫رشته‬‫های‬‫قالب‬‫بندی‬1
•‫گرهای‬ ‫اشاره‬‫معلق‬2
1. Format String Vulnerabilities
2. Dangling Pointer Reference
3. Control-flow Hijack
4. Data-only Attack
•‫حافظه‬ ‫تخریب‬ ‫حمالت‬
•‫کد‬ ‫تخریب‬
•‫جریان‬ ‫ربایش‬‫کنترل‬3
•‫حمالت‬‫داده‬‫ای‬4
•‫اطالعات‬ ‫نشت‬
•‫خدمات‬ ‫از‬ ‫ممانعت‬
4
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫مسئله‬ ‫طرح‬
•‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫آثار‬ ‫از‬ ‫یکی‬:‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫امکان‬‫در‬‫اختیار‬‫گرفتن‬‫سامانه‬‫قربانی‬
•‫نمونه‬:‫سازی‬ ‫قالب‬
‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫کنترل‬‫اجرایی‬ ‫جریان‬‫ل‬ ‫من‬ ‫کلد‬ ‫مدلدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬‫آن‬
‫است‬]12[.
‫توسط‬‫تاب‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬‫و‬‫مددد‬ ‫هدایت‬‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬‫آید‬‫می‬]14[.
‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫ن‬ ‫و‬ ‫اجراشلده‬ ‫توانلد‬ ‫می‬ ‫تاب‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫تیدله‬
‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫شود‬]13[.
5
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫مسئله‬ ‫طرح‬‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
•‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬
•‫تشخیص؟‬ ‫نحوه‬
detour
trampoline
6
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫مسئله‬ ‫طرح‬‫قالب‬‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬Nop
•‫تشخیص؟‬ ‫نحوه‬
7
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫مقدمه‬‫مسئله‬ ‫طرح‬‫سازی‬ ‫قالب‬ ‫های‬ ‫روش‬
1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop
3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn
4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬
5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE
6‫مستقیم‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬
7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬
1
8
9‫از‬‫وصله‬ ‫طریق‬‫جدول‬‫خروجی‬ ‫آدرس‬
10‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬‫کتابخانه‬‫ای‬
‫طریق‬ ‫از‬‫آدرس‬ ‫جدول‬ ‫وصله‬‫ورودی‬
• [7] 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.
• [12] 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.
• [13] Sikorski M, Honig A. Practical malware analysis: the hands-on guide
to dissecting malicious software. no starch press; 2012.
• [15] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of
Technology, 2004.
• [16] Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox."
IEEE Security and Privacy 5.2 (2007): 32-39.
8
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫کنترل‬ ‫جریان‬ ‫صحت‬‫بررسی‬ ‫مورد‬ ‫منابع‬
• [1] J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels,” in Proceedings of
the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014.
• [2] E. Goktas , et al. “Out Of Control: Overcoming Control-Flow Integrity,” in Proceedings of the 35th IEEE Symposium on
Security and Privacy (SP'14), May 2014.
• [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of the 23rd
USENIX Security Symposium, Aug 2014.
• [4] C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM,” in Proceedings of the 23rd USENIX
Security Symposium, Aug 2014.
• [5] L. Davi, , et al. “Stitching the Gadgets: On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection,” in
Proceedings of the 23rd USENIX Security Symposium, Aug 2014.
• [6] C. Zhang, , et al. Practical Control Flow Integrity & Randomization for Binary Executables,” in Proceedings of the 34th
IEEE Symposium on Security and Privacy (SP'13), May 2013.
• [8] M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations, and Applications,” ACM Transactions on
Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct 2009
• [7] 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.
10
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫کنترل‬ ‫جریان‬ ‫صحت‬‫اصلی‬ ‫منابع‬
• [9] M. Abadi, et al. “Control Flow Integrity: Principles, Implementations, and Applications,” in proceedings of
the 12th ACM conference on Computer and Communications Security (CCS'05), pp. 340-353, Nov 2005.
• [10] M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal
Methods and Software Engineering, Springer Berlin Heidelberg, pp.
111- 124, 2005.
• [8] M. Abadi, et al. “Control-Flow Integrity: Principles,
Implementations, and Applications,” ACM Transactions on
Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct
2009
Dr. Martin Abadi
Professor of Computer
Science,
University of California,
Santa Cruz
, Microsoft Research
And Google.
• [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of
the 23rd USENIX Security Symposium, Aug 2014.
• [7] 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.
11
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫موجود‬ ‫وضعیت‬
•‫سال‬ ‫از‬1997‫حفاظتی‬ ‫راهکارهای‬ ‫کنون‬ ‫تا‬‫مختلفی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬.
•‫معایب‬:
•‫پوشش‬‫محدود‬ ‫حوزه‬
•‫تعریف‬ ‫عدم‬‫بینانه‬ ‫واق‬ ‫حمله‬ ‫مدل‬
•‫راهکارها‬ ‫زدن‬ ‫دور‬‫سهولت‬ ‫به‬ ‫آنهم‬ ‫مهاجمین‬ ‫توسط‬
•‫بر‬ ‫تکیه‬‫غیرصوری‬ ‫استتنتاج‬‫و‬‫پنهان‬ ‫مفروضات‬
•‫باید‬ ‫راهکار‬:
•‫فهم‬ ‫قاب‬‫و‬ ‫واضح‬ ،‫ابهام‬ ‫بدون‬
•‫قوی‬ ‫ضمانت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬ ‫در‬
•‫برای‬ ‫کاربرد‬ ‫قاب‬‫جدید‬ ‫کدهای‬ ‫و‬ ‫قدیمی‬ ‫کدها‬(‫موجود‬ ‫کدهای‬)
•‫کارایی‬ ‫و‬ ‫عملکرد‬‫ول‬ ‫ق‬ ‫قاب‬
‫هدف‬Abadi
12
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫تعریف‬CFI
•CFI‫که‬ ‫است‬ ‫امنیتی‬ ‫مشی‬ ‫خط‬‫اجرای‬‫ملزم‬ ‫را‬ ‫برنامه‬‫می‬‫تا‬ ‫کند‬‫مسیرها‬ ‫از‬ ‫یکی‬ ‫صرفا‬(‫شده‬ ‫مشخص‬ ‫اجرا‬ ‫از‬ ‫پیش‬)‫ک‬ ‫جریان‬ ‫گراف‬‫نترل‬
‫کند‬ ‫ال‬ ‫دن‬ ‫را‬ ‫برنامه‬.
“ The CFI security policy dictates that software execution must follow a path of a Control-Flow Graph
(CFG) determined ahead of time. ”
•CFG‫کمک‬ ‫به‬ ‫کار‬ ‫این‬ ‫در‬«‫باینری‬ ‫کد‬ ‫ایستای‬ ‫تحلی‬»‫می‬ ‫بدست‬‫آید‬.
13
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫تعریف‬CFG
•‫قطعه‬‫پایه‬1:
‫یک‬‫ها‬ ‫دستورالعم‬ ‫از‬ ‫پیوسته‬ ‫اله‬ ‫دن‬‫که‬ ‫است‬‫جریان‬‫کنترل‬‫در‬‫اله‬ ‫دن‬ ‫این‬ ‫طی‬‫جهش‬ ‫بدون‬ ‫و‬ ‫مستقیم‬‫است‬.
‫به‬،‫دیگر‬ ‫ارت‬ ‫ع‬‫اله‬ ‫دن‬‫از‬ ‫ای‬‫دستورالعم‬‫ها‬‫که‬‫اله‬ ‫دن‬ ‫انتهای‬ ‫در‬ ‫مگر‬ ‫پرشی‬ ‫هیچ‬‫ندارد‬.
1. Basic Block (BB)
BB 1
BB 2
•‫کنترل‬ ‫جریان‬ ‫گراف‬‫ایستا‬:
‫جهتدار‬ ‫گرافی‬‫به‬‫بصورت‬G(V,E)‫است‬‫که‬:
‫گره‬vi ∈ V‫بطوریکه‬ ،‫است‬vi‫یک‬‫پایه‬ ‫قطعه‬‫برنامه‬ ‫کد‬ ‫از‬‫است‬.
‫ی‬‫ال‬(vi , vj ) ∈ E‫است‬‫اگر‬ ،‫از‬ ‫کنترل‬ ‫انتقال‬ ‫امکان‬‫قطعه‬vi‫به‬‫قطعه‬vj‫در‬‫زمان‬‫اجرا‬‫وجود‬‫داشته‬‫باشد‬.
14
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫مفروضات‬ ‫و‬ ‫حمله‬ ‫مدل‬
•‫قابلیت‬‫های‬‫مهاجم‬:
•‫تغییر‬ ‫به‬ ‫قادر‬‫کلیه‬‫مقادیر‬‫داده‬‫ای‬‫حافظه‬ ‫در‬‫در‬‫زمان‬ ‫هر‬(‫هیپ‬ ‫و‬ ‫پشته‬ ،‫داده‬ ‫بخش‬)
•‫به‬ ‫قادر‬‫ات‬ ‫ث‬ ‫غالب‬ ‫مقادیر‬ ‫تغییر‬‫ها‬( .‫جز‬ ‫به‬IP‫دیگر‬ ‫ها‬ ‫برنامه‬ ‫های‬ ‫ات‬ ‫ث‬ ‫و‬)
•‫مفروضات‬:
•‫کد‬‫تغییر‬ ‫غیرقاب‬
•‫اجرا‬ ‫غیرقاب‬ ‫های‬‫داده‬
•‫یکتا‬ ‫های‬‫شناسه‬
15
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫اعمال‬ ‫رویه‬
•‫رویه‬:‫اعتبارسنجی‬‫مقصد‬‫کنترل‬ ‫انتقال‬‫برمبنای‬CFG
‫در‬‫مواقع‬ ‫از‬ ‫بسیاری‬‫یک‬ ‫به‬ ‫کنترل‬ ‫جریان‬ ‫انتقال‬ ،‫ایستا‬ ‫یا‬ ‫ثابت‬ ‫مقصد‬‫ت‬‫صور‬‫میگیرد‬.
‫بصورت‬ ‫تواند‬ ‫می‬ ‫مقصد‬ ‫اعتبارسنجی‬‫ایستا‬‫گیرد‬ ‫انجام‬.
‫مثال‬:‫برنامه‬ ‫کد‬ ‫در‬ ‫شده‬ ‫تعریف‬ ‫توابع‬ ‫ساده‬ ‫فراخوانی‬
‫موارد‬ ‫برخی‬ ‫در‬‫در‬ ‫کنترل‬ ‫جریان‬ ‫مقصد‬‫زمان‬‫محاسبه‬ ‫اجرا‬‫معلوم‬ ‫و‬‫گردد‬‫می‬.
‫اعتبارسنجی‬ ،‫شرایط‬ ‫این‬ ‫در‬‫اجرا‬ ‫زمان‬ ‫در‬ ‫بایست‬‫می‬‫انجام‬‫پذیرد‬.
‫مثال‬:‫مقداردهی‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫که‬ ،‫توابع‬ ‫گر‬ ‫اشاره‬ ‫فراخوانی‬‫شوند‬‫می‬.
‫به‬ ‫نیاز‬‫دستور‬ ‫سه‬‫جدید‬
17
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫اعمال‬ ‫رویه‬‫جدید‬ ‫دستورهای‬
•label ID:
•call ID, DstReg:
•ret ID:
•‫اثر‬ ‫بی‬ ‫دستور‬ ‫یک‬(NOP)‫که‬‫گزاری‬‫برچسب‬ ‫برای‬ ‫تنها‬‫است‬.
•‫و‬‫رشته‬ ‫یک‬‫بیت‬‫مقدار‬ ‫معادل‬ID‫را‬‫همان‬ ‫در‬‫کد‬ ‫حافظه‬ ‫از‬ ‫بخش‬‫درج‬‫کند‬‫می‬.
‫دستور‬ ‫یک‬‫فراخوانی‬‫آدرس‬ ‫در‬ ‫موجود‬ ‫کد‬ ‫به‬ ‫را‬ ‫کنترل‬ ‫که‬‫محتووای‬‫ثبوات‬DstReg‫منتقو‬
‫به‬ ‫کند‬‫می‬‫با‬ ‫کد‬ ‫آن‬ ‫که‬ ‫شرطی‬‫برچسب‬ID‫آغاز‬‫شود‬.
•‫دستور‬‫متناظر‬ ‫بازگشت‬‫فوق‬ ‫فراخوانی‬ ‫دستور‬ ‫با‬‫؛‬
•‫را‬ ‫کنترل‬ ‫یعنی‬‫طی‬‫شر‬ ‫به‬‫به‬‫کد‬‫اشاره‬‫بوا‬ ‫کود‬ ‫آن‬ ‫که‬ ‫گرداند‬‫بازمی‬ ‫بازگشت‬ ‫آدرس‬ ‫توسط‬ ‫شده‬‫برچسوب‬
ID‫شود‬ ‫آغاز‬.
18
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫اعمال‬ ‫رویه‬‫تکمیلی‬ ‫توضیحات‬
1-‫کدباینری‬ ‫ایستا‬ ‫تحلی‬ ‫با‬CFG‫می‬ ‫بدست‬‫آید‬.
•‫برای‬‫انتقال‬‫مقاصد‬ ‫همه‬ ‫فهرست‬ ‫پویا‬ ‫های‬‫می‬ ‫بدست‬ ‫ممکن‬‫آید‬.
2-‫ابتدای‬ ‫در‬‫مقصد‬ ‫هر‬‫یک‬ ،‫ممکن‬Label ID‫فرد‬ ‫به‬ ‫منحصر‬‫می‬ ‫درج‬‫گردد‬.
•‫طبق‬ ‫که‬ ‫مقصدهایی‬ ‫برای‬CFG‫دارای‬‫مشترک‬ ‫مبدا‬‫هستند‬Label ID‫یکسانی‬‫می‬ ‫درج‬‫شود‬.
3-‫در‬‫مبداء‬ ‫هر‬‫یک‬ ،‫پویا‬ ‫بررسی‬ ‫عملیات‬(call ID, DstReg‫یا‬ret ID)‫می‬ ‫درج‬‫گردد‬.
•‫هدف‬:‫تضمین‬‫برچسب‬ ‫کند‬‫مبداء‬‫مقصد‬ ‫برچسب‬ ‫و‬‫مطابقت‬‫دارند‬.
19
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫اعمال‬ ‫رویه‬‫مثال‬


20
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬
•‫سازی‬‫پیاده‬CFI‫از‬ ‫استفاده‬ ‫با‬‫کد‬ ‫بازنویسی‬‫باینری‬1‫یا‬‫تدهیز‬ ‫روش‬‫کد‬2‫امکان‬‫پذیر‬‫است‬.
1. binary rewriting
2. Code Instrumentation
‫از‬ ‫استفاده‬Vulcan]17-18[
‫استخراج‬ ‫و‬ ‫تحلی‬ ‫عملیات‬CFG
‫تجهیز‬‫ماشین‬ ‫کد‬
•‫اصلی‬ ‫پیچیدگی‬‫پیاده‬‫سازی‬‫این‬‫روش‬:
•‫استخراج‬‫صحیح‬CFG
•‫درست‬ ‫شناسایی‬‫همه‬‫مقصدهای‬ ‫و‬ ‫مبداها‬‫جریان‬ ‫انتقال‬‫پویا‬‫است‬.
22
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬1
•‫ای‬‫نمونه‬‫از‬‫کد‬ ‫تجهیز‬‫فراخوانی‬‫اشاره‬‫گر‬‫تابع‬
‫از‬ ‫استفاده‬‫دستور‬prefetchnta [ID]‫عنوان‬ ‫به‬label ID
23
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬2
•‫ای‬‫نمونه‬‫از‬‫از‬‫تجهیز‬‫تابع‬ ‫از‬ ‫بازگشت‬ ‫کد‬
24
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫سربار‬ ‫هزینه‬ ‫ارزیابی‬
•‫محیط‬‫آزمایش‬:
• Windows XP SP2 (Safe Mode)
• Intel Pentium-4 (x86) 1.8 GHz
• 512 MB RAM
• Microsoft Visual C++ 7.1 (using full optimizations )
• SPEC1-2000 benchmarks
•‫زمان‬‫استخراج‬CFG‫و‬‫تدهیز‬CFI:‫از‬ ‫کمتر‬10‫ثانیه‬‫باینری‬ ‫هر‬ ‫برای‬
•‫افزایش‬‫حدم‬‫اثر‬ ‫در‬ ‫باینری‬‫تدهیز‬CFI:%8‫افزایش‬‫حجم‬‫بطور‬‫متوسط‬
1. Standard Performance Evaluation Corporation
26
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫سربار‬ ‫هزینه‬ ‫ارزیابی‬‫اجرا‬ ‫زمان‬ ‫سربار‬
‫تحمیلی‬ ‫سربار‬ ‫هزینه‬ ‫میانگین‬:%16
27
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫امنیتی‬ ‫ارزیابی‬
•‫مورد‬ ‫چند‬ ‫بررسی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫مختلف‬ ‫انواع‬ ‫از‬‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫هدف‬ ‫با‬.
‫پذیری‬‫آسیب‬JPEG‫مربوط‬‫به‬‫کتابخانه‬GDI+
‫یک‬‫ساده‬ ‫برنامه‬‫پذیر‬ ‫آسیب‬‫به‬‫زبان‬C‫برای‬‫محاسبه‬‫آرایه‬ ‫یک‬ ‫میانه‬
‫مجموعه‬18‫تایی‬‫پویا‬ ‫بافرهای‬ ‫سرریز‬ ‫از‬
28
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫صوری‬ ‫مدل‬
•‫حالت‬ ‫یک‬ ،‫ماشین‬ ‫مدل‬ ‫این‬ ‫در‬‫اجرا‬1‫شام‬:
1. execution state
Mc:‫کد‬ ‫حافظه‬
Md:‫داده‬ ‫حافظه‬
R:‫ها‬‫ثبات‬ ‫مقادیر‬
pc:‫برنامه‬ ‫شمارنده‬
•،‫مدل‬ ‫همین‬ ‫مبنای‬ ‫بر‬‫عملیاتی‬ ‫معنای‬9‫دستورالعم‬‫ماشین‬‫توصیف‬‫گردد‬‫می‬.
• If Mc(pc) contains the encoding of add rd,rs,rt , and the current state has code memory Mc,
data memory Md, program counter value pc, and register values R, and if pc + 1 is within
the domain of Mc, then in the next state the code memory and data memory are still Mc and
Md, respectively, pc is incremented, and R is updated so that it maps rd to R(rs) + R(rt)
•‫مثال‬:‫دستورالعم‬ ‫عملیاتی‬ ‫معنای‬add rd,rs,rt
•‫توضیح‬ ‫این‬‫در‬‫صورت‬ ‫بدین‬ ‫ماشین‬ ‫حالت‬ ‫انتقال‬ ‫قالب‬‫است‬:
30
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫صوری‬ ‫مدل‬
•‫برای‬‫مهاجم‬‫موجب‬ ‫آن‬ ‫های‬‫قابلیت‬ ‫با‬ ‫متناسب‬ ‫که‬ ‫شود‬‫می‬ ‫تعریف‬ ‫ای‬‫قاعده‬ ‫نیز‬‫حالت‬ ‫انتقال‬‫ماشین‬‫گردد‬‫می‬:
1. attack execution
•‫رابطه‬a⟶‫معنای‬ ‫به‬‫حمله‬ ‫اجرای‬1‫است‬‫است‬ ‫قادر‬ ‫که‬‫حافظه‬ ‫وضعیت‬‫ثباتها‬ ‫مقادیر‬ ‫و‬‫کند‬ ‫دستکاری‬ ‫را‬.
•‫یک‬‫برنامه‬‫تجهیزشده‬‫بصورت‬I(Mc)‫بیان‬‫می‬‫گردد‬‫وجود‬ ‫آن‬ ‫معنای‬ ‫که‬‫بررسی‬‫های‬‫کود‬ ‫در‬ ‫دقیقی‬‫برناموه‬‫اسوت‬‫کوه‬‫تضومین‬
‫می‬‫کنند‬‫روند‬‫مطابق‬ ‫کنترل‬ ‫جریان‬CFG‫از‬‫تعریف‬ ‫پیش‬‫شده‬‫است‬.
•‫عملیات‬ ‫نتایج‬ ‫درباره‬ ‫استنتاجی‬ ‫توان‬‫می‬ ‫شده‬ ‫تعریف‬ ‫تاکنون‬ ‫آنچه‬ ‫براساس‬ ‫اکنون‬‫ارائه‬ ‫تجهیز‬‫کرد‬.
31
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
Abadi’s CFI‫صوری‬ ‫مدل‬‫تر‬ ‫پیشرفته‬ ‫مدل‬
1. attack execution
32
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
•CFI‫حفاظت‬ ‫عدم‬‫کام‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬(‫تنها‬‫ربایش‬‫کنترل‬ ‫جریان‬)
‫راهکار‬:Software Fault Isolation(SFI)
‫نرم‬ ‫مکانیزم‬‫افزاری‬‫تضمین‬ ‫که‬‫می‬‫کند‬‫کلیه‬‫دسترسی‬‫نرم‬ ‫های‬‫ها‬‫افزار‬‫به‬‫سیستم‬ ‫منابع‬(‫ج‬ ‫از‬‫حافظوه‬ ‫مله‬)،
‫آن‬ ‫به‬ ‫متعلق‬ ‫محدوده‬ ‫درون‬‫نرم‬‫باشد‬ ‫افزار‬.
• [20] R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating
Systems Review, vol. 27, no. 5, pp. 203-216, ACM, 1993.
• [21] S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security
Symposium, pp. 209-224, Aug 2006
• [22] M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity
Software Fault Isolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115-
128, Oct 2009.
• [23] Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi-
principal Modules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct
2011
34
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
•CFI‫حفاظت‬ ‫عدم‬‫کام‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬(‫تنها‬‫ربایش‬‫کنترل‬ ‫جریان‬)
‫راهکار‬:Software Memory Access Control(SMAC)]19[
•‫با‬ ‫دسترسی‬ ‫کنترل‬‫بیشتر‬ ‫ریزدانگی‬‫ها‬ ‫دستورالعم‬ ‫بر‬
•‫امکان‬‫درج‬‫ها‬‫دسترسی‬ ‫بررسی‬ ‫انواع‬‫مختلف‬ ‫های‬ ‫دستورالعم‬ ‫برای‬
•‫ایجاد‬‫شده‬ ‫حفاظت‬ ‫و‬ ‫شده‬ ‫تفکیک‬ ‫های‬‫بخش‬‫حافظه‬ ‫در‬
•‫سازی‬‫فراهم‬‫امکان‬‫های‬‫فرض‬‫پیش‬ ‫به‬ ‫نیازمندی‬ ‫رفع‬NXD‫و‬NWC
‫راهکار‬:KCoFI: Complete Control-Flow Integrity for Commodity Operating System
Kernels-2014]1[
35
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
•‫ضعف‬ ‫نقاط‬ ‫منشاء‬ ‫توانند‬‫می‬ ‫روش‬ ‫هر‬ ‫فرضیات‬‫باشند‬:‫داده‬‫غیرقاب‬‫اجرا‬
‫در‬ ‫کارایی‬ ‫عدم‬JIT compilation
•‫رویکرد‬‫پنداری‬ ‫همسان‬‫قطعه‬‫های‬‫مشترک‬ ‫مبدأ‬ ‫با‬‫است‬ ‫اشکال‬ ‫منشاء‬ ،:
‫مشک‬:‫می‬ ‫چطور‬‫می‬ ‫منتق‬ ‫نظر‬‫مورد‬ ‫قطعه‬ ‫به‬ ‫کنترل‬‫جریان‬ ‫کرد‬ ‫تضمین‬ ‫توان‬‫قطعه‬ ‫به‬ ‫نه‬ ‫و‬ ‫گردد‬‫برچس‬ ‫با‬‫دیگر‬ ‫های‬‫؟‬‫مشابه‬ ‫ب‬
‫ریشه‬:‫قطعه‬ ‫تمایز‬ ‫عدم‬‫واسطه‬ ‫به‬ ‫ها‬‫زمینه‬ ‫به‬ ‫حساسیت‬ ‫عدم‬
‫راهکار‬:Context Sensitive CFG Analysis‫و‬Protected Shadow Call Stack
‫راهکار‬:SMAC]19[
36
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
•‫باال‬ ‫سربار‬ ‫هزینه‬]2،3،4،5[
‫راهکار‬:Out Of Control: Overcoming Control-Flo Integrity-2014]2[
+‫کردن‬ ‫ضعیف‬ ‫با‬ ‫بهتر‬ ‫سربار‬ ‫هزینه‬CFI
+‫حمالت‬ ‫برابر‬ ‫در‬ ‫مقاومت‬return-to-libc
-‫حمالت‬ ‫برابر‬ ‫در‬ ‫ضعف‬ROP
‫راهکار‬:Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM-2014]4[
+‫کردن‬ ‫ضعیف‬ ‫با‬ ‫بهتر‬ ‫سربار‬ ‫هزینه‬CFI
‫کامپایلر‬ ‫سطح‬ ‫در‬ ‫راهکار‬
37
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ابزار‬EMET
Microsoft's Enhanced Mitigation Experience Toolkit
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬
‫ارائه‬ ‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬
3
2
1
‫اعمال‬ ‫رویه‬
8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬
‫عملی‬ ‫سازی‬ ‫پیاده‬ 4
‫ارزیابی‬ 5
6‫صوری‬ ‫مدل‬
7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫ویژگی‬‫های‬CFI
•‫در‬ ‫کنترل‬ ‫جریان‬ ‫از‬ ‫حفاظت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬
•‫گسترده‬ ‫کاربرد‬ ‫قاب‬‫برنامه‬ ‫زبان‬ ‫از‬ ‫مستق‬‫نویسی‬(‫ب‬ ‫باینری‬ ‫صرفا‬‫رنامه‬)
•‫اطمینان‬ ‫قاب‬ ‫نتیده‬ ‫در‬ ‫و‬ ‫صوری‬ ‫توصیف‬
‫مفروضات‬ ‫و‬ ‫مفاهیم‬ ‫صوری‬ ‫توصیف‬
‫حفاظت‬ ‫صوری‬ ‫توصیف‬‫کنترل‬ ‫جریان‬ ‫از‬
•‫مراتب‬ ‫به‬ ‫سربار‬ ‫هزینه‬‫پیشین‬ ‫کارهای‬ ‫از‬ ‫بهتر‬‫اما‬‫باال‬ ‫هنوز‬
•‫هنوز‬‫تحقیقاتی‬ ‫مرحله‬ ‫در‬!
39
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫منابع‬
1. J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrityfor CommodityOperating SystemKernels,” in Proceedings of the 35th IEEE Symposiumon
Security and Privacy (SP'14), May 2014.
2. E. Goktas , et al. “Out Of Control: OvercomingControl-Flow Integrity,”in Proceedings of the 35th IEEE Symposiumon Security and Privacy (SP'14),
May 2014.
3. S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-ControlData” in Proceedings of the 23rd USENIX Security Symposium,Aug
2014.
4. C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrityin GCC & LLVM,” in Proceedings of the 23rd USENIX Security Symposium,Aug 2014.
5. L. Davi, , et al. “Stitching the Gadgets: On the Ineffectivenessof Coarse-Grained Control-Flow IntegrityProtection,” in Proceedings of the 23rd
USENIX Security Symposium,Aug 2014.
6. C. Zhang, , et al. Practical Control Flow Integrity& Randomization for Binary Executables,”in Proceedings of the 34th IEEE Symposium on Security
and Privacy (SP'13), May 2013.
7. 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.
8. M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations,and Applications,” ACM Transactions on Information and SystemSecurity, vol.
13, no. 1, pp. 4:1-4:40, Oct 2009
9. M. Abadi, et al. “Control Flow Integrity: Principles, Implementations,and Applications,” in proceedings of the 12th ACM conference on Computer
and Communications Security(CCS'05), pp. 340-353, Nov 2005.
10. M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal Methods and Software Engineering, Springer Berlin Heidelberg,pp. 111- 124, 2005.
11. Shostack,Adam. Threat modeling: Designing for security. John Wiley & Sons, 2014.
12. w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detectionof API-Calling Behavior from malicious binary Executable ,”in computerand electrical
Engineering , ICCEE 2008 .Internationalconference on ,pp.388-392, 2008.
13. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski and Andrew Honig -2012
*‫صحت‬‫تهران،پای‬ ‫امیرکبیر‬ ‫صنعتی‬ ‫امن،دانشگاه‬ ‫سیستمهای‬ ‫تحلی‬ ‫و‬ ‫طراحی‬ ‫غفاریان،آزمایشگاه‬ ‫محمد‬ ‫سید‬ ، ‫افزار‬ ‫نرم‬ ‫خرابی‬ ‫انزوای‬ ‫و‬ ‫کنترل‬ ‫جریان‬‫یز‬1393
‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/
‫منابع‬
.‫کاظم‬ 41،‫زاده‬‫میثم؛‬‫سیدمجتبی‬‫حسینی؛‬‫حسین‬‫شیرازی‬‫و‬‫محمدابراهیم‬،‫زارع‬‫تشخیص‬‫هوشمند‬‫رفتارهای‬‫مخرب‬‫بدافزارها‬‫مبتنی‬‫بر‬‫رفتار‬‫پویای‬،‫آنها‬‫ش‬‫شمین‬‫کنفرانس‬‫ملی‬
‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬،‫تهران‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬‫دانشکده‬‫برق‬‫و‬‫کامپیوتر‬‫دانشگاه‬‫شهید‬،‫بهشتی‬1391
15. Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology,2004.
16. Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox." IEEE Security and
Privacy 5.2 (2007): 32-39.
17. Edwards, Andrew, Hoi Vo, and Amitabh Srivastava.“Vulcan: Binary Transformation in a Distributed Environment,” Technical Report, MSR-
TR-2001-50, Microsoft Research, Apr. 20, 2001
18. Nethercote, N., 2004. Dynamic binary analysis and instrumentation (No. UCAM-CL-TR-606). University of Cambridge, Computer
Laboratory.
19. Microsoft Corporation, (2005). Software memory access control. US 7337291 B2
20. R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating Systems Review, vol.
27, no. 5, pp. 203-216, ACM, 1993.
21. S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security Symposium, pp. 209-224,
Aug 2006
22. M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity Software Fault
Isolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115-128, Oct 2009.
23. Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi-principal
Modules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct 2011
The only truly secure system is one that is powered off, cast in a block of concrete
and sealed in a lead-lined room with armed guards.
Gene Spafford
‫مهدی‬ ‫محمد‬‫احمدیان‬
www.mmAhmadian.ir ‫با‬‫تشکر‬‫از‬‫حسن‬‫توجه‬‫شما‬...

Más contenido relacionado

La actualidad más candente

امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...M Mehdi Ahmadian
 
امنیت سایبری سیستم‌ های کنترل صنعتی
  امنیت سایبری سیستم‌ های کنترل صنعتی   امنیت سایبری سیستم‌ های کنترل صنعتی
امنیت سایبری سیستم‌ های کنترل صنعتی M Mehdi Ahmadian
 
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNS
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNSشناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNS
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNSMahdi Sayyad
 
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتMahdi Sayyad
 
Securing cloud based scada systems for iot applications
Securing cloud based scada systems for iot applicationsSecuring cloud based scada systems for iot applications
Securing cloud based scada systems for iot applicationsNiloufar KarimiAzar
 
Network security
Network securityNetwork security
Network securityM Nemati
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذSaeidGhasemshirazi
 

La actualidad más candente (9)

امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...امنیت سیستم ها و شبکه های کنترل صنعتی:  امن سازی امنیت سیستم ها و شبکه های کن...
امنیت سیستم ها و شبکه های کنترل صنعتی: امن سازی امنیت سیستم ها و شبکه های کن...
 
امنیت سایبری سیستم‌ های کنترل صنعتی
  امنیت سایبری سیستم‌ های کنترل صنعتی   امنیت سایبری سیستم‌ های کنترل صنعتی
امنیت سایبری سیستم‌ های کنترل صنعتی
 
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNS
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNSشناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNS
شناسایی بات نت های Fast-Flux با استفاده از تحلیل ناهنجاری DNS
 
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعاتISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
ISO/IEC 15408-Common Criteria: ارزیابی امنیتی محصولات فناوری اطلاعات
 
توسعه امن نرم افزار
توسعه امن نرم افزارتوسعه امن نرم افزار
توسعه امن نرم افزار
 
SIEM and SOC
SIEM and SOCSIEM and SOC
SIEM and SOC
 
Securing cloud based scada systems for iot applications
Securing cloud based scada systems for iot applicationsSecuring cloud based scada systems for iot applications
Securing cloud based scada systems for iot applications
 
Network security
Network securityNetwork security
Network security
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
 

Destacado

حفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبناحفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبنا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
 
Malware futureology ahmadian
Malware futureology ahmadianMalware futureology ahmadian
Malware futureology ahmadianM Mehdi Ahmadian
 
خواب ایمن
خواب ایمنخواب ایمن
خواب ایمنmums1
 
آروما تراپی
آروما تراپیآروما تراپی
آروما تراپیMitra sheikh
 
Information security & isms
Information security & ismsInformation security & isms
Information security & ismsmeryamsiroos
 
سیستم معافیتی و التهاب
سیستم معافیتی و التهابسیستم معافیتی و التهاب
سیستم معافیتی و التهابNaqibullah Hamdard
 
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme... هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...M Mehdi Ahmadian
 
Transplantation Immunology
Transplantation ImmunologyTransplantation Immunology
Transplantation ImmunologyMostafa Zamani
 
Diapositivas de slideshare
Diapositivas de slideshareDiapositivas de slideshare
Diapositivas de slidesharekattycarmen
 

Destacado (20)

حفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبناحفظ حریم خصوصی در خدمات مکان-مبنا
حفظ حریم خصوصی در خدمات مکان-مبنا
 
بررسی امنیتی بیت کوین 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?!
 
Malware futureology ahmadian
Malware futureology ahmadianMalware futureology ahmadian
Malware futureology ahmadian
 
Labratarial Activity1
Labratarial Activity1Labratarial Activity1
Labratarial Activity1
 
NGI-MSDS
NGI-MSDSNGI-MSDS
NGI-MSDS
 
خواب ایمن
خواب ایمنخواب ایمن
خواب ایمن
 
آروما تراپی
آروما تراپیآروما تراپی
آروما تراپی
 
NaziAsadpour
NaziAsadpourNaziAsadpour
NaziAsadpour
 
Information security & isms
Information security & ismsInformation security & isms
Information security & isms
 
سیستم معافیتی و التهاب
سیستم معافیتی و التهابسیستم معافیتی و التهاب
سیستم معافیتی و التهاب
 
Hiv aids
Hiv aidsHiv aids
Hiv aids
 
87 f4~1
 87 f4~1 87 f4~1
87 f4~1
 
درون بدن ما
درون بدن مادرون بدن ما
درون بدن ما
 
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme... هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
هک پایگاه داده و راهکارهای مقابلهDatabases hacking, safeguards and counterme...
 
Transplantation Immunology
Transplantation ImmunologyTransplantation Immunology
Transplantation Immunology
 
Aromatheraphy
AromatheraphyAromatheraphy
Aromatheraphy
 
Cdb5~1
 Cdb5~1 Cdb5~1
Cdb5~1
 
Presentation1
Presentation1Presentation1
Presentation1
 
Diapositivas de slideshare
Diapositivas de slideshareDiapositivas de slideshare
Diapositivas de slideshare
 
slideshare
slideshare slideshare
slideshare
 

Similar a صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity

امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانAli Yazdani
 
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
 
mobile cloud Security and challenges
mobile cloud Security and challengesmobile cloud Security and challenges
mobile cloud Security and challengesRoshanak Ramezani
 
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
 
Chapter 12 - network security
Chapter 12 - network securityChapter 12 - network security
Chapter 12 - network securitybehrad eslamifar
 
Data security approach for online social network
Data security approach for online social networkData security approach for online social network
Data security approach for online social networkMehdi Rizvandi
 
Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)Morteza Javan
 
Internet of Things: Middle-ware Platforms, Security, and Intrusion Detection
Internet of Things: Middle-ware Platforms, Security, and Intrusion DetectionInternet of Things: Middle-ware Platforms, Security, and Intrusion Detection
Internet of Things: Middle-ware Platforms, Security, and Intrusion DetectionMorteza Zakeri
 
Sapra Group Co Ver 14
Sapra Group Co Ver 14Sapra Group Co Ver 14
Sapra Group Co Ver 14sona Torabi
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)amirbabol
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىmarketingfarkhad
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریtarasad
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
Reliability engineering in industry 4.0 000826
Reliability engineering in industry 4.0  000826Reliability engineering in industry 4.0  000826
Reliability engineering in industry 4.0 000826jalal raee
 

Similar a صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity (20)

امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
 
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
 
mobile cloud Security and challenges
mobile cloud Security and challengesmobile cloud Security and challenges
mobile cloud Security and challenges
 
Project zare
Project zareProject zare
Project zare
 
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)
 
Security for distributed systems
Security for distributed systemsSecurity for distributed systems
Security for distributed systems
 
DATA
DATADATA
DATA
 
Chapter 12 - network security
Chapter 12 - network securityChapter 12 - network security
Chapter 12 - network security
 
Data security approach for online social network
Data security approach for online social networkData security approach for online social network
Data security approach for online social network
 
Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)
 
Internet of Things: Middle-ware Platforms, Security, and Intrusion Detection
Internet of Things: Middle-ware Platforms, Security, and Intrusion DetectionInternet of Things: Middle-ware Platforms, Security, and Intrusion Detection
Internet of Things: Middle-ware Platforms, Security, and Intrusion Detection
 
IOT security
IOT securityIOT security
IOT security
 
IOT security
IOT securityIOT security
IOT security
 
Cloud ofthings
Cloud ofthingsCloud ofthings
Cloud ofthings
 
Sapra Group Co Ver 14
Sapra Group Co Ver 14Sapra Group Co Ver 14
Sapra Group Co Ver 14
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
Reliability engineering in industry 4.0 000826
Reliability engineering in industry 4.0  000826Reliability engineering in industry 4.0  000826
Reliability engineering in industry 4.0 000826
 

صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity

  • 2. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬‫گیری‬ ‫پیاده‬‫سازی‬‫عملی‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 3. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫جایگاه‬ 3
  • 4. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫پذیری‬ ‫آسیب‬ ‫و‬ ‫حمالت‬‫حافظه‬ ‫های‬ •‫پذیری‬ ‫آسیب‬‫حافظه‬ ‫تخریب‬ ‫های‬ •‫پشته‬ ‫در‬ ‫بافر‬ ‫سرریز‬ •‫هیپ‬ ‫در‬ ‫بافر‬ ‫سرریز‬ •‫سرریز‬‫عددی‬ ‫مقدار‬ •‫رشته‬‫های‬‫قالب‬‫بندی‬1 •‫گرهای‬ ‫اشاره‬‫معلق‬2 1. Format String Vulnerabilities 2. Dangling Pointer Reference 3. Control-flow Hijack 4. Data-only Attack •‫حافظه‬ ‫تخریب‬ ‫حمالت‬ •‫کد‬ ‫تخریب‬ •‫جریان‬ ‫ربایش‬‫کنترل‬3 •‫حمالت‬‫داده‬‫ای‬4 •‫اطالعات‬ ‫نشت‬ •‫خدمات‬ ‫از‬ ‫ممانعت‬ 4
  • 5. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬ •‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫آثار‬ ‫از‬ ‫یکی‬:‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫امکان‬‫در‬‫اختیار‬‫گرفتن‬‫سامانه‬‫قربانی‬ •‫نمونه‬:‫سازی‬ ‫قالب‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫کنترل‬‫اجرایی‬ ‫جریان‬‫ل‬ ‫من‬ ‫کلد‬ ‫مدلدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬‫آن‬ ‫است‬]12[. ‫توسط‬‫تاب‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬‫و‬‫مددد‬ ‫هدایت‬‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬‫آید‬‫می‬]14[. ‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫ن‬ ‫و‬ ‫اجراشلده‬ ‫توانلد‬ ‫می‬ ‫تاب‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫تیدله‬ ‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫شود‬]13[. 5
  • 6. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ •‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬ •‫تشخیص؟‬ ‫نحوه‬ detour trampoline 6
  • 7. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬‫قالب‬‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬Nop •‫تشخیص؟‬ ‫نحوه‬ 7
  • 8. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬‫سازی‬ ‫قالب‬ ‫های‬ ‫روش‬ 1‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 2‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬ ‫قالب‬Nop 3‫با‬ ‫سازی‬ ‫قالب‬Push/Retn 4‫شناور‬ ‫نقاط‬ ‫با‬ ‫سازی‬ ‫قالب‬ 5‫با‬ ‫سازی‬ ‫قالب‬MMX/SSE 6‫مستقیم‬ ‫غیر‬ ‫پرش‬ ‫با‬ ‫سازی‬ ‫قالب‬ 7‫فراخوانی‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ 1 8 9‫از‬‫وصله‬ ‫طریق‬‫جدول‬‫خروجی‬ ‫آدرس‬ 10‫توابع‬ ‫پروکسی‬ ‫طریق‬ ‫از‬‫کتابخانه‬‫ای‬ ‫طریق‬ ‫از‬‫آدرس‬ ‫جدول‬ ‫وصله‬‫ورودی‬ • [7] 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. • [12] 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. • [13] Sikorski M, Honig A. Practical malware analysis: the hands-on guide to dissecting malicious software. no starch press; 2012. • [15] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology, 2004. • [16] Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox." IEEE Security and Privacy 5.2 (2007): 32-39. 8
  • 9. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 10. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫کنترل‬ ‫جریان‬ ‫صحت‬‫بررسی‬ ‫مورد‬ ‫منابع‬ • [1] J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels,” in Proceedings of the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014. • [2] E. Goktas , et al. “Out Of Control: Overcoming Control-Flow Integrity,” in Proceedings of the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014. • [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014. • [4] C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM,” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014. • [5] L. Davi, , et al. “Stitching the Gadgets: On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection,” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014. • [6] C. Zhang, , et al. Practical Control Flow Integrity & Randomization for Binary Executables,” in Proceedings of the 34th IEEE Symposium on Security and Privacy (SP'13), May 2013. • [8] M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations, and Applications,” ACM Transactions on Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct 2009 • [7] 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. 10
  • 11. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫کنترل‬ ‫جریان‬ ‫صحت‬‫اصلی‬ ‫منابع‬ • [9] M. Abadi, et al. “Control Flow Integrity: Principles, Implementations, and Applications,” in proceedings of the 12th ACM conference on Computer and Communications Security (CCS'05), pp. 340-353, Nov 2005. • [10] M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal Methods and Software Engineering, Springer Berlin Heidelberg, pp. 111- 124, 2005. • [8] M. Abadi, et al. “Control-Flow Integrity: Principles, Implementations, and Applications,” ACM Transactions on Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct 2009 Dr. Martin Abadi Professor of Computer Science, University of California, Santa Cruz , Microsoft Research And Google. • [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014. • [7] 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. 11
  • 12. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫موجود‬ ‫وضعیت‬ •‫سال‬ ‫از‬1997‫حفاظتی‬ ‫راهکارهای‬ ‫کنون‬ ‫تا‬‫مختلفی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬. •‫معایب‬: •‫پوشش‬‫محدود‬ ‫حوزه‬ •‫تعریف‬ ‫عدم‬‫بینانه‬ ‫واق‬ ‫حمله‬ ‫مدل‬ •‫راهکارها‬ ‫زدن‬ ‫دور‬‫سهولت‬ ‫به‬ ‫آنهم‬ ‫مهاجمین‬ ‫توسط‬ •‫بر‬ ‫تکیه‬‫غیرصوری‬ ‫استتنتاج‬‫و‬‫پنهان‬ ‫مفروضات‬ •‫باید‬ ‫راهکار‬: •‫فهم‬ ‫قاب‬‫و‬ ‫واضح‬ ،‫ابهام‬ ‫بدون‬ •‫قوی‬ ‫ضمانت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬ ‫در‬ •‫برای‬ ‫کاربرد‬ ‫قاب‬‫جدید‬ ‫کدهای‬ ‫و‬ ‫قدیمی‬ ‫کدها‬(‫موجود‬ ‫کدهای‬) •‫کارایی‬ ‫و‬ ‫عملکرد‬‫ول‬ ‫ق‬ ‫قاب‬ ‫هدف‬Abadi 12
  • 13. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫تعریف‬CFI •CFI‫که‬ ‫است‬ ‫امنیتی‬ ‫مشی‬ ‫خط‬‫اجرای‬‫ملزم‬ ‫را‬ ‫برنامه‬‫می‬‫تا‬ ‫کند‬‫مسیرها‬ ‫از‬ ‫یکی‬ ‫صرفا‬(‫شده‬ ‫مشخص‬ ‫اجرا‬ ‫از‬ ‫پیش‬)‫ک‬ ‫جریان‬ ‫گراف‬‫نترل‬ ‫کند‬ ‫ال‬ ‫دن‬ ‫را‬ ‫برنامه‬. “ The CFI security policy dictates that software execution must follow a path of a Control-Flow Graph (CFG) determined ahead of time. ” •CFG‫کمک‬ ‫به‬ ‫کار‬ ‫این‬ ‫در‬«‫باینری‬ ‫کد‬ ‫ایستای‬ ‫تحلی‬»‫می‬ ‫بدست‬‫آید‬. 13
  • 14. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫تعریف‬CFG •‫قطعه‬‫پایه‬1: ‫یک‬‫ها‬ ‫دستورالعم‬ ‫از‬ ‫پیوسته‬ ‫اله‬ ‫دن‬‫که‬ ‫است‬‫جریان‬‫کنترل‬‫در‬‫اله‬ ‫دن‬ ‫این‬ ‫طی‬‫جهش‬ ‫بدون‬ ‫و‬ ‫مستقیم‬‫است‬. ‫به‬،‫دیگر‬ ‫ارت‬ ‫ع‬‫اله‬ ‫دن‬‫از‬ ‫ای‬‫دستورالعم‬‫ها‬‫که‬‫اله‬ ‫دن‬ ‫انتهای‬ ‫در‬ ‫مگر‬ ‫پرشی‬ ‫هیچ‬‫ندارد‬. 1. Basic Block (BB) BB 1 BB 2 •‫کنترل‬ ‫جریان‬ ‫گراف‬‫ایستا‬: ‫جهتدار‬ ‫گرافی‬‫به‬‫بصورت‬G(V,E)‫است‬‫که‬: ‫گره‬vi ∈ V‫بطوریکه‬ ،‫است‬vi‫یک‬‫پایه‬ ‫قطعه‬‫برنامه‬ ‫کد‬ ‫از‬‫است‬. ‫ی‬‫ال‬(vi , vj ) ∈ E‫است‬‫اگر‬ ،‫از‬ ‫کنترل‬ ‫انتقال‬ ‫امکان‬‫قطعه‬vi‫به‬‫قطعه‬vj‫در‬‫زمان‬‫اجرا‬‫وجود‬‫داشته‬‫باشد‬. 14
  • 15. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫مفروضات‬ ‫و‬ ‫حمله‬ ‫مدل‬ •‫قابلیت‬‫های‬‫مهاجم‬: •‫تغییر‬ ‫به‬ ‫قادر‬‫کلیه‬‫مقادیر‬‫داده‬‫ای‬‫حافظه‬ ‫در‬‫در‬‫زمان‬ ‫هر‬(‫هیپ‬ ‫و‬ ‫پشته‬ ،‫داده‬ ‫بخش‬) •‫به‬ ‫قادر‬‫ات‬ ‫ث‬ ‫غالب‬ ‫مقادیر‬ ‫تغییر‬‫ها‬( .‫جز‬ ‫به‬IP‫دیگر‬ ‫ها‬ ‫برنامه‬ ‫های‬ ‫ات‬ ‫ث‬ ‫و‬) •‫مفروضات‬: •‫کد‬‫تغییر‬ ‫غیرقاب‬ •‫اجرا‬ ‫غیرقاب‬ ‫های‬‫داده‬ •‫یکتا‬ ‫های‬‫شناسه‬ 15
  • 16. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 17. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬ •‫رویه‬:‫اعتبارسنجی‬‫مقصد‬‫کنترل‬ ‫انتقال‬‫برمبنای‬CFG ‫در‬‫مواقع‬ ‫از‬ ‫بسیاری‬‫یک‬ ‫به‬ ‫کنترل‬ ‫جریان‬ ‫انتقال‬ ،‫ایستا‬ ‫یا‬ ‫ثابت‬ ‫مقصد‬‫ت‬‫صور‬‫میگیرد‬. ‫بصورت‬ ‫تواند‬ ‫می‬ ‫مقصد‬ ‫اعتبارسنجی‬‫ایستا‬‫گیرد‬ ‫انجام‬. ‫مثال‬:‫برنامه‬ ‫کد‬ ‫در‬ ‫شده‬ ‫تعریف‬ ‫توابع‬ ‫ساده‬ ‫فراخوانی‬ ‫موارد‬ ‫برخی‬ ‫در‬‫در‬ ‫کنترل‬ ‫جریان‬ ‫مقصد‬‫زمان‬‫محاسبه‬ ‫اجرا‬‫معلوم‬ ‫و‬‫گردد‬‫می‬. ‫اعتبارسنجی‬ ،‫شرایط‬ ‫این‬ ‫در‬‫اجرا‬ ‫زمان‬ ‫در‬ ‫بایست‬‫می‬‫انجام‬‫پذیرد‬. ‫مثال‬:‫مقداردهی‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫که‬ ،‫توابع‬ ‫گر‬ ‫اشاره‬ ‫فراخوانی‬‫شوند‬‫می‬. ‫به‬ ‫نیاز‬‫دستور‬ ‫سه‬‫جدید‬ 17
  • 18. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬‫جدید‬ ‫دستورهای‬ •label ID: •call ID, DstReg: •ret ID: •‫اثر‬ ‫بی‬ ‫دستور‬ ‫یک‬(NOP)‫که‬‫گزاری‬‫برچسب‬ ‫برای‬ ‫تنها‬‫است‬. •‫و‬‫رشته‬ ‫یک‬‫بیت‬‫مقدار‬ ‫معادل‬ID‫را‬‫همان‬ ‫در‬‫کد‬ ‫حافظه‬ ‫از‬ ‫بخش‬‫درج‬‫کند‬‫می‬. ‫دستور‬ ‫یک‬‫فراخوانی‬‫آدرس‬ ‫در‬ ‫موجود‬ ‫کد‬ ‫به‬ ‫را‬ ‫کنترل‬ ‫که‬‫محتووای‬‫ثبوات‬DstReg‫منتقو‬ ‫به‬ ‫کند‬‫می‬‫با‬ ‫کد‬ ‫آن‬ ‫که‬ ‫شرطی‬‫برچسب‬ID‫آغاز‬‫شود‬. •‫دستور‬‫متناظر‬ ‫بازگشت‬‫فوق‬ ‫فراخوانی‬ ‫دستور‬ ‫با‬‫؛‬ •‫را‬ ‫کنترل‬ ‫یعنی‬‫طی‬‫شر‬ ‫به‬‫به‬‫کد‬‫اشاره‬‫بوا‬ ‫کود‬ ‫آن‬ ‫که‬ ‫گرداند‬‫بازمی‬ ‫بازگشت‬ ‫آدرس‬ ‫توسط‬ ‫شده‬‫برچسوب‬ ID‫شود‬ ‫آغاز‬. 18
  • 19. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬‫تکمیلی‬ ‫توضیحات‬ 1-‫کدباینری‬ ‫ایستا‬ ‫تحلی‬ ‫با‬CFG‫می‬ ‫بدست‬‫آید‬. •‫برای‬‫انتقال‬‫مقاصد‬ ‫همه‬ ‫فهرست‬ ‫پویا‬ ‫های‬‫می‬ ‫بدست‬ ‫ممکن‬‫آید‬. 2-‫ابتدای‬ ‫در‬‫مقصد‬ ‫هر‬‫یک‬ ،‫ممکن‬Label ID‫فرد‬ ‫به‬ ‫منحصر‬‫می‬ ‫درج‬‫گردد‬. •‫طبق‬ ‫که‬ ‫مقصدهایی‬ ‫برای‬CFG‫دارای‬‫مشترک‬ ‫مبدا‬‫هستند‬Label ID‫یکسانی‬‫می‬ ‫درج‬‫شود‬. 3-‫در‬‫مبداء‬ ‫هر‬‫یک‬ ،‫پویا‬ ‫بررسی‬ ‫عملیات‬(call ID, DstReg‫یا‬ret ID)‫می‬ ‫درج‬‫گردد‬. •‫هدف‬:‫تضمین‬‫برچسب‬ ‫کند‬‫مبداء‬‫مقصد‬ ‫برچسب‬ ‫و‬‫مطابقت‬‫دارند‬. 19
  • 20. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬‫مثال‬   20
  • 21. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 22. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬ •‫سازی‬‫پیاده‬CFI‫از‬ ‫استفاده‬ ‫با‬‫کد‬ ‫بازنویسی‬‫باینری‬1‫یا‬‫تدهیز‬ ‫روش‬‫کد‬2‫امکان‬‫پذیر‬‫است‬. 1. binary rewriting 2. Code Instrumentation ‫از‬ ‫استفاده‬Vulcan]17-18[ ‫استخراج‬ ‫و‬ ‫تحلی‬ ‫عملیات‬CFG ‫تجهیز‬‫ماشین‬ ‫کد‬ •‫اصلی‬ ‫پیچیدگی‬‫پیاده‬‫سازی‬‫این‬‫روش‬: •‫استخراج‬‫صحیح‬CFG •‫درست‬ ‫شناسایی‬‫همه‬‫مقصدهای‬ ‫و‬ ‫مبداها‬‫جریان‬ ‫انتقال‬‫پویا‬‫است‬. 22
  • 23. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬1 •‫ای‬‫نمونه‬‫از‬‫کد‬ ‫تجهیز‬‫فراخوانی‬‫اشاره‬‫گر‬‫تابع‬ ‫از‬ ‫استفاده‬‫دستور‬prefetchnta [ID]‫عنوان‬ ‫به‬label ID 23
  • 24. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬2 •‫ای‬‫نمونه‬‫از‬‫از‬‫تجهیز‬‫تابع‬ ‫از‬ ‫بازگشت‬ ‫کد‬ 24
  • 25. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 26. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫سربار‬ ‫هزینه‬ ‫ارزیابی‬ •‫محیط‬‫آزمایش‬: • Windows XP SP2 (Safe Mode) • Intel Pentium-4 (x86) 1.8 GHz • 512 MB RAM • Microsoft Visual C++ 7.1 (using full optimizations ) • SPEC1-2000 benchmarks •‫زمان‬‫استخراج‬CFG‫و‬‫تدهیز‬CFI:‫از‬ ‫کمتر‬10‫ثانیه‬‫باینری‬ ‫هر‬ ‫برای‬ •‫افزایش‬‫حدم‬‫اثر‬ ‫در‬ ‫باینری‬‫تدهیز‬CFI:%8‫افزایش‬‫حجم‬‫بطور‬‫متوسط‬ 1. Standard Performance Evaluation Corporation 26
  • 27. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫سربار‬ ‫هزینه‬ ‫ارزیابی‬‫اجرا‬ ‫زمان‬ ‫سربار‬ ‫تحمیلی‬ ‫سربار‬ ‫هزینه‬ ‫میانگین‬:%16 27
  • 28. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫امنیتی‬ ‫ارزیابی‬ •‫مورد‬ ‫چند‬ ‫بررسی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫مختلف‬ ‫انواع‬ ‫از‬‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫هدف‬ ‫با‬. ‫پذیری‬‫آسیب‬JPEG‫مربوط‬‫به‬‫کتابخانه‬GDI+ ‫یک‬‫ساده‬ ‫برنامه‬‫پذیر‬ ‫آسیب‬‫به‬‫زبان‬C‫برای‬‫محاسبه‬‫آرایه‬ ‫یک‬ ‫میانه‬ ‫مجموعه‬18‫تایی‬‫پویا‬ ‫بافرهای‬ ‫سرریز‬ ‫از‬ 28
  • 29. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 30. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫صوری‬ ‫مدل‬ •‫حالت‬ ‫یک‬ ،‫ماشین‬ ‫مدل‬ ‫این‬ ‫در‬‫اجرا‬1‫شام‬: 1. execution state Mc:‫کد‬ ‫حافظه‬ Md:‫داده‬ ‫حافظه‬ R:‫ها‬‫ثبات‬ ‫مقادیر‬ pc:‫برنامه‬ ‫شمارنده‬ •،‫مدل‬ ‫همین‬ ‫مبنای‬ ‫بر‬‫عملیاتی‬ ‫معنای‬9‫دستورالعم‬‫ماشین‬‫توصیف‬‫گردد‬‫می‬. • If Mc(pc) contains the encoding of add rd,rs,rt , and the current state has code memory Mc, data memory Md, program counter value pc, and register values R, and if pc + 1 is within the domain of Mc, then in the next state the code memory and data memory are still Mc and Md, respectively, pc is incremented, and R is updated so that it maps rd to R(rs) + R(rt) •‫مثال‬:‫دستورالعم‬ ‫عملیاتی‬ ‫معنای‬add rd,rs,rt •‫توضیح‬ ‫این‬‫در‬‫صورت‬ ‫بدین‬ ‫ماشین‬ ‫حالت‬ ‫انتقال‬ ‫قالب‬‫است‬: 30
  • 31. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫صوری‬ ‫مدل‬ •‫برای‬‫مهاجم‬‫موجب‬ ‫آن‬ ‫های‬‫قابلیت‬ ‫با‬ ‫متناسب‬ ‫که‬ ‫شود‬‫می‬ ‫تعریف‬ ‫ای‬‫قاعده‬ ‫نیز‬‫حالت‬ ‫انتقال‬‫ماشین‬‫گردد‬‫می‬: 1. attack execution •‫رابطه‬a⟶‫معنای‬ ‫به‬‫حمله‬ ‫اجرای‬1‫است‬‫است‬ ‫قادر‬ ‫که‬‫حافظه‬ ‫وضعیت‬‫ثباتها‬ ‫مقادیر‬ ‫و‬‫کند‬ ‫دستکاری‬ ‫را‬. •‫یک‬‫برنامه‬‫تجهیزشده‬‫بصورت‬I(Mc)‫بیان‬‫می‬‫گردد‬‫وجود‬ ‫آن‬ ‫معنای‬ ‫که‬‫بررسی‬‫های‬‫کود‬ ‫در‬ ‫دقیقی‬‫برناموه‬‫اسوت‬‫کوه‬‫تضومین‬ ‫می‬‫کنند‬‫روند‬‫مطابق‬ ‫کنترل‬ ‫جریان‬CFG‫از‬‫تعریف‬ ‫پیش‬‫شده‬‫است‬. •‫عملیات‬ ‫نتایج‬ ‫درباره‬ ‫استنتاجی‬ ‫توان‬‫می‬ ‫شده‬ ‫تعریف‬ ‫تاکنون‬ ‫آنچه‬ ‫براساس‬ ‫اکنون‬‫ارائه‬ ‫تجهیز‬‫کرد‬. 31
  • 32. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫صوری‬ ‫مدل‬‫تر‬ ‫پیشرفته‬ ‫مدل‬ 1. attack execution 32
  • 33. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 34. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬ •CFI‫حفاظت‬ ‫عدم‬‫کام‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬(‫تنها‬‫ربایش‬‫کنترل‬ ‫جریان‬) ‫راهکار‬:Software Fault Isolation(SFI) ‫نرم‬ ‫مکانیزم‬‫افزاری‬‫تضمین‬ ‫که‬‫می‬‫کند‬‫کلیه‬‫دسترسی‬‫نرم‬ ‫های‬‫ها‬‫افزار‬‫به‬‫سیستم‬ ‫منابع‬(‫ج‬ ‫از‬‫حافظوه‬ ‫مله‬)، ‫آن‬ ‫به‬ ‫متعلق‬ ‫محدوده‬ ‫درون‬‫نرم‬‫باشد‬ ‫افزار‬. • [20] R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating Systems Review, vol. 27, no. 5, pp. 203-216, ACM, 1993. • [21] S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security Symposium, pp. 209-224, Aug 2006 • [22] M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity Software Fault Isolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115- 128, Oct 2009. • [23] Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi- principal Modules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct 2011 34
  • 35. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬ •CFI‫حفاظت‬ ‫عدم‬‫کام‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬(‫تنها‬‫ربایش‬‫کنترل‬ ‫جریان‬) ‫راهکار‬:Software Memory Access Control(SMAC)]19[ •‫با‬ ‫دسترسی‬ ‫کنترل‬‫بیشتر‬ ‫ریزدانگی‬‫ها‬ ‫دستورالعم‬ ‫بر‬ •‫امکان‬‫درج‬‫ها‬‫دسترسی‬ ‫بررسی‬ ‫انواع‬‫مختلف‬ ‫های‬ ‫دستورالعم‬ ‫برای‬ •‫ایجاد‬‫شده‬ ‫حفاظت‬ ‫و‬ ‫شده‬ ‫تفکیک‬ ‫های‬‫بخش‬‫حافظه‬ ‫در‬ •‫سازی‬‫فراهم‬‫امکان‬‫های‬‫فرض‬‫پیش‬ ‫به‬ ‫نیازمندی‬ ‫رفع‬NXD‫و‬NWC ‫راهکار‬:KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels-2014]1[ 35
  • 36. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬ •‫ضعف‬ ‫نقاط‬ ‫منشاء‬ ‫توانند‬‫می‬ ‫روش‬ ‫هر‬ ‫فرضیات‬‫باشند‬:‫داده‬‫غیرقاب‬‫اجرا‬ ‫در‬ ‫کارایی‬ ‫عدم‬JIT compilation •‫رویکرد‬‫پنداری‬ ‫همسان‬‫قطعه‬‫های‬‫مشترک‬ ‫مبدأ‬ ‫با‬‫است‬ ‫اشکال‬ ‫منشاء‬ ،: ‫مشک‬:‫می‬ ‫چطور‬‫می‬ ‫منتق‬ ‫نظر‬‫مورد‬ ‫قطعه‬ ‫به‬ ‫کنترل‬‫جریان‬ ‫کرد‬ ‫تضمین‬ ‫توان‬‫قطعه‬ ‫به‬ ‫نه‬ ‫و‬ ‫گردد‬‫برچس‬ ‫با‬‫دیگر‬ ‫های‬‫؟‬‫مشابه‬ ‫ب‬ ‫ریشه‬:‫قطعه‬ ‫تمایز‬ ‫عدم‬‫واسطه‬ ‫به‬ ‫ها‬‫زمینه‬ ‫به‬ ‫حساسیت‬ ‫عدم‬ ‫راهکار‬:Context Sensitive CFG Analysis‫و‬Protected Shadow Call Stack ‫راهکار‬:SMAC]19[ 36
  • 37. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬ •‫باال‬ ‫سربار‬ ‫هزینه‬]2،3،4،5[ ‫راهکار‬:Out Of Control: Overcoming Control-Flo Integrity-2014]2[ +‫کردن‬ ‫ضعیف‬ ‫با‬ ‫بهتر‬ ‫سربار‬ ‫هزینه‬CFI +‫حمالت‬ ‫برابر‬ ‫در‬ ‫مقاومت‬return-to-libc -‫حمالت‬ ‫برابر‬ ‫در‬ ‫ضعف‬ROP ‫راهکار‬:Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM-2014]4[ +‫کردن‬ ‫ضعیف‬ ‫با‬ ‫بهتر‬ ‫سربار‬ ‫هزینه‬CFI ‫کامپایلر‬ ‫سطح‬ ‫در‬ ‫راهکار‬ 37
  • 38. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ابزار‬EMET Microsoft's Enhanced Mitigation Experience Toolkit
  • 39. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  • 40. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ویژگی‬‫های‬CFI •‫در‬ ‫کنترل‬ ‫جریان‬ ‫از‬ ‫حفاظت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬ •‫گسترده‬ ‫کاربرد‬ ‫قاب‬‫برنامه‬ ‫زبان‬ ‫از‬ ‫مستق‬‫نویسی‬(‫ب‬ ‫باینری‬ ‫صرفا‬‫رنامه‬) •‫اطمینان‬ ‫قاب‬ ‫نتیده‬ ‫در‬ ‫و‬ ‫صوری‬ ‫توصیف‬ ‫مفروضات‬ ‫و‬ ‫مفاهیم‬ ‫صوری‬ ‫توصیف‬ ‫حفاظت‬ ‫صوری‬ ‫توصیف‬‫کنترل‬ ‫جریان‬ ‫از‬ •‫مراتب‬ ‫به‬ ‫سربار‬ ‫هزینه‬‫پیشین‬ ‫کارهای‬ ‫از‬ ‫بهتر‬‫اما‬‫باال‬ ‫هنوز‬ •‫هنوز‬‫تحقیقاتی‬ ‫مرحله‬ ‫در‬! 39
  • 41. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫منابع‬ 1. J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrityfor CommodityOperating SystemKernels,” in Proceedings of the 35th IEEE Symposiumon Security and Privacy (SP'14), May 2014. 2. E. Goktas , et al. “Out Of Control: OvercomingControl-Flow Integrity,”in Proceedings of the 35th IEEE Symposiumon Security and Privacy (SP'14), May 2014. 3. S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-ControlData” in Proceedings of the 23rd USENIX Security Symposium,Aug 2014. 4. C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrityin GCC & LLVM,” in Proceedings of the 23rd USENIX Security Symposium,Aug 2014. 5. L. Davi, , et al. “Stitching the Gadgets: On the Ineffectivenessof Coarse-Grained Control-Flow IntegrityProtection,” in Proceedings of the 23rd USENIX Security Symposium,Aug 2014. 6. C. Zhang, , et al. Practical Control Flow Integrity& Randomization for Binary Executables,”in Proceedings of the 34th IEEE Symposium on Security and Privacy (SP'13), May 2013. 7. 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. 8. M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations,and Applications,” ACM Transactions on Information and SystemSecurity, vol. 13, no. 1, pp. 4:1-4:40, Oct 2009 9. M. Abadi, et al. “Control Flow Integrity: Principles, Implementations,and Applications,” in proceedings of the 12th ACM conference on Computer and Communications Security(CCS'05), pp. 340-353, Nov 2005. 10. M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal Methods and Software Engineering, Springer Berlin Heidelberg,pp. 111- 124, 2005. 11. Shostack,Adam. Threat modeling: Designing for security. John Wiley & Sons, 2014. 12. w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detectionof API-Calling Behavior from malicious binary Executable ,”in computerand electrical Engineering , ICCEE 2008 .Internationalconference on ,pp.388-392, 2008. 13. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski and Andrew Honig -2012 *‫صحت‬‫تهران،پای‬ ‫امیرکبیر‬ ‫صنعتی‬ ‫امن،دانشگاه‬ ‫سیستمهای‬ ‫تحلی‬ ‫و‬ ‫طراحی‬ ‫غفاریان،آزمایشگاه‬ ‫محمد‬ ‫سید‬ ، ‫افزار‬ ‫نرم‬ ‫خرابی‬ ‫انزوای‬ ‫و‬ ‫کنترل‬ ‫جریان‬‫یز‬1393
  • 42. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫منابع‬ .‫کاظم‬ 41،‫زاده‬‫میثم؛‬‫سیدمجتبی‬‫حسینی؛‬‫حسین‬‫شیرازی‬‫و‬‫محمدابراهیم‬،‫زارع‬‫تشخیص‬‫هوشمند‬‫رفتارهای‬‫مخرب‬‫بدافزارها‬‫مبتنی‬‫بر‬‫رفتار‬‫پویای‬،‫آنها‬‫ش‬‫شمین‬‫کنفرانس‬‫ملی‬ ‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬،‫تهران‬‫انجمن‬‫علمی‬‫فرماندهی‬‫و‬‫کنترل‬،‫ایران‬‫دانشکده‬‫برق‬‫و‬‫کامپیوتر‬‫دانشگاه‬‫شهید‬،‫بهشتی‬1391 15. Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology,2004. 16. Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox." IEEE Security and Privacy 5.2 (2007): 32-39. 17. Edwards, Andrew, Hoi Vo, and Amitabh Srivastava.“Vulcan: Binary Transformation in a Distributed Environment,” Technical Report, MSR- TR-2001-50, Microsoft Research, Apr. 20, 2001 18. Nethercote, N., 2004. Dynamic binary analysis and instrumentation (No. UCAM-CL-TR-606). University of Cambridge, Computer Laboratory. 19. Microsoft Corporation, (2005). Software memory access control. US 7337291 B2 20. R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating Systems Review, vol. 27, no. 5, pp. 203-216, ACM, 1993. 21. S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security Symposium, pp. 209-224, Aug 2006 22. M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity Software Fault Isolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115-128, Oct 2009. 23. Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi-principal Modules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct 2011
  • 43. The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards. Gene Spafford ‫مهدی‬ ‫محمد‬‫احمدیان‬ www.mmAhmadian.ir ‫با‬‫تشکر‬‫از‬‫حسن‬‫توجه‬‫شما‬...