سرریز بافر | Buffer overflow

سرریز بافر یا Buffer overflow چیست؟

سرریز بافر (به انگلیسی: Buffer overflow) یک نقص امنیتی در نرم افزارها است و زمانی رخ می ­دهد که نرم افزار، حجم زیادی از داده ­ها را بر روی قسمت ­های مختلف حافظه بافر سیستم می ­نویسد. بنابراین هنگامی که نرم افزار در حال نوشتن داده‌ها در حافظه بافر[1] است، این داده نویسی از مرز بافر فراتر رفته و باعث رونویسی حافظه مجاور می‌شود. مثلاً اگر نرم افزاری یک بافر با سایز ثابت 128 بایت دارد، چنانچه 1024 بایت داده برای بافر ارسال شود، دچار سرریز حافظه خواهد شد. چنین حالتی موجب ایجاد خطا و در نهایت نیز از کارافتادگی سیستم شده و نفوذگر می ­تواند هر دستوری که می­ خواهد را به آن نرم افزار بدهد (همچون تزریق شل کد به منظور ایجاد دسترسی).

حملات سرریز بافر که بر اساس ارسال حجم زیاد و بیش از حد داده­ های یک نرم افزار به حافظه بافر سیستم اتفاق می­ افتند، ممکن است منجر به بروز رفتارهای غیرمتعارف و نامنظمی از جمله ایجاد خطاهای دسترسی به حافظه، نتایج نادرست یا نقض امنیت سیستم شوند. یک روش مناسب برای برطرف سازی این حمله، اعتبارسنجی متغیرها در فرم­ های نرم افزاری است. سرریز بافر در قسمت پشته داده که به عنوان «سرریز پشته» شناخته می‌شود می­ تواند بهره‌برداری را به شیوه‌ای متفاوت از سرریزهای مبتنی بر پشته انجام دهد. حافظه پشته به صورت پویا توسط برنامه، در زمان اجرا اختصاص داده شده و به طور معمول شامل داده‌های برنامه است.

 

خروج از نسخه موبایل