ConScript: Specifying and Enforcing Fine-Grained Security Policies for JavaScript in the Browser
Authors:
- Leo A. MeyerovichLMLeo A. Meyerovich
- Benjamin LivshitsBLBenjamin Livshits
- 1 January 2010
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10816011,p. 481-496
Abstract
Much of the power of modern Web comes from the ability of a Web page to combine content and JavaScript code from disparate servers on the same page. While the ability to create such mash-ups is attractive for both the user and the developer because of extra functionality, code inclusion effectively opens the hosting site up for attacks and poor programming practices within every JavaScript library or API it chooses to use. In other words, expressiveness comes at the price of losing control. To regain the control, it is therefore valuable to provide means for the hosting page to restrict the behavior of the code that the page may include. This paper presents ConScript, a client-side advice implementation for security, built on top of Internet Explorer 8. ConScript allows the hosting page to express fine-grained application-specific security policies that are enforced at runtime. In addition to presenting 17 widely-ranging security and reliability policies that ConScript enables, we also show how policies can be generated automatically through static analysis of server-side code or runtime analysis of client-side code. We also present a type system that helps ensure correctness of ConScript policies. To show the practicality of ConScript in a range of settings, we compare the overhead of ConScript enforcement and conclude that it is significantly lower than that of other systems proposed in the literature, both on micro-benchmarks as well as large, widely-used applications such as MSN, GMail, Google Maps, and Live Desktop.Keywords
This publication has 20 references indexed in Scilit:
- Object views2010
- Staged information flow for javascript2009
- Doloto2008
- Relationally-parametric polymorphic contracts2007
- Type qualifier inference for javaACM SIGPLAN Notices, 2007
- AjaxScope2007
- Modeling system calls for intrusion detection with dynamic window sizes2002
- Aspect-oriented programmingCommunications of the ACM, 2001
- Information flow inference for freeACM SIGPLAN Notices, 2000
- JFlow1999