Pixy: A Static Analysis Tool for Detecting Web Application Vulnerabilities (Short Paper)

  • Authors:
  • Nenad Jovanovic;Christopher Kruegel;Engin Kirda

  • Affiliations:
  • Technical University of Vienna;Technical University of Vienna;Technical University of Vienna

  • Venue:
  • SP '06 Proceedings of the 2006 IEEE Symposium on Security and Privacy
  • Year:
  • 2006

Quantified Score

Hi-index 0.02

Visualization

Abstract

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, alias and literal analysis are employed to improve the correctness and precision of the results. The presented concepts are targeted at the general class of taint-style vulnerabilities and can be applied to the detection of vulnerability types such as SQL injection, cross-site scripting, or command injection. Pixy, the open source prototype implementation of our concepts, is targeted at detecting cross-site scripting vulnerabilities in PHP scripts. Using our tool, we discovered and reported 15 previously unknown vulnerabilities in three web applications, and reconstructed 36 known vulnerabilities in three other web applications. The observed false positive rate is at around 50% (i.e., one false positive for each vulnerability) and therefore, low enough to permit effective security audits.