Publication: SIF: Enforcing Confidentiality and Integrity in Web Applications
Date
Authors
Published Version
Published Version
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
SIF (Servlet Information Flow) is a novel software framework for building high-assurance web applications, using language-based information-flow control to en- force 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 appli- cation 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 dy- namic applications. To build SIF, we developed new lan- guage features that make it possible to write realistic web applications. Increased assurance is obtained with mod- est enforcement overhead.