DieHarder: Securing the Heap.
Gene Novark and Emery Berger
ACM Conference on Computer and Communications Security (CCS 2010)
streaming video of talk at Microsoft Research, August 2011

Heap-based attacks depend on a combination of memory management error and an exploitable memory allocator. Many allocators include ad hoc countermeasures against particular exploits but their effectiveness against future exploits has been uncertain.
This paper presents the first formal treatment of the impact of allocator design on security. It analyzes a range of widely-deployed memory allocators, including those used by Windows, Linux, FreeBSD and OpenBSD, and shows that they remain vulnerable to attack. It them presents DieHarder, a new allocator whose design was guided by this analysis. DieHarder provides the highest degree of security from heap-based attacks of any practical allocator of which we are aware while imposing modest performance overhead. In particular, the Firefox web browser runs as fast with DieHarder as with the Linux allocator.

source code at https://github.com/emeryberger/diehard

Related projects: Archipelago, DieHard, Exterminator
DieHarder: Securing the Heap
Microsoft Research, Redmond, WA, August 2011
streaming video with presentation slides
Gene Novark Emery Berger