ACM Home Page
Please provide us with feedback. Feedback
Staged information flow for javascript
Full text PdfPdf (530 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Program analysis for security table of contents
Pages 50-62  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Ravi Chugh  University of California, San Diego, San Diego, CA, USA
Jeffrey A. Meister  University of California, San Diego, San Diego, CA, USA
Ranjit Jhala  University of California, San Diego, San Diego, CA, USA
Sorin Lerner  University of California, San Diego, San Diego, CA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 40,   Downloads (12 Months): 156,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542476.1542483
What is a DOI?

ABSTRACT

Modern websites are powered by JavaScript, a flexible dynamic scripting language that executes in client browsers. A common paradigm in such websites is to include third-party JavaScript code in the form of libraries or advertisements. If this code were malicious, it could read sensitive information from the page or write to the location bar, thus redirecting the user to a malicious page, from which the entire machine could be compromised. We present an information-flow based approach for inferring the effects that a piece of JavaScript has on the website in order to ensure that key security properties are not violated. To handle dynamically loaded and generated JavaScript, we propose a framework for staging information flow properties. Our framework propagates information flow through the currently known code in order to compute a minimal set of syntactic residual checks that are performed on the remaining code when it is dynamically loaded. We have implemented a prototype framework for staging information flow. We describe our techniques for handling some difficult features of JavaScript and evaluate our system's performance on a variety of large real-world websites. Our experiments show that static information flow is feasible and efficient for JavaScript, and that our technique allows the enforcement of information-flow policies with almost no run-time overhead.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
English: Alexa top 100 sites, November 2008. http://www.alexa.com.
 
2
Google web toolkit, November 2008. http://code.google.com/webtoolkit/.
 
3
Jsure, November 2008. http://www.jsure.org/.
 
4
Volta, November 2008. http://live.labs.com/volta.
 
5
T. Amtoft and A. Banerjee. Information flow analysis in logical form. In SAS, pages 100--115, 2004.
 
6
C. Anderson, P. Giannini, and S. Drossopoulou. Towards type inference for javascript. In ECOOP, pages 428--452, 2005.
7
 
8
9
 
10
 
11
12
13
 
14
 
15
J. A. Goguen and J. Meseguer. Security policies and security models. In IEEE Symposium on Security and Privacy, pages 11--20, 1982.
16
17
18
 
19
 
20
J. Kodumal and A. Aiken. Banshee: A scalable constraint-based analysis toolkit. In SAS, pages 218--234, 2005.
21
 
22
B. Livshits and S. Guarnieri. Gatekeeper: Mostly static enforcement of security and reliability policies for javascript code. Technical Report MSR-TR-2009-16, Microsoft Research, Feb. 2009.
 
23
A. C. Myers. Programming with explicit security policies. In ESOP, pages 1--4, 2005.
 
24
J. Newsome and D. X. Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In NDSS, 2005.
25
26
 
27
 
28
29
 
30
T. Terauchi and A. Aiken. Secure information flow as a safety problem. In SAS, pages 352---367, 2005.
 
31
P. Thiemann. Towards a type system for analyzing javascript programs. In ESOP, pages 408--422, 2005.
 
32
33
34
35
36
 
37

Collaborative Colleagues:
Ravi Chugh: colleagues
Jeffrey A. Meister: colleagues
Ranjit Jhala: colleagues
Sorin Lerner: colleagues