پاورپوینت مشکلات امنیتی نرم افزارها (pptx) 57 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 57 اسلاید
قسمتی از متن PowerPoint (.pptx) :
مشکلات امنیتی نرم افزارها
مروری بر روش های کشف ، حمله و مقابله
2
مواردی که به آنها خواهیم پرداخت
بررسی روش های حمله به نرم افزارها
نرم افزارهای کاربردی
مروری بر حملات سرریز بافر
نرم افزارهای تحت وب
مروری بر حملات رایج (SQLi, XSS, Harvesting, …)
بررسی روش های کشف ضعف های امنیتی
بازبینی کد (Source-code Audit)
Fuzzing & Fault-Injection
Binary Analyzing
بررسی روش های مقابله با حملات
سیستم های محافظتی موجود در سطح سیستم عامل و سخت افزار
سیستم های محافظتی ایجاد شده توسط نرم افزارهای جانبی
3
حمله به نرم افزار – نرم افزارهای کاربردی
ضعف امنیتی در نرم افزار چیست ؟
منظور از Exploit کردن یک ضعف امنیتی ؟
اهداف استفاده از ضعف های امنیتی نرم افزار
ایجاد اختلال در روال کار نرم افزار یا سیستم (DoS)
اجرای دستورالعملی خارج از روال معمول اجرای نرم افزار(Controling Software)
بدست گرفتن کنترل کامل نرم افزار یا سیستم عامل(Controling System)
Payload چیست ؟
4
نرم افزارهای کاربردی – حملات سرریز بافر
بررسی روال اجرای یک نرم افزار
اختصاص یک محدوده آدرس در حافظه برای بارگذاری دستورالعمل ها و اطلاعات لازم
بارگذاری سگمنت های تعریف شده در نرم افزار
.text : حاوی دستورالعمل های اجرایی برنامه
.bss : حاوی اطلاعات و متغیر های تعریف نشده (uninitialized data)
.data : حاوی اطلاعات و متغیر های تعریف شده (static initialized data)
اختصاص فضای Stack و Heap
5
نرم افزارهای کاربردی – حملات سرریز بافر
سرریز بافر زمانی رخ میدهد که حجم اطلاعات کپی شده به بافر ، بیشتر از میزان مشخص شده برای بافر باشد.
#include
Int main (int arge , char **argv)
{
char target[5]=“AAAA”
strcpy(target, “AAAAABBBBCCCC”);
Printf(“%\n”,target”);
Return 0;
}
6
نرم افزارهای کاربردی – حملات سرریز بافر
بررسی یک کد آسیب پذیر به Stack Overflow
#include
#include
#include
#include
int Hijack()
{ cout << "This function should be hijacked!";
getchar();
return 0; }
int Function1()
{ char var1[15];
cout << "_________1234567890abcd" << endl;
cout << "Enter Var1:";
cin >> var1;
cout << var1 << endl;
return 0; }
int main()
{ Function1();
getchar();
return 0; }
EIP
Main()
Hijack()
1 2 3 4 5 . . .
. . . . A B C D
7
نرم افزارهای کاربردی – حملات سرریز بافر
اتفاقی که پس از سرریز بافر رخ میدهد : تخریب روال اجرا
EIP ( BCDE )
Main()
Hijack()
1 2 3 4 5 . . .
. . . . . 0 1 2 3 4 5 6
EBP ( AAAA )
8
نرم افزارهای کاربردی – حملات سرریز بافر
استفاده از قابلیت تغییرEIP برای کنترل نرم افزار وفراخوانی توابعی که در روال اجرای معمولی برنامه , فراخوانی نمیشوند
9
نرم افزارهای کاربردی – حملات سرریز بافر
با استفاده از روش ذکر شده ، میتوان اقدام به اجرای کد و دستورات دلخواه نمود
با توجه به اینکه داده های ارسالی ما مستقیمآ در حافظه درج میشوند ، دستورات می بایست به زبان ماشین باشد.
به دستوراتی که برای اجرا در حافظه درج میشوند اصطلاحآ Payload گفته میشود
رعایت نکردن نکاتی همچون عدم استفاده از کاراکترهای خاص (0x00) باعث بروز مشکل خواهد شد
برای اینکه بتوانیم دستورات دلخواه خود را اجرا کنیم ، میبایست آدرس دقیق آنها را پس از درج در حافظه بدانیم
روال پیاده سازی حملات در واقعیت ، بسیار پیچیده تر و مشکل تر میباشد ~