FreeSentry: Protecting Against Use-After-Free Vulnerabilities Due to Dangling Pointers

被引:29
|
作者
Younan, Yves [1 ]
机构
[1] Cisco Syst, Talos Secur Intelligence & Res Grp, San Jose, CA 95134 USA
关键词
MEMORY SAFETY;
D O I
10.14722/ndss.2015.23190
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Use-after-free vulnerabilities have become an important class of security problems due to the existence of mitigations that protect against other types of vulnerabilities. The effects of their exploitation can be just as devastating as exploiting a buffer overflow, potentially resulting in full code execution within the vulnerable program. Few protections exist against these types of vulnerabilities and they are particularly hard to discover through manual code inspection. In this paper we present FreeSentry: a mitigation that protects against use-after-free vulnerabilities by inserting dynamic runtime checks that invalidate pointers when the associated memory is released. If such an invalidated pointer is accessed, the program will subsequently crash, preventing an attacker from exploiting the vulnerability. When checking dynamically allocated memory, our approach has a moderate performance overhead on the SPEC CPU benchmarks: running with a geometric mean performance impact of around 25%. It has no overhead when deployed on widely used server side daemons such as OpenSSH or the Apache HTTP daemon. FreeSentry also discovered a previously unknown use-after-free vulnerability in one of the programs in SPEC CPU2000 benchmarks: perlbmk. This vulnerability seems to have been missed by other mitigations.
引用
收藏
页数:15
相关论文
共 48 条
  • [1] 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,
  • [2] HeapExpo: Pinpointing Promoted Pointers to Prevent Use-After-Free Vulnerabilities
    Shen, Zekun
    Dolan-Gavitt, Brendan
    [J]. 36TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2020), 2020, : 454 - 465
  • [3] Refining Use-after-free Defense: Eliminating Dangling Pointers in Registers and Memory
    An, Xun
    Zhou, Qihang
    Du, HaiChao
    Song, ZhenYu
    Jia, Xiaoqi
    [J]. PROCEEDINGS OF THE 2023 30TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, APSEC 2023, 2023, : 493 - 502
  • [4] Mpchecker: Use-After-Free Vulnerabilities Protection Based on Multi-Level Pointers
    Qiang, Weizhong
    Li, Weifeng
    Jin, Hai
    Surbiryala, Jayachander
    [J]. IEEE ACCESS, 2019, 7 : 45961 - 45977
  • [5] 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
  • [6] Typestate-Guided Fuzzer for Discovering Use-after-Free Vulnerabilities
    Wang, Haijun
    Xie, Xiaofei
    Li, Yi
    Wen, Cheng
    Li, Yuekang
    Liu, Yang
    Qin, Shengchao
    Chen, Hongxu
    Sui, Yulei
    [J]. 2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 999 - 1010
  • [7] Scalable Static Detection of Use-After-Free Vulnerabilities in Binary Code
    Zhu, Kailong
    Lu, Yuliang
    Huang, Hui
    [J]. IEEE ACCESS, 2020, 8 : 78713 - 78725
  • [8] POSTER: UAFChecker: Scalable Static Detection of Use-After-Free Vulnerabilities
    Ye, Jiayi
    Zhang, Chao
    Han, Xinhui
    [J]. CCS'14: PROCEEDINGS OF THE 21ST ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2014, : 1529 - 1531
  • [9] From Collision To Exploitation: Unleashing Use-After-Free Vulnerabilities in Linux Kernel
    Xu, Wen
    Li, Juanru
    Shu, Junliang
    Yang, Wenbo
    Xie, Tianyi
    Zhang, Yuanyuan
    Gu, Dawu
    [J]. CCS'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2015, : 414 - 425
  • [10] Multi-level Directed Fuzzing for Detecting Use-after-Free Vulnerabilities
    Zhang, Yuntao
    Wang, Zhongru
    Yu, Weiqiang
    Fang, Binxing
    [J]. 2021 IEEE 20TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2021), 2021, : 569 - 576