مواردی که شبه آنها خواهیم پرداخت:
بررسی روش های حمله به نرم افزارها
نرم افزارهای کاربردی
مروری بر حملات سرریز بافر
نرم افزارهای تحت وب
مروری بر حملات رایج (SQLi, XSS, Harvesting, …)
بررسی روش های کشف ضعف های امنیتی
بازبینی کد (Source-code Audit)
Fuzzing & Fault-Injection
Binary Analyzing
بررسی روش های مقابله با حملات
سیستم های محافظتی موجود در سطح سیستم عامل و سخت افزار
سیستم های محافظتی ایجاد شده توسط نرم افزارهای جانبی
---------------------------------------
حمله به نرم افزار – نرم افزارهای کاربردی:
ضعف امنیتی در نرم افزار چیست ؟
منظور از Exploit کردن یک ضعف امنیتی ؟
اهداف استفاده از ضعف های امنیتی نرم افزار
ایجاد اختلال در روال کار نرم افزار یا سیستم (DoS)
اجرای دستورالعملی خارج از روال معمول اجرای نرم افزار(Controling Software)
بدست گرفتن کنترل کامل نرم افزار یا سیستم عامل(Controling System)
Payload چیست ؟
نرم افزارهای کاربردی – حملات سرریز بافر:
بررسی روال اجرای یک نرم افزار
اختصاص یک محدوده آدرس در حافظه برای بارگذاری دستورالعمل ها و اطلاعات لازم
بارگذاری سگمنت های تعریف شده در نرم افزار
.text : حاوی دستورالعمل های اجرایی برنامه
.bss : حاوی اطلاعات و متغیر های تعریف نشده (uninitialized data)
.data : حاوی اطلاعات و متغیر های تعریف شده (static initialized data)
اختصاص فضای Stack و Heap
سرریز بافر زمانی رخ میدهد که حجم اطلاعات کپی شده به بافر ، بیشتر از میزان مشخص شده برای بافر باشد.
#include
Int main (int arge , char **argv)
{
char target[5]=“AAAA”
strcpy(target, “AAAAABBBBCCCC”);
Printf(“%\n”,target”);
Return 0;
}
بررسی یک کد آسیب پذیر به 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; }
شامل 57 اسلاید powerpoint
دانلود پاورپوینت مشکلات امنیتی نرم افزارها (مروری بر روش های کشف ، حمله و مقابله)