Boundless Memory Allocations for Memory Safety and High Availability

Research output: Contribution to conferencesPaperContributedpeer-review

Contributors

Abstract

Spatial memory errors (like buffer overflows) are still a major threat for applications written in C. Most recent work focuses on memory safety - when a memory error is detected at runtime, the application is aborted. Our goal is not only to increase the memory safety of applications but also to increase the application's availability. Therefore, we need to tolerate spatial memory errors at runtime. We have implemented a compiler extension, Boundless, that automatically adds the tolerance feature to C applications at compile time. We show that this can increase the availability of applications. Our measurements also indicate that Boundless has a lower performance overhead than SoftBound, a state-of-the-art approach to detect spatial memory errors. Our performance gains result from a novel way to represent pointers. Nevertheless, Boundless is compatible with existing C code. Additionally, Boundless provides a trade-off to reduce the runtime overhead even further: We introduce vulnerability specific patching for spatial memory errors to tolerate only known vulnerabilities. Vulnerability specific patching has an even lower runtime overhead than full tolerance.

Details

Original languageEnglish
Number of pages12
Publication statusPublished - 2011
Peer-reviewedYes

Conference

Title41st Annual IEEE/IFIP International Conference on Dependable Systems and Networks 2011
Abbreviated titleDSN 2011
Conference number41
Duration27 - 30 June 2011
Degree of recognitionInternational event
CityHong Kong
CountryChina

Keywords

Research priority areas of TU Dresden

DFG Classification of Subject Areas according to Review Boards

Keywords

  • Bounds checking, Fault tolerance, Comiler trnasformation, Availabilitity, Software safety