Exterminator: Automatically Correcting Memory Errors with High Probability
Novark, Berger, Zorn
fault detection memory allocation bugs security buffer overflow dangling pointer
@article{novark:cacm-2008,
title={{Exterminator}: Automatically Correcting Memory Errors
with High Probability},
author={Gene Novark and Emery D. Berger and Benjamin G. Zorn},
journal={Communications of the {ACM}},
volume={51},
number={12},
month={December},
year={2008}
Overviews Exterminator, a memory allocator that detects and corrects buffer overflows and dangling pointers at runtime
- Generate multiple heaps for a program, randomizing both the canary value filling the heap and the memory allocation locations
- Iterative mode: Run the program multiple times to generate those images
- Replicated mode: Maintain multiple randomized heaps at once
- Cumulative mode: Combine heap summaries captured from many users
- Analyze those images to determine probable under-allocations, determining a value to pad the size by, as well as erroneous frees, determining a deferral period for the deallocation
Of note:
- Correcting for memory problems by having multiple copies of the heap running at once and voting between them on each read (much like RAID), to determine the correct value