Static analysis for detecting taint-style vulnerabilities in web applications

被引:37
作者
Jovanovic, Nenad [1 ]
Kruegel, Christopher [2 ]
Kirda, Engin [3 ]
机构
[1] Vienna Univ Technol, Secure Syst Lab, Vienna, Austria
[2] Univ Calif Santa Barbara, Santa Barbara, CA 93106 USA
[3] Inst Eurecom, Sophia Antipolis, France
关键词
Program analysis; static analysis; data flow analysis; alias analysis; web application security; scripting languages security; cross-site scripting; SQL injection; PHP;
D O I
10.3233/JCS-2009-0385
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The number and the importance of web applications have increased rapidly over the last years. At the same time, the quantity and impact of security vulnerabilities in such applications have grown as well. Since manual code reviews are time-consuming, error-prone and costly, the need for automated solutions has become evident. In this paper, we address the problem of vulnerable web applications by means of static source code analysis. More precisely, we use flow-sensitive, interprocedural and context-sensitive data flow analysis to discover vulnerable points in a program. In addition to the taint analysis at the core of our engine, we employ a precise alias analysis targeted at the unique reference semantics commonly found in scripting languages. Moreover, we enhance the quality and quantity of the generated vulnerability reports by employing an iterative two-phase algorithm for fast and precise resolution of file inclusions. The presented concepts are targeted at the general class of taint-style vulnerabilities and can be easily applied to the detection of vulnerability types such as SQL injection, cross-site scripting (XSS), and command injection. We implemented the presented concepts in Pixy, a high-precision static analysis tool aimed at detecting cross-site scripting and SQL injection vulnerabilities in PHP programs. To demonstrate the effectiveness of our techniques, we analyzed a number of popular, open-source web applications and discovered hundreds of previously unknown vulnerabilities. Both the high analysis speed as well as the low number of generated false positives show that our techniques can be used for conducting effective security audits.
引用
收藏
页码:861 / 907
页数:47
相关论文
共 43 条
  • [1] Aho AV, 1986, COMPILERS PRINCIPLES
  • [2] Andersen L. O., 1994, THESIS U CPENHAGEN
  • [3] [Anonymous], 2005, STAT PROGR AN
  • [4] [Anonymous], 2005, HYP PREPR
  • [5] [Anonymous], 2005, 99 POT SQL INJ VULN
  • [6] ASHCRAFT K, 2002, IEEE S SEC PRIV OAKL
  • [7] CERT, 2005, CERT ADV CA 2000 02
  • [8] Chase D., 1991, PLDI 90
  • [9] Christensen A., 2003, INT STAT AN S SAS SA
  • [10] CUP, 2005, CUP LALR PARS GEN JA