Refining Buffer Overflow Detection via Demand-Driven Path-Sensitive Analysis

被引:3
|
作者
Le, Wei [1 ]
Soffa, Mary Lou [1 ]
机构
[1] Univ Virginia, Dept Comp Sci, Charlottesville, VA 22904 USA
关键词
Path-Sensitive; Demand-Driven; Infeasible Paths;
D O I
10.1145/1251535.1251546
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Although static analysis is an important technique for detecting buffer overflow before software deployment, current static tools rely on considerable human effort for annotating code to help analysis, or for diagnosing warnings, many of which are false positives. This paper presents an analysis technique that refines information about the paths that involve a potential buffer overflow to help in the diagnosis and debugging of vulnerabilities. Instead of only reporting a vulnerable buffer or statement in the program, which most tools do, our analysis categorizes paths of a possibly vulnerable statement into five types: Vulnerable, Overflow-User-independent, Safe, Infeasible and Don't-Know. Thus, safe and infeasible paths can be excluded from being inspected, providing focus on problematic paths. For scalability, we designed and implemented our analysis as an interprocedural, demand-driven path-sensitive analysis. Our experiments demonstrate that various path types do go through a possibly vulnerable buffer statement. The results also indicate that our technique is efficient and practical.
引用
收藏
页码:63 / 68
页数:6
相关论文
共 50 条
  • [1] Bidirectionality in flow-sensitive demand-driven analysis
    Jaiswal, Swati
    Khedker, Uday P.
    Chakraborty, Supratik
    SCIENCE OF COMPUTER PROGRAMMING, 2020, 190
  • [2] Path-Sensitive Oracle Data Selection via Static Analysis
    Zhang, Mingzhe
    Gong, Yunzhan
    Wang, Yawen
    Jin, Dahai
    ELECTRONICS, 2021, 10 (02) : 1 - 19
  • [3] Path-Sensitive Sparse Analysis without Path Conditions
    Shi, Qingkai
    Yao, Peisen
    Wu, Rongxin
    Zhang, Charles
    PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 930 - 943
  • [4] Path-Sensitive Code Embedding via Contrastive Learning for Software Vulnerability Detection
    Cheng, Xiao
    Zhan, Guanqin
    Wang, Haoyu
    Sui, Yulei
    PROCEEDINGS OF THE 31ST ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2022, 2022, : 519 - 531
  • [5] Demand-driven pointer analysis
    Heintze, N
    Tardieu, O
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 24 - 34
  • [6] Sound, complete and scalable path-sensitive analysis
    Dillig, Isil
    Dillig, Thomas
    Aiken, Alex
    ACM SIGPLAN NOTICES, 2008, 43 (06) : 270 - 280
  • [7] Sound, Complete and Scalable Path-Sensitive Analysis
    Dillig, Isil
    Dillig, Thomas
    Aiken, Alex
    PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 270 - 280
  • [8] Parallelizing Flow-Sensitive Demand-Driven Points-to Analysis
    Yu, Haibo
    Sun, Qiang
    Xiao, Kejun
    Chen, Yuting
    Mine, Tsunenori
    Zhao, Jianjun
    COMPANION OF THE 2020 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY, AND SECURITY (QRS-C 2020), 2020, : 91 - 97
  • [9] Path-Sensitive Data Flow Analysis Simplified
    Winter, Kirsten
    Zhang, Chenyi
    Hayes, Ian J.
    Keynes, Nathan
    Cifuentes, Cristina
    Li, Lian
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2013, 8144 : 415 - 430
  • [10] Path-sensitive dataflow analysis with iterative refinement
    Dhurjati, Dinakar
    Das, Manuvir
    Yang, Yue
    STATIC ANALYSIS, PROCEEDINGS, 2006, 4134 : 425 - 442