SaVioR: Thwarting Stack-Based Memory Safety Violations by Randomizing Stack Layout

被引:3
|
作者
Lee, Seongman [1 ]
Kang, Hyeonwoo [1 ]
Jang, Jinsoo [2 ]
Kang, Brent Byunghoon [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Daejeon 34141, South Korea
[2] Chungnam Natl Univ, Daejeon 305764, South Korea
基金
新加坡国家研究基金会;
关键词
Layout; Security; Runtime; Resource management; Benchmark testing; C plus plus languages; Software; Stack layout randomization; exploit mitigation;
D O I
10.1109/TDSC.2021.3063843
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Stack-based memory corruption vulnerabilities have been exploited, allowing attackers to execute arbitrary code and read/write arbitrary memory. Although several solutions have been proposed to prevent memory errors on the stack, they are either limited to a specific type of attack (either spatial or temporal attacks) or cause significant performance degradation. In this article, we introduce SaVioR, an efficient and comprehensive stack protection mechanism. The key technique involves randomization of the stack layout to reduce its predictability and exploitability. SaVioR isolates an individual object from spatially and temporally adjacent vulnerable objects and randomizes each object's location, which prevents attackers from predicting the stack layout and thus reduces the likelihood of memory errors being exploited. We implemented SaVioR based on the LLVM compiler framework and applied it to the SPEC CPU2006 benchmarks and real-world applications. Our security evaluation showed that SaVioR provides a high degree of randomness in the stack layout and thus reduces the likelihood of successful exploitation of spatial and temporal memory errors on the stack. Our performance evaluation also demonstrated that it incurs a modest performance overhead (14 percent) with the SPEC CPU2006 benchmark suite, which improves performance compared to the state-of-the-art stack protection while achieving a comparable security level.
引用
收藏
页码:2559 / 2575
页数:17
相关论文
共 50 条
  • [1] Stack-based Music Recommendation
    Zhao, Yong-hua
    [J]. INTERNATIONAL CONFERENCE ON ADVANCED COMPUTER SCIENCE AND ENGINEERING (ACSE 2014), 2014, : 290 - 294
  • [2] STACK-BASED SORTING ALGORITHMS
    AMMAR, RA
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 1989, 9 (03) : 225 - 239
  • [3] Smokestack: Thwarting DOP Attacks with Runtime Stack Layout Randomization
    Aga, Misiker Tadesse
    Austin, Todd
    [J]. PROCEEDINGS OF THE 2019 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO '19), 2019, : 26 - 36
  • [4] STACK-BASED SCHEDULING OF REALTIME PROCESSES
    BAKER, TP
    [J]. REAL-TIME SYSTEMS, 1991, 3 (01) : 67 - 99
  • [5] Stack-based typed assembly language
    Morrisett, G
    Crary, K
    Glew, N
    Walker, D
    [J]. JOURNAL OF FUNCTIONAL PROGRAMMING, 2002, 12 : 43 - 88
  • [6] Stack-based typed assembly language
    Morrisett, Greg
    Crary, Karl
    Glew, Neal
    Walker, David
    [J]. Journal of Functional Programming, 2002, 12 (01) : 43 - 88
  • [7] Enforcing Stack-Based Information Leaks
    Georgescu, Adele
    [J]. INNOVATION VISION 2020: FROM REGIONAL DEVELOPMENT SUSTAINABILITY TO GLOBAL ECONOMIC GROWTH, VOL I-VI, 2015, : 2807 - 2817
  • [8] A STACK-BASED APPROACH FOR SHADING OF REGIONS
    LIN, F
    PAN, YH
    [J]. COMPUTERS & GRAPHICS, 1992, 16 (01) : 79 - 84
  • [9] XCS with stack-based genetic programming
    Lanzi, PL
    [J]. CEC: 2003 CONGRESS ON EVOLUTIONARY COMPUTATION, VOLS 1-4, PROCEEDINGS, 2003, : 1186 - 1191
  • [10] Hardware Implementation of Stack-Based Replacement Algorithms
    Ghasemzadeh, Hassan
    Mazrouee, Sepideh
    Moghaddam, Hassan Goldani
    Shojaei, Hamid
    Kakoee, Mohammad Reza
    [J]. PROCEEDINGS OF WORLD ACADEMY OF SCIENCE, ENGINEERING AND TECHNOLOGY, VOL 16, 2006, 16 : 135 - +