More Related Content
Similar to Stack Buffer Overflow Attack
Similar to Stack Buffer Overflow Attack (14)
Stack Buffer Overflow Attack
- 2. مقدمه
باشد می کامپیوتری های سیستم درون به نفوذ جهت زیادی های راه.گ نفوذ برای ها راه این از بعضیر
اختیار بتواند نفوذگر که شود می باعث دیگر بعضی اما آورد می ارمغان به را کمی و محدود اختیاراتکامل
گران نقوذ قول به یا گرفته دست به را سیستمshellنفوذ های راه از یکی بگیرد نظر مورد دستگاه از
buffer overflowاست.
است استوار نویس برنامه منطقی اشتباه بر روش این ذات.پی صورت به نویسان برنامه همه یعنیبر فرض ش
پایی های الیه در و شود می زده صدا برنامه توسط که اشان برنامه داخلی توابع ورودی که باورند اینتری ن
وجود ورودی اطالعات بودن صحیح کردن چک به احتیاجی لذا و جداست برنامه ورودی قسمت از دارد قرار
ندارد
2
- 3. بدانیم باید که اصطالحاتی
بافر
کند می نگهداری رو اطالعات که حافظه در موقت فضای یه
بافر سرریز
باشد بافر اندازه از تر بزرگ بافر در شده نوشته اطالعات که افتد می اتفاق زمانی
3
- 4. سیستم امنیت نگاه از بافر ریز سر
نوع ترین خطرناک از یکی بافر سرریزBugسطح در ای برنامه یا سرویس در اگر که باشد می
Adminاندازد می خطر به کلی طور به را سیستم آن امنیت باشد داشته وجود.
نوع این شد گفته که همانطور وBugشود می ایجاد نویسی برنامه در ساده بسیار های غفلت از.
نوع این از زیادی های کرمBugدر را خود توانست که موریس کرم مثال عنوان به کردند استفاده
کند پخش اینترنتویاCode Red Wormسال در که2001سرویس توانستIIS 5.0
(Microsoft’s Internet Information Services)دهد قرار حمله مورد را
4
- 5. کردن پیدا نحوهBUFFER OVERFLOWبرنامه در
.1کنند نمی بررسی را ها باند که توابعی(خطرناک توابع)
•Strcpy
•Getc
•Scanf
•Strcat
2.خطا و سعی روش
5
- 6. چگونهدهد می رخ
که دهند تغییر را مجاور های بالک اطالعات است ممکن شوند بافر وارد طول کردن چک بدون مستقیما اطالعات که هنگامیعث با
گویند بافر کردن سرریز آن به که شود می برنامه در خطا بروز
مثال عنوان به:
دارد قرار هم مجاورت در که باشد می متغیر دو دارای برنامه یک.Aمتغییر یکStringبا8و بیتBمقدار یکIntegerبا
2شده داده تخصیص حافظه بیت.مقدارAو شده پر صفر با اما خالیBمقدار3دارد درخود را
متغییر مقدار که میبینیم اینجا درBمتغیر مقدار توسطAبازنویسی(overwrite)برنامه در اختالل ایجاد باعث که است شده
موجب شود برنامه مهم اطالعات تغییر باعث اگر و شدهcrashگردد می برنامه شدن بسته و کردن
A B
0 0 0 0 0 0 0 0 0 3
A B
S A L A M R E Z a 0
6
- 8. FOOTPRINT OF STACK OVERFLOW ATTACK
Classic attack “ payload”
1. An Nop sled
2. A shell code
3. A new return address
8
- 9. PROTECTING CANARIES
Ssp subroutine
1. Ssp’s prolog
2. Initialization:
prepare local variable
3. Subroutine body:
subroutine’s algorithm
4. Clean up:
removing local variable
5. Ssp’s epilog
5. Return:
jump back to original address
Typical subroutine
1. Initialization:
prepare local variable
2. Subroutine body:
subroutine’s algorithm
3. Clean up:
removing local variable
4. return:
jump back to original address
9
- 11. STACK SMASHING ATTACKS & PROTECTION
• Protection
Non-executable stack
ASLR(Address space
layout randomization)
Canaries
• Attacks
Payload
Return to libc attack
11
- 12. IMPLEMENTATION IN COMPILERS
Ssp-stack smashing protector, in GNU’s gcc
Propolice for IBM’s XLS
Buffer security Check for Microsoft’s Visual compilers (option /GS)
12
- 13. واقعی دنیا در هایی مثال
SQL Slammer Worm (at 2003 )
Blaster Worm (Dcom at windows)
Code red Worm
Morris Worm (Unix Finger Server - getc)
13
- 15. منابع
1. Anatomy of stack smashing-DrDobbs.htm
2. www.insecure.org/stf/smashstack.html
3. www.securitytube.net
15