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 条
  • [1] Preventing Use-after-free with Dangling Pointers Nullification
    Lee, Byoungyoung
    Song, Chengyu
    Jang, Yeongjin
    Wang, Tielei
    Kim, Taesoo
    Lu, Long
    Lee, Wenke
    22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [2] Preventing Use-After-Free Attacks with Fast Forward Allocation
    Wickman, Brian
    Hu, Hong
    Yun, Insu
    Jang, Daehee
    Lim, JungWon
    Kashyap, Sanidhya
    Kim, Taesoo
    PROCEEDINGS OF THE 30TH USENIX SECURITY SYMPOSIUM, 2021, : 2453 - 2470
  • [3] Dynamic Detection of Use-After-Free Bugs
    S. A. Asryan
    S. S. Gaissaryan
    Sh. F. Kurmangaleev
    A. M. Aghabalyan
    N. G. Hovsepyan
    S. S. Sargsyan
    Programming and Computer Software, 2019, 45 : 365 - 371
  • [4] Detect use-after-free vulnerabilities in binaries
    Han X.
    Wei S.
    Ye J.
    Zhang C.
    Ye Z.
    Qinghua Daxue Xuebao/Journal of Tsinghua University, 2017, 57 (10): : 1022 - 1029
  • [5] Dynamic Detection of Use-After-Free Bugs
    Asryan, S. A.
    Gaissaryan, S. S.
    Kurmangaleev, Sh F.
    Aghabalyan, A. M.
    Hovsepyan, N. G.
    Sargsyan, S. S.
    PROGRAMMING AND COMPUTER SOFTWARE, 2019, 45 (07) : 365 - 371
  • [6] DangSan: Scalable Use-after-free Detection
    van der Kouwe, Erik
    Nigade, Vinod
    Giuffrida, Cristiano
    PROCEEDINGS OF THE TWELFTH EUROPEAN CONFERENCE ON COMPUTER SYSTEMS (EUROSYS 2017), 2017, : 405 - 419
  • [7] Uncovering Use-After-Free Conditions In Compiled Code
    Dewey, David
    Reaves, Bradley
    Traynor, Patrick
    PROCEEDINGS 10TH INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY AND SECURITY ARES 2015, 2015, : 90 - 99
  • [8] UFO: Predictive Concurrency Use-After-Free Detection
    Huang, Jeff
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 609 - 619
  • [9] Use-After-FreeMail: Generalizing the Use-After-Free Problem and Applying it to Email Services
    Gruss, Daniel
    Schwarz, Michael
    Wuebbeling, Matthias
    Guggi, Simon
    Malderle, Timo
    More, Stefan
    Lipp, Moritz
    PROCEEDINGS OF THE 2018 ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (ASIACCS'18), 2018, : 297 - 311
  • [10] Use-After-Free Mitigation via Protected Heap Allocation
    Zhang, Mingbo
    Zonouz, Saman
    2018 IEEE CONFERENCE ON DEPENDABLE AND SECURE COMPUTING (DSC), 2018, : 131 - 138