Affiliation:
1. University of Pennsylvania, Philadelphia, PA, USA
Abstract
The serious bugs and security vulnerabilities facilitated by C/C++'s lack of bounds checking are well known, yet C and C++ remain in widespread use. Unfortunately, C's arbitrary pointer arithmetic, conflation of pointers and arrays, and programmer-visible memory layout make retrofitting C/C++ with spatial safety guarantees extremely challenging. Existing approaches suffer from incompleteness, have high runtime overhead, or require non-trivial changes to the C source code. Thus far, these deficiencies have prevented widespread adoption of such techniques.
This paper proposes SoftBound, a compile-time transformation for enforcing spatial safety of C. Inspired by HardBound, a previously proposed hardware-assisted approach, SoftBound similarly records base and bound information for every pointer as disjoint metadata. This decoupling enables SoftBound to provide spatial safety without requiring changes to C source code. Unlike HardBound, SoftBound is a software-only approach and performs metadata manipulation only when loading or storing pointer values. A formal proof shows that this is sufficient to provide spatial safety even in the presence of arbitrary casts. SoftBound's full checking mode provides complete spatial violation detection with 67% runtime overhead on average. To further reduce overheads, SoftBound has a store-only checking mode that successfully detects all the security vulnerabilities in a test suite at the cost of only 22% runtime overhead on average.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference48 articles.
1. Adobe Reader vulnerability exploited in-the-wild 2008. http://www.trustedsource.org/blog/118/Recent-Adobe-Reader-vulnerability-exploited-in-the-wild. Adobe Reader vulnerability exploited in-the-wild 2008. http://www.trustedsource.org/blog/118/Recent-Adobe-Reader-vulnerability-exploited-in-the-wild.
2. Adobe Security Advisories: APSB08-19 Nov. 2008. http://www.adobe.com/support/security/bulletins/apsb08-19.html. Adobe Security Advisories: APSB08-19 Nov. 2008. http://www.adobe.com/support/security/bulletins/apsb08-19.html.
3. Control-flow integrity
4. Preventing Memory Error Exploits with WIT
5. Efficient detection of all pointer and array access errors
Cited by
98 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. EPIC: Efficient and Proactive Instruction-level Cyberdefense;Proceedings of the Great Lakes Symposium on VLSI 2024;2024-06-12
2. A Survey of Software Dynamic Analysis Methods;Programming and Computer Software;2024-02
3. CTL-I: Infrared Few-Shot Learning via Omnidirectional Compatible Class-Incremental;Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering;2024
4. How Close Is Existing C/C++ Code to a Safe Subset?;Journal of Cybersecurity and Privacy;2023-12-28
5. BinWrap: Hybrid Protection against Native Node.js Add-ons;Proceedings of the ACM Asia Conference on Computer and Communications Security;2023-07-10