2007 · 102 citations · 10 references
ComputingComputer ScienceCybersecurityComputer SecuritySecurity PolicyWeb SecurityBrowser SecurityClient-side SecuritySoftware Security EngineeringWeb Application SecurityJavascriptJavascript SecurityOperational SemanticsProgram InstrumentationRewriting SystemsSecurity Policy SpecificationSelf-modifying CodeStructural Operational Semantics
It is well recognized that JavaScript can be exploited to launch browser-based security attacks. We propose to battle such attacks using program instrumentation. Untrusted JavaScript code goes through a rewriting process which identifies relevant operations, modifies questionable behaviors, and prompts the user (a web page viewer) for decisions on how to proceed when appropriate. Our solution is parametric with respect to the security policy-the policy is implemented separately from the rewriting, and the same rewriting process is carried out regardless of which policy is in use. Be-sides providing a rigorous account of the correctness of our solution, we also discuss practical issues including policy management and prototype experiments. A useful by-product of our work is an operational semantics of a core subset of JavaScript, where code embedded in (HTML) documents may generate further document pieces (with new code embedded) at runtime, yielding a form of self-modifying code.
10
The protection of information in computer systems
Jerome H. Saltzer, Michael Schroeder · Proceedings of the IEEE · 1975 · 1.9K citations
Fred B. Schneider · ACM Transactions on Information and System Security · 2000 · 1.3K citations · Full text
Efficient software-based fault isolation
Robert Wahbe, Steven Lucco, Thomas E. Anderson et al. · 1993 · 1.2K citations · Full text
The essence of command injection attacks in web applications
Zhendong Su, Gary Wassermann · 2006 · 518 citations
Client-Side Defense Against Web-Based Identity Theft.
Neil Chou, Robert Ledesma, Yuka Teraguchi et al. · 2004 · 429 citations