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

درک جریان های بافر Overflows

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

محاسبه برای ایمنی حافظه

محاسبات مناسب شامل تعیین حداکثر اندازه داده هایی است که می تواند به طور ایمن در یک بافر ذخیره شود. توسعه دهندگان باید اندازه انواع داده ها را در نظر بگیرند و اطمینان حاصل کنند که تخصیص بافر برای ورودی مورد انتظار کافی است.

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

استراتژی های جلوگیری از جریان های دو طرف

اجرای برنامه نویسی ایمن خطر استفاده از پرفرها را کاهش می دهد، این شامل استفاده از توابع امن مانند strncpy به جای strcpy [FLT3] و استفاده از چک کردن محدودیت.

استراتژی های اضافی شامل استفاده از زبان های برنامه نویسی مدرن است که حافظه را به طور خودکار مدیریت می کنند و از حفاظت از کامپایلر مانند بررسی های منظم کد و تست ها نیز به شناسایی آسیب پذیری های بالقوه کمک می کنند.

بهترین تمرین ها

  • اندازه بافر Calculate به طور دقیق بر اساس انواع داده ها است.
  • تمام داده های ورودی را قبل از پردازش معتبر کنید.
  • از توابع امن که کپی کردن داده ها را محدود می کنند استفاده کنید.
  • حفاظت از کامپایلر و زبان های مدرن
  • بررسی و تست کامل کد را انجام دهید.