Information flow analysis for javascript

  • Authors:
  • Seth Just;Alan Cleary;Brandon Shirley;Christian Hammer

  • Affiliations:
  • Reed College, Portland, OR, USA;Western State College of Colorado, Gunnison, CO, USA;Utah State University, Logan, UT, USA;Utah State University, Logan, UT, USA

  • Venue:
  • Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern Web 2.0 pages combine scripts from several sources into a single client-side JavaScript program with almost no isolation. In order to prevent attacks from an untrusted third-party script or cross-site scripting, tracking provenance of data is imperative. However, no browser offers this security mechanism. This work presents the first information flow control mechanism for full JavaScript. We track information flow dynamically as much as possible but rely on intra-procedural static analysis to capture implicit flow. Our analysis handles even the dreaded eval function soundly and incorporates flow based on JavaScript's prototype inheritance. We implemented our analysis in a production JavaScript engine and report both qualitative as well as quantitative evaluation results.