Software validation via scalable path-sensitive value flow analysis

  • Authors:
  • Nurit Dor;Stephen Adams;Manuvir Das;Zhe Yang

  • Affiliations:
  • Tel Aviv University;Microsoft Research;Microsoft Research;Microsoft Research

  • Venue:
  • ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we present a new algorithm for tracking the flow of values through a program. Our algorithm represents a substantial improvement over the state of the art. Previously described value flow analyses that are control-flow sensitive do not scale well, nor do they eliminate value flow information from infeasible execution paths (i.e., they are path-insensitive). Our algorithm scales to large programs, and it is path-sensitive.The efficiency of our algorithm arises from three insights: The value flow problem can be "bit-vectorized" by tracking the flow of one value at a time; dataflow facts from different execution paths with the same value flow information can be merged; and information about complex aliasing that affects value flow can be plugged in from a different analysis.We have incorporated our analysis in ESP, a software validation tool. We have used ESP to validate the Windows operating system kernel (a million lines of code) against an important security property. This experience suggests that our algorithm scales to large programs, and is accurate enough to trace the flow of values in real code.