Manuel Rigger, Thomas Pekarek, Hanspeter Mössenböck,
"Context-Aware Failure-Oblivious Computing as a Means of Preventing Buffer Overflows"
: Lecture Notes in Computer Science book series (LNCS, volume 11058), Vol. 11058, Springer, 12-2018, ISBN: 978-3-030-02743-8
Context-Aware Failure-Oblivious Computing as a Means of Preventing Buffer Overflows
Sprache des Titels:
Lecture Notes in Computer Science book series (LNCS, volume 11058)
In languages like C, buffer overflows are widespread. A common mitigation technique is to use tools that detect them during execution and abort the program to prevent data leakage or the diversion of control flow. However, for server applications, it would be desirable to prevent such errors while maintaining availability of the system. To this end, we present an approach to handling buffer overflows without aborting the program. This approach involves implementing a recovery logic in library functions based on an introspection function that allows querying the size of a buffer. We demonstrate that introspection can be implemented in popular bug-finding and bug-mitigation tools such as LLVM?s AddressSanitizer, SoftBound, and Intel-MPX-based bounds checking. We evaluated our approach in a case study of real-world bugs and show that for tools that explicitly track bounds data, introspection results in a low performance overhead.