SlideShare a Scribd company logo
1 of 16
Download to read offline
1
‫مقدمه‬
‫باشد‬ ‫می‬ ‫کامپیوتری‬ ‫های‬ ‫سیستم‬ ‫درون‬ ‫به‬ ‫نفوذ‬ ‫جهت‬ ‫زیادی‬ ‫های‬ ‫راه‬.‫گ‬ ‫نفوذ‬ ‫برای‬ ‫ها‬ ‫راه‬ ‫این‬ ‫از‬ ‫بعضی‬‫ر‬
‫اختیار‬ ‫بتواند‬ ‫نفوذگر‬ ‫که‬ ‫شود‬ ‫می‬ ‫باعث‬ ‫دیگر‬ ‫بعضی‬ ‫اما‬ ‫آورد‬ ‫می‬ ‫ارمغان‬ ‫به‬ ‫را‬ ‫کمی‬ ‫و‬ ‫محدود‬ ‫اختیارات‬‫کامل‬
‫گران‬ ‫نقوذ‬ ‫قول‬ ‫به‬ ‫یا‬ ‫گرفته‬ ‫دست‬ ‫به‬ ‫را‬ ‫سیستم‬shell‫نفوذ‬ ‫های‬ ‫راه‬ ‫از‬ ‫یکی‬ ‫بگیرد‬ ‫نظر‬ ‫مورد‬ ‫دستگاه‬ ‫از‬
buffer overflow‫است‬.
‫است‬ ‫استوار‬ ‫نویس‬ ‫برنامه‬ ‫منطقی‬ ‫اشتباه‬ ‫بر‬ ‫روش‬ ‫این‬ ‫ذات‬.‫پی‬ ‫صورت‬ ‫به‬ ‫نویسان‬ ‫برنامه‬ ‫همه‬ ‫یعنی‬‫بر‬ ‫فرض‬ ‫ش‬
‫پایی‬ ‫های‬ ‫الیه‬ ‫در‬ ‫و‬ ‫شود‬ ‫می‬ ‫زده‬ ‫صدا‬ ‫برنامه‬ ‫توسط‬ ‫که‬ ‫اشان‬ ‫برنامه‬ ‫داخلی‬ ‫توابع‬ ‫ورودی‬ ‫که‬ ‫باورند‬ ‫این‬‫تری‬ ‫ن‬
‫وجود‬ ‫ورودی‬ ‫اطالعات‬ ‫بودن‬ ‫صحیح‬ ‫کردن‬ ‫چک‬ ‫به‬ ‫احتیاجی‬ ‫لذا‬ ‫و‬ ‫جداست‬ ‫برنامه‬ ‫ورودی‬ ‫قسمت‬ ‫از‬ ‫دارد‬ ‫قرار‬
‫ندارد‬
2
‫بدانیم‬ ‫باید‬ ‫که‬ ‫اصطالحاتی‬
‫بافر‬
‫کند‬ ‫می‬ ‫نگهداری‬ ‫رو‬ ‫اطالعات‬ ‫که‬ ‫حافظه‬ ‫در‬ ‫موقت‬ ‫فضای‬ ‫یه‬
‫بافر‬ ‫سرریز‬
‫باشد‬ ‫بافر‬ ‫اندازه‬ ‫از‬ ‫تر‬ ‫بزرگ‬ ‫بافر‬ ‫در‬ ‫شده‬ ‫نوشته‬ ‫اطالعات‬ ‫که‬ ‫افتد‬ ‫می‬ ‫اتفاق‬ ‫زمانی‬
3
‫سیستم‬ ‫امنیت‬ ‫نگاه‬ ‫از‬ ‫بافر‬ ‫ریز‬ ‫سر‬
‫نوع‬ ‫ترین‬ ‫خطرناک‬ ‫از‬ ‫یکی‬ ‫بافر‬ ‫سرریز‬Bug‫سطح‬ ‫در‬ ‫ای‬ ‫برنامه‬ ‫یا‬ ‫سرویس‬ ‫در‬ ‫اگر‬ ‫که‬ ‫باشد‬ ‫می‬
Admin‫اندازد‬ ‫می‬ ‫خطر‬ ‫به‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫را‬ ‫سیستم‬ ‫آن‬ ‫امنیت‬ ‫باشد‬ ‫داشته‬ ‫وجود‬.
‫نوع‬ ‫این‬ ‫شد‬ ‫گفته‬ ‫که‬ ‫همانطور‬ ‫و‬Bug‫شود‬ ‫می‬ ‫ایجاد‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫ساده‬ ‫بسیار‬ ‫های‬ ‫غفلت‬ ‫از‬.
‫نوع‬ ‫این‬ ‫از‬ ‫زیادی‬ ‫های‬ ‫کرم‬Bug‫در‬ ‫را‬ ‫خود‬ ‫توانست‬ ‫که‬ ‫موریس‬ ‫کرم‬ ‫مثال‬ ‫عنوان‬ ‫به‬ ‫کردند‬ ‫استفاده‬
‫کند‬ ‫پخش‬ ‫اینترنت‬‫ویا‬Code Red Worm‫سال‬ ‫در‬ ‫که‬2001‫سرویس‬ ‫توانست‬IIS 5.0
(Microsoft’s Internet Information Services)‫دهد‬ ‫قرار‬ ‫حمله‬ ‫مورد‬ ‫را‬
4
‫کردن‬ ‫پیدا‬ ‫نحوه‬BUFFER OVERFLOW‫برنامه‬ ‫در‬
.1‫کنند‬ ‫نمی‬ ‫بررسی‬ ‫را‬ ‫ها‬ ‫باند‬ ‫که‬ ‫توابعی‬(‫خطرناک‬ ‫توابع‬)
•Strcpy
•Getc
•Scanf
•Strcat
2.‫خطا‬ ‫و‬ ‫سعی‬ ‫روش‬
5
‫چگونه‬‫دهد‬ ‫می‬ ‫رخ‬
‫که‬ ‫دهند‬ ‫تغییر‬ ‫را‬ ‫مجاور‬ ‫های‬ ‫بالک‬ ‫اطالعات‬ ‫است‬ ‫ممکن‬ ‫شوند‬ ‫بافر‬ ‫وارد‬ ‫طول‬ ‫کردن‬ ‫چک‬ ‫بدون‬ ‫مستقیما‬ ‫اطالعات‬ ‫که‬ ‫هنگامی‬‫عث‬ ‫با‬
‫گویند‬ ‫بافر‬ ‫کردن‬ ‫سرریز‬ ‫آن‬ ‫به‬ ‫که‬ ‫شود‬ ‫می‬ ‫برنامه‬ ‫در‬ ‫خطا‬ ‫بروز‬
‫مثال‬ ‫عنوان‬ ‫به‬:
‫دارد‬ ‫قرار‬ ‫هم‬ ‫مجاورت‬ ‫در‬ ‫که‬ ‫باشد‬ ‫می‬ ‫متغیر‬ ‫دو‬ ‫دارای‬ ‫برنامه‬ ‫یک‬.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
STACK OVERFLOW LAYOUT
7
FOOTPRINT OF STACK OVERFLOW ATTACK
Classic attack “ payload”
1. An Nop sled
2. A shell code
3. A new return address
8
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
HOW CANARY DETECT STACK SMASHING
10
STACK SMASHING ATTACKS & PROTECTION
• Protection
 Non-executable stack
 ASLR(Address space
layout randomization)
 Canaries
