حملات Buffer OverFlow یا سرریز بافر چیست ؟

BUFFER

[vc_row][vc_column][vc_column_text]

حملات Buffer OverFlow یا سرریز بافر چیست ؟

 

× بافر چیست ؟

» اگر برنامه نویس باشید با این اصطلاح آشنایی دارید، به خصوص اگر با زبان C کار می کنید !
بافر قسمتی از حافظه است که به طور موقت برای نگه داری اطلاعات یک نرم افزار اختصاص یافته است. اطلاعات پیش از رسیدن به محل اصلی در مکانی به نام بافر به صورت موقت ذخیره میشوند. بافر معمولا یک ظرفیت از پیش مشخص شده دارد که توسط برنامه نویس تعیین می شود.

 

» حمله سرریز بافر یکی از اولین و خطرناک ترین حملات به برنامه های کاربردی می باشد !
اولین مورد برای حمله به یک سیستم هدف گرفتن پشته سیستم عامل است. سرریز پشته می تواند منجر به مختل شدن یک برنامه کاربردی یا سیستم عامل شود، گونه بسیار پیچیده و خطرناکی از حمله به پشته آن است، که نفوذگر بتواند پس از سرریز شدن، کنترل اجرای آن برنامه یا پروسه را در اختیار گیرد. امروزه حمله سرریز پشته یکی از یکی از روش های مهلک و رایج حمله علیه ماشین های آسیب پذیر محسوب می شود. هر برنامه یا پروسه که در بخشی از کد خود از پشته یا بافر استفاده کند، ممکن است در اثر سرریز شدن به ناگاه مختل شود. این نوع حملات شبیه حملات Dos و DDos هستند با این تفاوت که که Dos باعث Down شد سرور میشود و..

 

 

حملات Buffer OverFlow

 

ساخت اسکریپت دیداس با استفاده از زبان پایتون کلیک کنید !

 

» نفوذ پروسه هایی را که به نحوی از پشته یا بافر استفاده کرده اند ولی تمهیدی نیندیشیده اند !
کشف می کند و آنها را مورد هدف قرار می دهد. متاسفانه برخی از سرویس دهنده های حساس شبکه قبل از عرضه به دقت آزمایش نشده اند و اگر یک رشته خاص و طولانی برای آنها ارسال شود، به ناگاه در هم می شکنند. زیرا سرریز شدن بافر در آنها منجر به نقض حریم حافظه شده و رون اجرای آنها توسط سیستم عامل متوقف می شود. گونه بسیار پیچیده و خطرناکی از حمله به پشته آن است که نفوذگر بتواند پشته را به نحوی سرریز کند که پس از سرریز شدن، کنترل اجرای آن برنامه یا پروسه را در اختیار بگیرد !

 

 

~ جلوگیری از حملات Buffer OverFlow !

» در هنگام برنامه‌نویسی باید از این توابع استفاده نشود !
این توابع بدون بررسی کردن حجم بافر آن‌ها را بازنویسی می‌کنند که این مسئله می‌تواند دیگر مقادیر موجود در پشته مانند همان آدرس برگشت تابع را بازنویسی کند..


نام تابع دلیل
        strcpy(char *dest, const char *src)
ممکن است بافر dest سرریز شود
strcat(char *dest, const char *src)
       ممکن است بافر dest سرریز شود.
getwd(char *buf)
ممکن است بافر buf سرریز شود.
gets(char *s)
ممکن است بافر s سرریز شود
[vf]scanf(const char *format, …)
تمام آرگومان‌ها در معرض سرریز شدن قرار دارند
realpath(char *path, char resolved_path[])
ممکن است بافر path سرریز شود.
sprintf(char *str, const char *format, …)
ممکن است بافر str سرریز شود.

 

» جای تابع Strcpy می‌توان از Strncpy و به جای تابع Strcat می‌توان از Strncat استفاده کرد که این توابع با بررسی حدود بافر مقصد باعث جلوگیری از وقوع سرریز بافر می‌شوند. همینطور تابع Fgets هم برای ورودی و خروجی استاندارد مناسب است و..

 

 

دانلود کتاب حملات سرریز بافر کلیک کنید !

[/vc_column_text][/vc_column][/vc_row]

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
IDS چیست ؟

روش‌ های تشخیص نفوذ IDS چیست ؟ برای شناسایی داده‌ های مخفی

آنچه در این پست میخوانید بررسی فنی و ساختار سیستم های تشخیص نفوذروش های تشخیص نفوذشناسایی داده های مخفی در…

بیشتر بخوانید
شبکه های هوشمند

شبکه‌ های هوشمند (AI-Driven Networks) چیست ؟

آنچه در این پست میخوانید تفاوت های کلیدی میان شبکه های سنتی و شبکه های مبتنی بر هوش مصنوعیفرصت های…

بیشتر بخوانید
مدیریت شبکه‌ های IoT

نقش هوش مصنوعی در مدیریت شبکه‌ های IoT

آنچه در این پست میخوانید نقش هوش مصنوعی در بهینه سازی و امنیتتفاوت های بنیادی: مدیریت سنتی در مقابل مدیریت…

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *