|
This article is cited in 2 scientific papers (total in 2 papers)
Vulnerabilities detection via static taint analysis
N. V. Shimchika, V. N. Ignatyevba a Ivannikov Institute for System Programming of the Russian Academy of Sciences
b Lomonosov Moscow State University
Abstract:
Due to huge amounts of code in modern software products, there is always a variety of subtle errors or flaws in programs, which are hard to discover during everyday use or through conventional testing. A lot of such errors could be used as a potential attack vector if they could be exploited by a remote user via manipulation of program input. This paper presents the approach for automatic detection of security vulnerabilities using interprocedural static taint analysis. The goal of this study is to develop the infrastructure for taint analysis applicable for detection of vulnerabilities in C and C++ programs and extensible with separate detectors. This tool is based on the Interprocedural Finite Distributive Subset (IFDS) algorithm and is able to perform interprocedural, context-sensitive, path-insensitive analysis of programs represented in LLVM form. According to our research it is not possible to achieve good results using pure taint analysis, so together with several enhancements of existing techniques we propose to supplement it with additional static symbolic execution based analysis stage, which has path-sensitivity and considers memory region sizes for filtering results found by the first stage. The evaluation of results was made on Juliet Test Suite and open-source projects with publicly known vulnerabilities from CVE database.
Keywords:
static code analysis, taint analysis, vulnerabilities.
Citation:
N. V. Shimchik, V. N. Ignatyev, “Vulnerabilities detection via static taint analysis”, Proceedings of ISP RAS, 31:3 (2019), 177–190
Linking options:
https://www.mathnet.ru/eng/tisp431 https://www.mathnet.ru/eng/tisp/v31/i3/p177
|
|