Spatio-Temporal Context Reduction: A Pointer-Analysis-Based Static Approach for Detecting Use-After-Free Vulnerabilities

被引:53
|
作者
Yan, Hua [1 ]
Sui, Yulei [2 ,3 ]
Chen, Shiping [4 ]
Xue, Jingling [1 ]
机构
[1] Univ New South Wales, Sch Comp Sci & Engn, Sydney, NSW, Australia
[2] Univ Technol Sydney, Ctr Artificial Intelligence, Sydney, NSW, Australia
[3] Univ Technol Sydney, Sch Software, Sydney, NSW, Australia
[4] CSIRO, Data61, Canberra, ACT, Australia
关键词
use-after-free; program analysis; bug detection; MEMORY; SAFETY;
D O I
10.1145/3180155.3180178
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Zero-day Use-After-Free (UAF) vulnerabilities are increasingly popular and highly dangerous, but few mitigations exist. We introduce a new pointer-analysis-based static analysis, CRED, for finding UAF bugs in multi-MLOC C source code efficiently and effectively. CRED achieves this by making three advances: (i) a spatio-temporal context reduction technique for scaling down soundly and precisely the exponential number of contexts that would otherwise be considered at a pair of free and use sites, (ii) a multi-stage analysis for filtering out false alarms efficiently, and (iii) a path-sensitive demand-driven approach for finding the points-to information required. We have implemented CRED in LLVM-3.8.0 and compared it with four different state-of-the-art static tools: CBMC (model checking), CLANG (abstract interpretation), COCCINELLE (pattern matching), and SUPA (pointer analysis) using all the C test cases in Juliet Test Suite (JTS) and 10 open-source C applications. For the ground-truth validated with JTS, CRED detects all the 138 known UAF bugs as CBMC and SUPA do while CLANG and COCCINELLE miss some bugs, with no false alarms from any tool. For practicality validated with the 10 applications (totaling 3+ MLOC), CRED reports 132 warnings including 85 bugs in 7.6 hours while the existing tools are either unscalable by terminating within 3 days only for one application (CBMC) or impractical by finding virtually no bugs (CLANG and COCCINELLE) or issuing an excessive number of false alarms (SUPA).
引用
收藏
页码:327 / 337
页数:11
相关论文
共 48 条
  • [1] UAFSan: An Object-Identifier-Based Dynamic Approach for Detecting Use-After-Free Vulnerabilities
    Gui, Binfa
    Song, Wei
    Huang, Jeff
    [J]. ISSTA '21: PROCEEDINGS OF THE 30TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2021, : 309 - 321
  • [2] An Efficient Use-after-Free Mitigation Approach via Static Dangling Pointer Nullification
    Yu, Yue
    Jia, Xiaoqi
    An, Xun
    Zhang, Shengzhi
    [J]. ICT SYSTEMS SECURITY AND PRIVACY PROTECTION (SEC 2022), 2022, 648 : 507 - 523
  • [3] Scalable Static Detection of Use-After-Free Vulnerabilities in Binary Code
    Zhu, Kailong
    Lu, Yuliang
    Huang, Hui
    [J]. IEEE ACCESS, 2020, 8 : 78713 - 78725
  • [4] 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
  • [5] 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
  • [6] An Efficient Metric-Based Approach for Static Use-After-Free Detection
    Wei, Haolai
    Chen, Liwei
    Nie, Xiaofan
    Zhang, Zhijie
    Zhang, Yuantong
    Shi, Gang
    [J]. 2022 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING, ISPA/BDCLOUD/SOCIALCOM/SUSTAINCOM, 2022, : 58 - 65
  • [7] xTag: Mitigating Use-After-Free Vulnerabilities via Software-Based Pointer Tagging on Intel x86-64
    Bernhard, Lukas
    Rodler, Michael
    Holz, Thorsten
    Davit, Lucas
    [J]. 2022 IEEE 7TH EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY (EUROS&P 2022), 2022, : 502 - 519
  • [8] 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
  • [9] Machine-Learning-Guided Typestate Analysis for Static Use-After-Free Detection
    Yan, Hua
    Sui, Yulei
    Chen, Shiping
    Xue, Jingling
    [J]. 33RD ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2017), 2017, : 42 - 54
  • [10] Effective Static Analysis of Concurrency Use-After-Free Bugs in Linux Device Drivers
    Bai, Jia-Ju
    Lawall, Julia
    Chen, Qiu-Liang
    Hu, Shi-Min
    [J]. PROCEEDINGS OF THE 2019 USENIX ANNUAL TECHNICAL CONFERENCE, 2019, : 255 - 268