Boundless Memory Allocations for Memory Safety and High Availability

Publikation: Beitrag zu KonferenzenPaperBeigetragenBegutachtung

Beitragende

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

OriginalspracheEnglisch
Seitenumfang12
PublikationsstatusVeröffentlicht - 2011
Peer-Review-StatusJa

Konferenz

Titel41st Annual IEEE/IFIP International Conference on Dependable Systems and Networks 2011
KurztitelDSN 2011
Veranstaltungsnummer41
Dauer27 - 30 Juni 2011
BekanntheitsgradInternationale Veranstaltung
StadtHong Kong
LandChina

Schlagworte

Forschungsprofillinien der TU Dresden

DFG-Fachsystematik nach Fachkollegium

Schlagwörter

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