SIF: enforcing confidentiality and integrity in web applications

  • Authors:
  • Stephen Chong;K. Vikram;Andrew C. Myers

  • Affiliations:
  • Department of Computer Science, Cornell University;Department of Computer Science, Cornell University;Department of Computer Science, Cornell University

  • Venue:
  • SS'07 Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

SIF (Servlet Information Flow) is a novel software framework for building high-assurance web applications, using language-based information-flow control to enforce security. Explicit, end-to-end confidentiality and integrity policies can be given either as compile-time program annotations, or as run-time user requirements. Compile-time and run-time checking efficiently enforce these policies. Information flow analysis is known to be useful against SQL injection and cross-site scripting, but SIF prevents inappropriate use of information more generally: the flow of confidential information to clients is controlled, as is the flow of low-integrity information from clients. Expressive policies allow users and application providers to protect information from one another. SIF moves trust out of the web application, and into the framework and compiler. This provides application deployers with stronger security assurance. Language-based information flow promises cheap, strong information security. But until now, it could not effectively enforce information security in highly dynamic applications. To build SIF, we developed new language features that make it possible to write realistic web applications. Increased assurance is obtained with modest enforcement overhead.