• Attacks
 Payload
 Return to libc attack
11
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
‫واقعی‬ ‫دنیا‬ ‫در‬ ‫هایی‬ ‫مثال‬
 SQL Slammer Worm (at 2003 )
 Blaster Worm (Dcom at windows)
 Code red Worm
 Morris Worm (Unix Finger Server - getc)
13
SPREAD OF SLAMMER
14
‫منابع‬
1. Anatomy of stack smashing-DrDobbs.htm
2. www.insecure.org/stf/smashstack.html
3. www.securitytube.net
15
‫گرامی‬ ‫دوستان‬ ‫و‬ ‫چعبی‬ ‫استاد‬ ‫از‬ ‫تشکر‬
16

More Related Content

Similar to Stack Buffer Overflow Attack

ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس Shwana M
 
Web Application Security Test
Web Application Security TestWeb Application Security Test
Web Application Security TestSaeid Sadeghi
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
انواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfانواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfAliAzarifar
 
IP SYSTEM.......
IP SYSTEM.......IP SYSTEM.......
IP SYSTEM.......Nasim Farsi
 
Ips سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذIps سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذkamrankamran1234
 
آموزش کوتاه و کاربردی Nmap
آموزش کوتاه و کاربردی Nmapآموزش کوتاه و کاربردی Nmap
آموزش کوتاه و کاربردی Nmapteknetir
 
Java programming languages
Java programming languagesJava programming languages
Java programming languagesjavadib
 

Similar to Stack Buffer Overflow Attack (14)

ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
ڕاپۆرتێك ده‌رباره‌ی ئه‌نتی ڤایرۆس
 
Web Application Security Test
Web Application Security TestWeb Application Security Test
Web Application Security Test
 
ارائهٔ DLP
ارائهٔ DLPارائهٔ DLP
ارائهٔ DLP
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
Burp suite
Burp suiteBurp suite
Burp suite
 
انواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfانواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdf
 
Soap vs restful
Soap vs  restfulSoap vs  restful
Soap vs restful
 
Metasploit Tool
Metasploit ToolMetasploit Tool
Metasploit Tool
 
Keylogger
KeyloggerKeylogger
Keylogger
 
IP SYSTEM.......
IP SYSTEM.......IP SYSTEM.......
IP SYSTEM.......
 
Network penetration
Network penetrationNetwork penetration
Network penetration
 
Ips سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذIps سیستمهای پیشگیری از نفوذ
Ips سیستمهای پیشگیری از نفوذ
 
آموزش کوتاه و کاربردی Nmap
آموزش کوتاه و کاربردی Nmapآموزش کوتاه و کاربردی Nmap
آموزش کوتاه و کاربردی Nmap
 
Java programming languages
Java programming languagesJava programming languages
Java programming languages
 

Stack Buffer Overflow Attack

  • 1. 1
  • 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
  • 10. HOW CANARY DETECT STACK SMASHING 10
  • 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
  • 16. ‫گرامی‬ ‫دوستان‬ ‫و‬ ‫چعبی‬ ‫استاد‬ ‫از‬ ‫تشکر‬ 16