Compiler-Based Memory Safety Instrumentations in Practice: Usability, Performance, and Security Guarantees
Memory safety violations due to C’s undefined behavior, although well researched, still cause security breaches year by year. The most dangerous reported violations are spatial safety violations, where objects are accessed outside of their bounds. A wide variety of spatial safety sanitizers promise easy usage, broad security guarantees, and a low execution time overhead. However, only few of them are actually used.
Instead of proposing yet another sanitizer, we dig deep into Low-Fat Pointers and SoftBound, two approaches to generate fast-to-execute safe programs with strong safety guarantees, and identify pain points in their usage. We found that seemingly small simplifying assumptions or limitations of the approaches often lead to spurious error reports.
On top of analyzing usability issues, we set up a framework that abstracts common tasks of memory safety instrumentations, such as finding locations for checks and eliminating redundant checks. This abstraction allows us to draw a fair comparison between approaches when it comes to execution time and the number of safe accesses. We use this framework to give novel insights into how many accesses are provably safe, and where to attribute execution time overhead.
Our findings help future research on memory safety instrumentations by identifying issues that current approaches face in their practical application. We make our LLVM-based instrumentation framework available to reduce the effort required to implement new instrumentations and to ease comparisons to Low-Fat Pointers and SoftBound.
- Practical Experience Paper -
Tue 4 MarDisplayed time zone: Pacific Time (US & Canada) change
10:00 - 11:00 | |||
10:00 20mTalk | FastFlip: Compositional SDC Resiliency Analysis Main Conference Keyur Joshi University of Illinois at Urbana-Champaign, Rahul Singh University of Illinois Urbana-Champaign, Tommaso Bassetto University of Illinois Urbana-Champaign, Sarita Adve University of Illinois at Urbana-Champaign, Darko Marinov University of Illinois at Urbana-Champaign, Sasa Misailovic University of Illinois at Urbana-Champaign | ||
10:20 20mTalk | MTE4JNI: A Memory Tagging Method to Protect Java Heap Memory from Illicit Native Code Access Main Conference Huinan Chen Wuhan University, Jiang Ma OPPO Electronics Corp., Jason Xue MBZUAI, Qingan Li Wuhan University, China | ||
10:40 20mTalk | Compiler-Based Memory Safety Instrumentations in Practice: Usability, Performance, and Security Guarantees Main Conference Tina Jung Saarland Informatics Campus, Saarland University, Fabian Ritter Saarland University, Germany, Sebastian Hack Saarland University, Saarland Informatics Campus |