یک نوع می‌باشد که در ناحیهٔ داده‌های ( ) رخ می‌دهد. سرریز هیپ به شیوه‌های متفاوت بنابر سرریزهای مبتنی بر استک بهره‌برداری (استخراج) می‌شود. حافظه در هیپ به صورت پویا در زمان اجرا توسط برنامه تخصیص داده می‌شود و به‌طور کلی شامل داده‌های برنامه می‌باشد. استثمار با تخریب کردن در روش‌های خاص برای ایجاد برنامه‌های کاربردی به منظور بازنویسی ساختارهای داخلی مثل انجام می‌شود. تکنیک سرریز هیپ استاندارد، بر روی حافظهٔ پویایی که به صورت پیوندی اختصاص داده می‌شود (مانند داده‌های متا) رونویسی می‌شود و با استفاده از نتایج معاوضهٔ اشاره گر، یک اشاره گر تابع برنامه را بازنویسی می‌کند.
 یک مثال نمونه بر روی این است که دو بافردر کنار یکدیگر بر روی هیپ اختصاص داده می‌شود. نوشتن فراتر از مرز اولین بافر اجازه می‌دهد که داده‌های متا را در بافر دوم بازنویسی کنیم. بیت مورد استفاده از بافر دوم را به صفر تنظیم می‌کنیم و طول را نیز به یک مقدار منفی که اجازه می‌دهد بایت‌های تهی (null) کپی شوند، تنظیم می‌کنیم. وقتی که برنامه تابع free() را بر روی بافر اول اجرا می‌کند، آن تلاش خواهد کرد که دو بافر را در یک بافر ادغام کند. هنگامی که این اتفاق می‌افتد، بافری که آزاد فرض می‌شود، انتظار می‌رود که دو اشاره گر FD و BK را در هشت بایت اول بافری که قبلاً اختصاص داده شده‌است نگه دارد. اشاره گر BK به روی FD می‌نویسد و می‌تواند برای بازنویسی یک اشاره گر استفاده شود. به هر حال به دلایل مختلف این دیگر امکان‌پذیر نیست.
 یک رویداد سرریز ممکن است در تخریب داده‌ها یا رفتار غیر منتظره توسط هر پروسه‌ای که تمایل دارد از حافظه استفاده کند، نتیجه شود. در بدون ، این می‌تواند هرگونه فرایندی بر روی سیستم باشد. یک استثمار عمدی ممکن است در داده‌ها در یک مکان خاص نتیجه شود که با یک روش خاص به تغییر داده می‌پردازد یادر کدهای دلخواه که در حال اجراست، آن را تغییر می‌دهد. ، یک مثالی از خطر سریز هیپ است که می‌تواند به یک کاربر کامپیوتر ارائه شود.
 ( jailbreaking) اغلب از سرریز هیپ برای به دست آوردن کدهای دلخواه، معمولاً برای استثمار هسته به منظور رسیدن به توانایی جایگزین کردن هسته با یک jailbreak فراهم می‌شود.
 همچنانکه سرریز بافر رخ می‌دهد، سه راه اصلی برای محافظت سرریز هیپ وجود دارد. چندین سیستم عامل مدرن مانند ویندوز و لینوکس چندین پیاده‌سازی را برای هر سه روش فراهم می‌کند.
 
 
 کتابخانهٔ از نسخهٔ 2.3.6، شامل راهکارهایی امنیتیست که می‌تواند سرریز هیپ را پس از رخ دادن تشخیص دهد، برای مثال با چک کردن ثبات اشاره گر هنگامی که unlike (جداکردن) رافراخوانی می‌کند. اما مادامی که این راهکارها محافظت در برابر استثمارهای به سبک قدیمی انجام می‌دهند، قابل اعتماد و غیرقابل استثمار نیستند. همانطور که در توصیف شده‌است، توصیفات بیشتری نیز در داده شده‌است. علاوه بر این سیستم‌عامل‌های مبنی بر لینوکس از سال ۲۰۰۵ از پشتیبانی کرده‌است. هرچند با پیاده‌سازی بهتری در سال‌ها قبل معرفی شده بود. همچنین لینوکس پشتیبانی از NX-bit را از سال ۲۰۰۴ را فراهم کرده‌است.
 از ماه آوریل سال ۲۰۰۳ در و در اوت ۲۰۰۴ در با در برابر سرریزهای هیپ مقیم در بافر محافظت کرده‌است. این کاهش لغو پیوند و کوکی‌های هدر ورودی هیپ را بی خطر می‌سازد. نسخه‌های بعدی ویندوز مثل ویستا، سرور ۲۰۰۸ و این موارد را شامل می‌شوند: حذف ساختارهای داده‌ای که معمولاً مورد هدف قرار می‌گیرند، ورودی هیپ تصادفی، گسترش نقش کوکی هدر هیپ، تصادفی کردن آدرس پایهٔ هیپ، تابع رمزگذاری اشاره گر، پایان دادن به تخریب هیپ و تنوع الگوریتم. معمولی (DEP) و همچنین ASLR به کاهش این حمله کمک می‌کند.
{"title": "سرریز هیپ", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%B3%D8%B1%D8%B1%DB%8C%D8%B2_%D9%87%DB%8C%D9%BE&oldid=33486407", "language": "fa"}