Masaq Index
arXiv 2014-01-17 0 views

Information Flow Control in WebKit's JavaScript Bytecode

Bichhawat, Abhishek · Rajani, Vineet · Garg, Deepak · Hammer, Christian

Original · EN

Websites today routinely combine JavaScript from multiple sources, both trusted and untrusted. Hence, JavaScript security is of paramount importance. A specific interesting problem is information flow control (IFC) for JavaScript. In this paper, we develop, formalize and implement a dynamic IFC mechanism for the JavaScript engine of a production Web browser (specifically, Safari's WebKit engine). Our IFC mechanism works at the level of JavaScript bytecode and hence leverages years of industrial effort on optimizing both the source to bytecode compiler and the bytecode interpreter. We track both explicit and implicit flows and observe only moderate overhead. Working with bytecode results in new challenges including the extensive use of unstructured control flow in bytecode (which complicates lowering of program context taints), unstructured exceptions (which complicate the matter further) and the need to make IFC analysis permissive. We explain how we address these challenges, formally model the JavaScript bytecode semantics and our instrumentation, prove the standard property of termination-insensitive non-interference, and present experimental results on an optimized prototype.

English translation

This paper has no Arabic translation yet. Be the first: it takes a few seconds, and the result is stored for every future reader.

Security check

Type the characters above

Up to 10 translations per person per day.