ACM Home Page
Please provide us with feedback. Feedback
Lightweight self-protecting JavaScript
Full text PdfPdf (728 KB)
Source
ASIAN ACM Symposium on Information, Computer and Communications Security archive
Proceedings of the 4th International Symposium on Information, Computer, and Communications Security table of contents
Sydney, Australia
SESSION: Software security table of contents
Pages 47-60  
Year of Publication: 2009
ISBN:978-1-60558-394-5
Authors
Phu H. Phung  Chalmers University of Technology, Gothenburg, Sweden
David Sands  Chalmers University of Technology, Gothenburg, Sweden
Andrey Chudnov  Stevens Institute of Technology, New Jersey
Sponsor
SIGSAC: ACM Special Interest Group on Security, Audit, and Control
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 62,   Downloads (12 Months): 219,   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/1533057.1533067
What is a DOI?

ABSTRACT

This paper introduces a method to control JavaScript execution. The aim is to prevent or modify inappropriate behaviour caused by e.g. malicious injected scripts or poorly designed third-party code. The approach is based on modifying the code so as to make it self-protecting: the protection mechanism (security policy) is embedded into the code itself and intercepts security relevant API calls. The challenges come from the nature of the JavaScript language: any variables in the scope of the program can be redefined, and code can be created and run on-the-fly. This creates potential problems, respectively, for tamper-proofing the protection mechanism, and for ensuring that no security relevant events bypass the protection. Unlike previous approaches to instrument and monitor JavaScript to enforce or adjust behaviour, the solution we propose is lightweight in that (i) it does not require a modified browser, and (ii) it does not require any run-time parsing and transformation of code (including dynamically generated code). As a result, the method has low run-time overhead compared to other methods satisfying (i), and the lack of need for browser modifications means that the policy can even be applied on the server to mitigate some effects of cross-site scripting bugs.


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
Aspect Oriented Extensions for jQuery. http://code.google.com/p/jquery-aop/.
 
2
CNN: 'Phishing' scams reel in your identity. http://www.cnn.com/2003/TECH/internet/07/21/phishing.scam.
 
3
ECMAScript 3.1 Language Specification. http://wiki.ecmascript.org/doku.php?id=es3.1: es3.1_proposal_working_draft. Working Draft as of 01 Dec 2008.
 
4
IBM Rational Web application security software (former AppShield). http://www-01.ibm.com/software/rational/offerings/websecurity.
 
5
Mozilla Developer Center: Core JavaScript 1.5 Reference. http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference.
 
6
Mozilla Developer Center: XPCNativeWrapper. http://developer.mozilla.org/en/docs/XPCNativeWrapper.
 
7
RSnake: XSS (Cross Site Scripting) Cheat Sheet. http://ha.ckers.org/xss.html.
 
8
Web 2.0. http://en.wikipedia.org/wiki/Web_2.
 
9
Yahoo Developer Network: YSlow for Firebug. http://developer.yahoo.com/yslow/.
 
10
 
11
J. P. Anderson. Computer security technology planning study. Technical Report ESD-TR-73-51, US Air Force, Electronic Systems Division, Deputy for Command and Management Systems, HQ Electronic Systems Division (AFSC), USA, 1972.
 
12
M. Arciemowicz. phpBB 2.0.18 XSS and Full Path Disclosure. http://securityreason.com/securityalert/269.
13
 
14
S. Bubrouski. XSS in WebCal (v1.11-v3.04). http://securityreason.com/securityalert/267.
 
15
 
16
D. Danchev. HSBC sites vulnerable to XSS flaws, could aid phishing attacks. http://blogs.zdnet.com/security/?p=1365. Posted on June 29th, 2008.
 
17
Douglas Crockford. ADsafe -- making JavaScript safe for advertising. http://adsafe.org/.
 
18
Facebook. FBJS. http: //wiki.developers.facebook.com/index.php/FBJS.
 
19
 
20
I. Jacobs. URIs, Addressability, and the use of HTTP GET and POST. http: //www.w3.org/2001/tag/doc/whenToUseGet.html. Accessed May 16 2007.
21
 
22
 
23
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP, pages 220--242, 1997.
 
24
 
25
J. Ligatti, L. Bauer, and D. Walker. Edit Automata: Enforcement Mechanisms for Run-time Security Policies. International Journal of Information Security, 4(1--2):2--16, 2005.
 
26
 
27
M. S. Miller, M. Samuel, B. Laurie, and I. A. M. Stay. Caja: Safe active content in sanitized JavaScript. http://google-caja.googlecode.com/files/caja-spec-2008-06-07.pdf.
 
28
A. Nguyen-Tuong, S. Guarnieri, D. Greene, J. Shirley, and D. Evans. Automatically hardening web applications using precise tainting. In In 20th IFIP International Information Security Conference, 2005.
 
29
P. H. Phung, D. Sands, and A. Chudnov. Lightweight Self-Protecting JavaScript. Technical Report 2008:24, Department of Computer Science and Engineering, Chalmers University of Technology, Gothenburg, Sweden, December 2008. Project URL: http://www.cse.chalmers.se/~phung/projects/jss. ISSN:1652-926X.
 
30
T. Pietraszek, C. V, and E. Berghe. Defending against injection attacks through context-sensitive string evaluation. In Recent Advances in Intrusion Detection (RAID), 2005.
31
 
32
J. Ruderman. Same origin policy for JavaScript. http://developer.mozilla.org/En/Same_origin_ policy_for_JavaScript.
33
 
34
 
35
A. Stevens. KaVaDo InterDo: A useful tool in the fight to keep your server secure. http://www.vnunet.com/pc-magazine/software/2133317/kavado-interdo. PC Magazine, 08 Jul 2002.
 
36
 
37
 
38
 
39
P. Vogt, F. Nentwich, N. Jovanovic, E. Kirda, and C. Kruegel. Cross-Site Scripting Prevention with Dynamic Data Tainting and Static Analysis. In NDSS '07: Proceeding of the 14th Annual Network and Distributed System Security, San Diego, CA, 2007. Internet Society.
40
 
41
J. Wells. Protect sensitive Web data with Teros-100 APS. http://articles.techrepublic.com.com/5100-10878_11-1060422.html.
 
42
A. Wirfs-Brock. Proposed ECMAScript 3.1 Static Object Functions: Use Cases and Rationale. http://wiki.ecmascript.org/lib/exe/fetch.php? id=es3.1%3Aes3.1_proposal_working_draft&cache=cache&media=es3.1:rationale_for_es3_1_static_ object_methodsaug26.pdf. Revised August 26, 2008.
 
43
44

Collaborative Colleagues:
Phu H. Phung: colleagues
David Sands: colleagues
Andrey Chudnov: colleagues