Uncovering Use-After-Free Conditions In Compiled Code

被引:7
|
作者
Dewey, David [1 ]
Reaves, Bradley [2 ]
Traynor, Patrick [2 ]
机构
[1] Georgia Inst Technol, Sch Comp Sci, Atlanta, GA 30332 USA
[2] Univ Florida, Dept Comp & Informat Sci & Engn, Gainesville, FL 32611 USA
关键词
D O I
10.1109/ARES.2015.61
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Use-after-free conditions occur when an execution path of a process accesses an incorrectly deallocated object. Such access is problematic because it may potentially allow for the execution of arbitrary code by an adversary. However, while increasingly common, such flaws are rarely detected by compilers in even the most obvious instances. In this paper, we design and implement a static analysis method for the detection of use-after-free conditions in binary code. Our new analysis is similar to available expression analysis and traverses all code paths to ensure that every object is defined before each use. Failure to achieve this property indicates that an object is improperly freed and potentially vulnerable to compromise. After discussing the details of our algorithm, we implement a tool and run it against a set of enterprise-grade, publicly available binaries. We show that our tool can not only catch textbook and recently released in-situ examples of this flaw, but that it has also identified 127 additional use-after-free conditions in a search of 652 compiled binaries in the Windows system32 directory. In so doing, we demonstrate not only the power of this approach in combating this increasingly common vulnerability, but also the ability to identify such problems in software for which the source code is not necessarily publicly available.
引用
收藏
页码:90 / 99
页数:10
相关论文
共 50 条
  • [1] Scalable Static Detection of Use-After-Free Vulnerabilities in Binary Code
    Zhu, Kailong
    Lu, Yuliang
    Huang, Hui
    [J]. IEEE ACCESS, 2020, 8 : 78713 - 78725
  • [2] 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
    [J]. Programming and Computer Software, 2019, 45 : 365 - 371
  • [3] Detect use-after-free vulnerabilities in binaries
    Han, Xinhui
    Wei, Shuang
    Ye, Jiayi
    Zhang, Chao
    Ye, Zhiyuan
    [J]. Qinghua Daxue Xuebao/Journal of Tsinghua University, 2017, 57 (10): : 1022 - 1029
  • [4] 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.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2019, 45 (07) : 365 - 371
  • [5] DangSan: Scalable Use-after-free Detection
    van der Kouwe, Erik
    Nigade, Vinod
    Giuffrida, Cristiano
    [J]. PROCEEDINGS OF THE TWELFTH EUROPEAN CONFERENCE ON COMPUTER SYSTEMS (EUROSYS 2017), 2017, : 405 - 419
  • [6] Preventing Use-after-free with Dangling Pointers Nullification
    Lee, Byoungyoung
    Song, Chengyu
    Jang, Yeongjin
    Wang, Tielei
    Kim, Taesoo
    Lu, Long
    Lee, Wenke
    [J]. 22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [7] UFO: Predictive Concurrency Use-After-Free Detection
    Huang, Jeff
    [J]. PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 609 - 619
  • [8] Preventing Use-After-Free Attacks with Fast Forward Allocation
    Wickman, Brian
    Hu, Hong
    Yun, Insu
    Jang, Daehee
    Lim, JungWon
    Kashyap, Sanidhya
    Kim, Taesoo
    [J]. PROCEEDINGS OF THE 30TH USENIX SECURITY SYMPOSIUM, 2021, : 2453 - 2470
  • [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
    [J]. 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
    [J]. 2018 IEEE CONFERENCE ON DEPENDABLE AND SECURE COMPUTING (DSC), 2018, : 131 - 138