heap

Heap From Hackepedia

Heap Overflows

Due to bad programming some programs allow writing past the end of a buffer that has been allocated on the heap. This can result in the overwriting of other buffers and/or text. Another explanation is here.

OpenBSD's removal of the Heap

OpenBSD has done away with a heap growing upwards in version 3.8. Instead they mmap a region at a random location while making sure that other mapped regions are never adjacent creating a gap of uninitialized memory. This gap they call "guard pages" and they serve the function that when a buffer is overwritten that it will write into the guard page and cause a SIGSEGV signal saving the program from a successful heap attack. Image:OpenBSD-heap.png


German - von Hackepedia

Wegen schlechter Programmierung tun manche Programme es erlauben das man einen Puffer Überläuft im heap (haufen). Damit können andere Puffer überschrieben werden oder/und text.

OpenBSD's wegtun mit dem Heap

OpenBSD hat den heap der hochwächst seit version 3.8 entfernt. Anstatt machen sie einen mmap auf einer zufälligen Adresse und machen sicher das andere mmap'ings nicht genau neben dieser sind, was wiederum eine lücke mit uninitialisiertem speicher zwischen diesen mmap'ings macht. Diese lücke wird auch "guard pages" genannt und sie dienen der funktion das wenn ein Puffer überschrieben wird das sie in das Guard Page einschreiben und damit ein SIGSEGV signal herauslocken, was dann das Program von einem erfolgreichem Heap Attack schützt.