PUMM: Preventing Use-After-Free Using Execution Unit Partitioning

被引:0
|
作者
Yagemann, Carter [1 ]
Chung, Simon P. [2 ]
Saltaformaggio, Brendan [2 ]
Lee, Wenke [2 ]
机构
[1] Ohio State Univ, Columbus, OH 43210 USA
[2] Georgia Inst Technol, Atlanta, GA USA
关键词
SAFETY;
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Critical software is written in memory unsafe languages that are vulnerable to use-after-free and double free bugs. This has led to proposals to secure memory allocators by strategically deferring memory reallocations long enough to make such bugs unexploitable. Unfortunately, existing solutions suffer from high runtime and memory overheads. Seeking a better solution, we propose to profile programs to identify units of code that correspond to the handling of individual tasks. With the intuition that little to no data should flow between separate tasks at runtime, reallocation of memory freed by the currently executing unit is deferred until after its completion; just long enough to prevent use-after-free exploitation. To demonstrate the efficacy of our design, we implement a prototype for Linux, PUMM, which consists of an offline profiler and an online enforcer that transparently wraps standard libraries to protect C/C++ binaries. In our evaluation of 40 real-world and 3,000 synthetic vulnerabilities across 26 programs, including complex multi-threaded cases like the Chakra JavaScript engine, PUMM successfully thwarts all real-world exploits, and only allows 4 synthetic exploits, while reducing memory overhead by 52.0% over prior work and incurring an average runtime overhead of 2.04%.
引用
收藏
页码:823 / 840
页数:18
相关论文
共 50 条
  • [31] Machine-Learning-Guided Typestate Analysis for Static Use-After-Free Detection
    Yan, Hua
    Sui, Yulei
    Chen, Shiping
    Xue, Jingling
    33RD ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2017), 2017, : 42 - 54
  • [32] All Use-After-Free Vulnerabilities Are Not Created Equal: An Empirical Study on Their Characteristics and Detectability
    Chen, Zeyu
    Liu, Daiping
    Xiao, Jidong
    Wang, Haining
    PROCEEDINGS OF THE 26TH INTERNATIONAL SYMPOSIUM ON RESEARCH IN ATTACKS, INTRUSIONS AND DEFENSES, RAID 2023, 2023, : 623 - 638
  • [33] Effective Static Analysis of Concurrency Use-After-Free Bugs in Linux Device Drivers
    Bai, Jia-Ju
    Lawall, Julia
    Chen, Qiu-Liang
    Hu, Shi-Min
    PROCEEDINGS OF THE 2019 USENIX ANNUAL TECHNICAL CONFERENCE, 2019, : 255 - 268
  • [34] An Efficient Use-after-Free Mitigation Approach via Static Dangling Pointer Nullification
    Yu, Yue
    Jia, Xiaoqi
    An, Xun
    Zhang, Shengzhi
    ICT SYSTEMS SECURITY AND PRIVACY PROTECTION (SEC 2022), 2022, 648 : 507 - 523
  • [35] HeapRevolver: Delaying and Randomizing Timing of Release of Freed Memory Area to Prevent Use-After-Free Attacks
    Yamauchi, Toshihiro
    Ikegami, Yuta
    NETWORK AND SYSTEM SECURITY, (NSS 2016), 2016, 9955 : 219 - 234
  • [36] A Robust and Efficient Defense against Use-after-Free Exploits via Concurrent Pointer Sweeping
    Liu, Daiping
    Zhang, Mingwei
    Wang, Haining
    PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18), 2018, : 1635 - 1648
  • [37] 基于S2E的Use-After-Free漏洞检测方案
    冯震
    聂森
    王轶骏
    薛质
    计算机应用与软件, 2016, 33 (04) : 273 - 276
  • [38] Automated Use-After-Free Detection and Exploit Mitigation: How Far Have We Gone?
    Gui, Binfa
    Song, Wei
    Xiong, Hailong
    Huang, Jeff
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (11) : 4569 - 4589
  • [39] UAFSan: An Object-Identifier-Based Dynamic Approach for Detecting Use-After-Free Vulnerabilities
    Gui, Binfa
    Song, Wei
    Huang, Jeff
    ISSTA '21: PROCEEDINGS OF THE 30TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2021, : 309 - 321
  • [40] FREEWILL: Automatically Diagnosing Use-after-free Bugs via Reference Miscounting Detection on Binaries
    He, Liang
    Hu, Hong
    Su, Purui
    Cai, Yan
    Liang, Zhenkai
    PROCEEDINGS OF THE 31ST USENIX SECURITY SYMPOSIUM, 2022, : 2497 - 2512