Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

172 views

Published on

Control-flow integrity (CFI) is a general term for computer security techniques which prevent a wide variety of malware attacks from redirecting the flow of execution of a program. Associated techniques include Code-Pointer Separation (CPS), Code-Pointer Integrity (CPI), stack canaries, shadow stacks, and vtable pointer verification

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. ‫اسفند‬‫ماه‬1395 Control Flow Integrity (CFI) ‫کنترل‬ ‫جریان‬ ‫صحت‬
  2. 2. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬‫گیری‬ ‫پیاده‬‫سازی‬‫عملی‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  3. 3. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫جایگاه‬ 3
  4. 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. 5. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬ •‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫آثار‬ ‫از‬ ‫یکی‬:‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫امکان‬‫در‬‫اختیار‬‫گرفتن‬‫سامانه‬‫قربانی‬ •‫نمونه‬:‫سازی‬ ‫قالب‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫مفهوم‬ ‫یک‬ ، ‫سازی‬ ‫قالب‬‫کنترل‬‫اجرایی‬ ‫جریان‬‫ل‬ ‫من‬ ‫کلد‬ ‫مدلدد‬ ‫کامپایل‬ ‫و‬ ‫تغییر‬ ‫بدون‬ ‫برنامه‬‫آن‬ ‫است‬]12[. ‫توسط‬‫تاب‬ ‫فراخوانی‬ ‫سازی‬ ‫متوقف‬‫و‬‫مددد‬ ‫هدایت‬‫دست‬ ‫به‬ ، ‫شده‬‫سفارشی‬ ‫کد‬ ‫به‬ ‫آن‬‫آید‬‫می‬]14[. ‫نمود‬ ‫اجرا‬ ‫توان‬‫می‬ ‫را‬ ‫عملیاتی‬ ‫هر‬ ، ‫سفارشی‬ ‫کد‬ ‫تزریق‬ ‫با‬.‫ن‬ ‫و‬ ‫اجراشلده‬ ‫توانلد‬ ‫می‬ ‫تاب‬ ‫اصلی‬ ‫های‬‫قابلیت‬ ، ‫ازآن‬‫پس‬‫تیدله‬ ‫داده‬ ‫تغییر‬ ‫یا‬ ‫و‬ ‫شود‬ ‫داده‬ ‫برگشت‬ ‫سادگی‬‫به‬ ‫یا‬ ‫تواند‬‫می‬‫شود‬]13[. 5
  6. 6. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬‫پرش‬ ‫دستور‬ ‫با‬ ‫سازی‬ ‫قالب‬ •‫سازی‬ ‫قالب‬ ‫روش‬ ‫ترین‬ ‫ساده‬ •‫تشخیص؟‬ ‫نحوه‬ detour trampoline 6
  7. 7. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫مقدمه‬‫مسئله‬ ‫طرح‬‫قالب‬‫کردن‬ ‫اضافه‬ ‫با‬ ‫سازی‬Nop •‫تشخیص؟‬ ‫نحوه‬ 7
  8. 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. 9. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  10. 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. 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. 12. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫موجود‬ ‫وضعیت‬ •‫سال‬ ‫از‬1997‫حفاظتی‬ ‫راهکارهای‬ ‫کنون‬ ‫تا‬‫مختلفی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫برابر‬ ‫در‬. •‫معایب‬: •‫پوشش‬‫محدود‬ ‫حوزه‬ •‫تعریف‬ ‫عدم‬‫بینانه‬ ‫واق‬ ‫حمله‬ ‫مدل‬ •‫راهکارها‬ ‫زدن‬ ‫دور‬‫سهولت‬ ‫به‬ ‫آنهم‬ ‫مهاجمین‬ ‫توسط‬ •‫بر‬ ‫تکیه‬‫غیرصوری‬ ‫استتنتاج‬‫و‬‫پنهان‬ ‫مفروضات‬ •‫باید‬ ‫راهکار‬: •‫فهم‬ ‫قاب‬‫و‬ ‫واضح‬ ،‫ابهام‬ ‫بدون‬ •‫قوی‬ ‫ضمانت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬ ‫در‬ •‫برای‬ ‫کاربرد‬ ‫قاب‬‫جدید‬ ‫کدهای‬ ‫و‬ ‫قدیمی‬ ‫کدها‬(‫موجود‬ ‫کدهای‬) •‫کارایی‬ ‫و‬ ‫عملکرد‬‫ول‬ ‫ق‬ ‫قاب‬ ‫هدف‬Abadi 12
  13. 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. 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. 15. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫مفروضات‬ ‫و‬ ‫حمله‬ ‫مدل‬ •‫قابلیت‬‫های‬‫مهاجم‬: •‫تغییر‬ ‫به‬ ‫قادر‬‫کلیه‬‫مقادیر‬‫داده‬‫ای‬‫حافظه‬ ‫در‬‫در‬‫زمان‬ ‫هر‬(‫هیپ‬ ‫و‬ ‫پشته‬ ،‫داده‬ ‫بخش‬) •‫به‬ ‫قادر‬‫ات‬ ‫ث‬ ‫غالب‬ ‫مقادیر‬ ‫تغییر‬‫ها‬( .‫جز‬ ‫به‬IP‫دیگر‬ ‫ها‬ ‫برنامه‬ ‫های‬ ‫ات‬ ‫ث‬ ‫و‬) •‫مفروضات‬: •‫کد‬‫تغییر‬ ‫غیرقاب‬ •‫اجرا‬ ‫غیرقاب‬ ‫های‬‫داده‬ •‫یکتا‬ ‫های‬‫شناسه‬ 15
  16. 16. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  17. 17. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬ •‫رویه‬:‫اعتبارسنجی‬‫مقصد‬‫کنترل‬ ‫انتقال‬‫برمبنای‬CFG ‫در‬‫مواقع‬ ‫از‬ ‫بسیاری‬‫یک‬ ‫به‬ ‫کنترل‬ ‫جریان‬ ‫انتقال‬ ،‫ایستا‬ ‫یا‬ ‫ثابت‬ ‫مقصد‬‫ت‬‫صور‬‫میگیرد‬. ‫بصورت‬ ‫تواند‬ ‫می‬ ‫مقصد‬ ‫اعتبارسنجی‬‫ایستا‬‫گیرد‬ ‫انجام‬. ‫مثال‬:‫برنامه‬ ‫کد‬ ‫در‬ ‫شده‬ ‫تعریف‬ ‫توابع‬ ‫ساده‬ ‫فراخوانی‬ ‫موارد‬ ‫برخی‬ ‫در‬‫در‬ ‫کنترل‬ ‫جریان‬ ‫مقصد‬‫زمان‬‫محاسبه‬ ‫اجرا‬‫معلوم‬ ‫و‬‫گردد‬‫می‬. ‫اعتبارسنجی‬ ،‫شرایط‬ ‫این‬ ‫در‬‫اجرا‬ ‫زمان‬ ‫در‬ ‫بایست‬‫می‬‫انجام‬‫پذیرد‬. ‫مثال‬:‫مقداردهی‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫که‬ ،‫توابع‬ ‫گر‬ ‫اشاره‬ ‫فراخوانی‬‫شوند‬‫می‬. ‫به‬ ‫نیاز‬‫دستور‬ ‫سه‬‫جدید‬ 17
  18. 18. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬‫جدید‬ ‫دستورهای‬ •label ID: •call ID, DstReg: •ret ID: •‫اثر‬ ‫بی‬ ‫دستور‬ ‫یک‬(NOP)‫که‬‫گزاری‬‫برچسب‬ ‫برای‬ ‫تنها‬‫است‬. •‫و‬‫رشته‬ ‫یک‬‫بیت‬‫مقدار‬ ‫معادل‬ID‫را‬‫همان‬ ‫در‬‫کد‬ ‫حافظه‬ ‫از‬ ‫بخش‬‫درج‬‫کند‬‫می‬. ‫دستور‬ ‫یک‬‫فراخوانی‬‫آدرس‬ ‫در‬ ‫موجود‬ ‫کد‬ ‫به‬ ‫را‬ ‫کنترل‬ ‫که‬‫محتووای‬‫ثبوات‬DstReg‫منتقو‬ ‫به‬ ‫کند‬‫می‬‫با‬ ‫کد‬ ‫آن‬ ‫که‬ ‫شرطی‬‫برچسب‬ID‫آغاز‬‫شود‬. •‫دستور‬‫متناظر‬ ‫بازگشت‬‫فوق‬ ‫فراخوانی‬ ‫دستور‬ ‫با‬‫؛‬ •‫را‬ ‫کنترل‬ ‫یعنی‬‫طی‬‫شر‬ ‫به‬‫به‬‫کد‬‫اشاره‬‫بوا‬ ‫کود‬ ‫آن‬ ‫که‬ ‫گرداند‬‫بازمی‬ ‫بازگشت‬ ‫آدرس‬ ‫توسط‬ ‫شده‬‫برچسوب‬ ID‫شود‬ ‫آغاز‬. 18
  19. 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. 20. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫اعمال‬ ‫رویه‬‫مثال‬   20
  21. 21. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  22. 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. 23. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬1 •‫ای‬‫نمونه‬‫از‬‫کد‬ ‫تجهیز‬‫فراخوانی‬‫اشاره‬‫گر‬‫تابع‬ ‫از‬ ‫استفاده‬‫دستور‬prefetchnta [ID]‫عنوان‬ ‫به‬label ID 23
  24. 24. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫عملی‬ ‫سازی‬ ‫پیاده‬‫مثال‬2 •‫ای‬‫نمونه‬‫از‬‫از‬‫تجهیز‬‫تابع‬ ‫از‬ ‫بازگشت‬ ‫کد‬ 24
  25. 25. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  26. 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. 27. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫سربار‬ ‫هزینه‬ ‫ارزیابی‬‫اجرا‬ ‫زمان‬ ‫سربار‬ ‫تحمیلی‬ ‫سربار‬ ‫هزینه‬ ‫میانگین‬:%16 27
  28. 28. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫امنیتی‬ ‫ارزیابی‬ •‫مورد‬ ‫چند‬ ‫بررسی‬‫حافظه‬ ‫تخریب‬ ‫حمالت‬ ‫مختلف‬ ‫انواع‬ ‫از‬‫کنترل‬ ‫جریان‬ ‫ربایش‬ ‫هدف‬ ‫با‬. ‫پذیری‬‫آسیب‬JPEG‫مربوط‬‫به‬‫کتابخانه‬GDI+ ‫یک‬‫ساده‬ ‫برنامه‬‫پذیر‬ ‫آسیب‬‫به‬‫زبان‬C‫برای‬‫محاسبه‬‫آرایه‬ ‫یک‬ ‫میانه‬ ‫مجموعه‬18‫تایی‬‫پویا‬ ‫بافرهای‬ ‫سرریز‬ ‫از‬ 28
  29. 29. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  30. 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. 31. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫صوری‬ ‫مدل‬ •‫برای‬‫مهاجم‬‫موجب‬ ‫آن‬ ‫های‬‫قابلیت‬ ‫با‬ ‫متناسب‬ ‫که‬ ‫شود‬‫می‬ ‫تعریف‬ ‫ای‬‫قاعده‬ ‫نیز‬‫حالت‬ ‫انتقال‬‫ماشین‬‫گردد‬‫می‬: 1. attack execution •‫رابطه‬a⟶‫معنای‬ ‫به‬‫حمله‬ ‫اجرای‬1‫است‬‫است‬ ‫قادر‬ ‫که‬‫حافظه‬ ‫وضعیت‬‫ثباتها‬ ‫مقادیر‬ ‫و‬‫کند‬ ‫دستکاری‬ ‫را‬. •‫یک‬‫برنامه‬‫تجهیزشده‬‫بصورت‬I(Mc)‫بیان‬‫می‬‫گردد‬‫وجود‬ ‫آن‬ ‫معنای‬ ‫که‬‫بررسی‬‫های‬‫کود‬ ‫در‬ ‫دقیقی‬‫برناموه‬‫اسوت‬‫کوه‬‫تضومین‬ ‫می‬‫کنند‬‫روند‬‫مطابق‬ ‫کنترل‬ ‫جریان‬CFG‫از‬‫تعریف‬ ‫پیش‬‫شده‬‫است‬. •‫عملیات‬ ‫نتایج‬ ‫درباره‬ ‫استنتاجی‬ ‫توان‬‫می‬ ‫شده‬ ‫تعریف‬ ‫تاکنون‬ ‫آنچه‬ ‫براساس‬ ‫اکنون‬‫ارائه‬ ‫تجهیز‬‫کرد‬. 31
  32. 32. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ Abadi’s CFI‫صوری‬ ‫مدل‬‫تر‬ ‫پیشرفته‬ ‫مدل‬ 1. attack execution 32
  33. 33. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  34. 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. 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. 36. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬ •‫ضعف‬ ‫نقاط‬ ‫منشاء‬ ‫توانند‬‫می‬ ‫روش‬ ‫هر‬ ‫فرضیات‬‫باشند‬:‫داده‬‫غیرقاب‬‫اجرا‬ ‫در‬ ‫کارایی‬ ‫عدم‬JIT compilation •‫رویکرد‬‫پنداری‬ ‫همسان‬‫قطعه‬‫های‬‫مشترک‬ ‫مبدأ‬ ‫با‬‫است‬ ‫اشکال‬ ‫منشاء‬ ،: ‫مشک‬:‫می‬ ‫چطور‬‫می‬ ‫منتق‬ ‫نظر‬‫مورد‬ ‫قطعه‬ ‫به‬ ‫کنترل‬‫جریان‬ ‫کرد‬ ‫تضمین‬ ‫توان‬‫قطعه‬ ‫به‬ ‫نه‬ ‫و‬ ‫گردد‬‫برچس‬ ‫با‬‫دیگر‬ ‫های‬‫؟‬‫مشابه‬ ‫ب‬ ‫ریشه‬:‫قطعه‬ ‫تمایز‬ ‫عدم‬‫واسطه‬ ‫به‬ ‫ها‬‫زمینه‬ ‫به‬ ‫حساسیت‬ ‫عدم‬ ‫راهکار‬:Context Sensitive CFG Analysis‫و‬Protected Shadow Call Stack ‫راهکار‬:SMAC]19[ 36
  37. 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. 38. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ابزار‬EMET Microsoft's Enhanced Mitigation Experience Toolkit
  39. 39. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬ ‫ارائه‬ ‫مطالب‬ ‫فهرست‬ ‫مقدمه‬ ‫کنترل‬ ‫جریان‬ ‫صحت‬ ‫معرفی‬ 3 2 1 ‫اعمال‬ ‫رویه‬ 8‫گیری‬ ‫نتیجه‬ ‫و‬ ‫بندی‬ ‫جمع‬ ‫عملی‬ ‫سازی‬ ‫پیاده‬ 4 ‫ارزیابی‬ 5 6‫صوری‬ ‫مدل‬ 7‫ضعف‬‫دیگر‬ ‫کارهای‬ ‫معرفی‬ ‫و‬ ‫ها‬
  40. 40. ‫م‬.‫احمدیان‬ ‫مهدی‬|‫کنترل‬ ‫جریان‬ ‫صحت‬|‫سیستم‬ ‫امنیت‬‫افزاری‬ ‫نرم‬ ‫های‬|Ahmadian.blog.ir|www.mmAhmadian.ir39/ ‫ویژگی‬‫های‬CFI •‫در‬ ‫کنترل‬ ‫جریان‬ ‫از‬ ‫حفاظت‬‫قدرتمند‬ ‫مهاجم‬ ‫برابر‬ •‫گسترده‬ ‫کاربرد‬ ‫قاب‬‫برنامه‬ ‫زبان‬ ‫از‬ ‫مستق‬‫نویسی‬(‫ب‬ ‫باینری‬ ‫صرفا‬‫رنامه‬) •‫اطمینان‬ ‫قاب‬ ‫نتیده‬ ‫در‬ ‫و‬ ‫صوری‬ ‫توصیف‬ ‫مفروضات‬ ‫و‬ ‫مفاهیم‬ ‫صوری‬ ‫توصیف‬ ‫حفاظت‬ ‫صوری‬ ‫توصیف‬‫کنترل‬ ‫جریان‬ ‫از‬ •‫مراتب‬ ‫به‬ ‫سربار‬ ‫هزینه‬‫پیشین‬ ‫کارهای‬ ‫از‬ ‫بهتر‬‫اما‬‫باال‬ ‫هنوز‬ •‫هنوز‬‫تحقیقاتی‬ ‫مرحله‬ ‫در‬! 39
  41. 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. 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. 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 ‫با‬‫تشکر‬‫از‬‫حسن‬‫توجه‬‫شما‬...

×