Using static symbolic execution to detect buffer overflows
- 作者: Dudina I.A.1,2, Belevantsev A.A.1,2
-
隶属关系:
- Institute for System Programming
- Faculty of Computational Mathematics and Cybernetics
- 期: 卷 43, 编号 5 (2017)
- 页面: 277-288
- 栏目: Article
- URL: https://journals.rcsi.science/0361-7688/article/view/176538
- DOI: https://doi.org/10.1134/S0361768817050024
- ID: 176538
如何引用文章
详细
Buffer overrun remains one of the main sources of errors and vulnerabilities in the C/C++ source code. To detect such kind of defects, static analysis is widely used. In this paper, we propose a path-sensitive static analysis based on symbolic execution with state merging. For buffers with compile-time-known sizes, we present an interprocedural path- and context-sensitive overrun detection algorithm that finds program points satisfying a proposed error definition. The described approach was implemented in the Svace static analyzer without significant loss of performance. On Android 5.0.2, these detectors generated 351 warnings, 64% of which were true positives. In addition, we describe a prototype of an intraprocedural heap buffer overflow detector and present an example of a defect found by this detector.
作者简介
I. Dudina
Institute for System Programming; Faculty of Computational Mathematics and Cybernetics
编辑信件的主要联系方式.
Email: eupharina@ispras.ru
俄罗斯联邦, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991
A. Belevantsev
Institute for System Programming; Faculty of Computational Mathematics and Cybernetics
Email: eupharina@ispras.ru
俄罗斯联邦, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991
补充文件
