تولید خودکار اکسپلویت برای آسیب پذیری برنامه های کاربردی

نویسندگان

1 امام حسین

2 دانشگاه علم و صنعت

چکیده

آسیب‌پذیری در نرم‌افزار هنگامی اهمیت پیدا می‌کند که قابل بهره‌برداری یا به‌ عبارت ‌دیگر قابل اکسپلویت باشد. این بهره‌برداری می‌تواند انواع مختلفی داشته باشد که مهم‌ترین آنها در اختیار گرفتن کنترل اجرای برنامه آسیب‌پذیر است. امروزه ارائه اکسپلویت برای آسیب‌پذیری برنامه‌های کاربردی با توجه به وجود محافظ‌های گوناگون بسیار دشوار شده است و درنتیجه تولید خودکار آن به‌مراتب پیچیده‌تر و دشوارتر خواهد بود. تحقیقات درزمینة تولید خودکار اکسپلویت (به معنی در اختیار گرفتن کنترل اجرای برنامه) بسیار محدود بوده است و آنچه صورت گرفته نیز دارای محدودیت‌های فراوانی است. در این مقاله راه‌کاری برای تولید خودکار اکسپلویت برای دو نوع آسیب‌پذیری سرریز بافر در پشته و بازنویسی اشاره‌گر تابع در برنامه‌های کاربردی در بستر سیستم‌عامل‌های 32 بیتی اکس‌پی و ویندوز7 ارائه می‌شود. اکسپلویت‌های تولیدشده به این روش، با عبور از محافظ‌های کوکی پشته، محافظ جلوگیری از اجرای کد در بخش داده و محافظ تصادفی نمودن فضای آدرس برنامه، امکان در اختیار گرفتن اجرا را در برنامه آسیب‌پذیر خواهد داد. اگرچه این راه‌کار، تمام آسیب‌پذیری‌ها را پوشش نخواهد داد ولی چارچوبی ارائه می‌کند که می‌توان در بستر آن، برای آسیب‌پذیری‌های دیگر نیز اکسپلویت تولید نمود.

کلیدواژه‌ها


J. Medeiros, “Automated Exploit Development,” The future of exploitation is here, Grayscale Research, 2007.##
S. Heelan“ ,Automatic Generation of Control Flow Hijacking Exploits for Software Vulnerabilities” , University of Oxford, 2009.##
S. K. C. B. L. T. H  and D. B. Thanassis Avgerinos, “AEG: Automatic Exploit Generation ”,Proceedings of the Network and Distributed Security Symposium,  2011.##
B. L. T. Hao“ ,Automatic Heap Exploit Generation, ” Carnegie Mellon University, 2012.##
N. Waisman, “Understanding and bypassing Windows Heap Protection, ”Immunity Security Research, 2007.##
R. C. Seacord, “Secure Coding in C and C++,” Software Engineering Institute Carnegie Mellon University, 2013.##
J. H. F. L. G. R. Chris Anley, “The Shellcoder’s Handbook (Second Edition), ”Wiley Publishing, 2007.##
Corelan Team, “writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-3-seh ”,Corelan Team, 25 7 2009.  Available: https://www.corelan.be/index.php/2009/07/25/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-3-seh.##
Corelan Team“ ,exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr”, Corelan Team, 219 2009. Available: https://www.corelan.be/index.php/2009/09/21/exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr.##
D. A. D. Zovi“ ,Return-Oriented Exploitation”, BlackHat_USA ,2010.##
T  .Reynolds, “Address- Space- Layout- Randomization”,  NullSecurity, 154, 2012. Available: http://www.intelligentexploit.com/articles/Address-Space-Layout-Randomization.pdf.##
Corelan Team“ ,exploit-writing-tutorial-part-11-heap-spraying-demystified ”, Corelan Team, 31 12 2011. Available: https://www.corelan.be/index.php/2011/12/31/exploit-writing-tutorial-part-11-heap-spraying-demystified/.##
F. J. Serna“ ,The info leak era on software exploitation ”, BlackHat_USA, 2012.##
Intel“,pin-a-dynamic-binary-instrumentation-tool” , Intel, 13 6 2012 Available: https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool.##
E. Barbosa, “Taint Analysis, ” COSEINC - Solid Security, Verified, 2009.##