Analyzing Information Flow in JavaScript-based Browser Extensions

Mohan Dhawan, Vinod Ganapathy.

Proceedings of the 25th Annual Computer Security Applications Conference (ACSAC 2009); pages 382--391; Honolulu, Hawaii; December 7-11, 2009.

Best student paper award Outstanding Student Paper Award

JavaScript-based browser extensions (JSEs) enhance the core functionality of web browsers by improving their look and feel, and are widely available for commodity browsers. To enable a rich set of functionalities, browsers typically execute JSEs with elevated privileges. For example, unlike JavaScript code in a web application, code in a JSE is not constrained by the same-origin policy. Malicious JSEs can misuse these privileges to compromise confidentiality and integrity, e.g., by stealing sensitive information, such as cookies and saved passwords, or executing arbitrary code on the host system. Even if a JSE is not overtly malicious, vulnerabilities in the JSE and the browser may allow a remote attacker to compromise browser security.

We present Sabre (Security Architecture for Browser Extensions), a system that uses in-browser information flow tracking to analyze JSEs. Sabre associates a label with each in-memory JavaScript object in the browser, which determines whether the object contains sensitive information. Sabre propagates labels as objects are modified by the JSE and passed between browser subsystems. Sabre raises an alert if an object containing sensitive information is accessed in an unsafe way, e.g., if a JSE attempts to send the object over the network or write it to a file. We implemented Sabre by modifying the Firefox browser and evaluated it using both malicious JSEs as well as benign ones that contained exploitable vulnerabilities. Our experiments show that Sabre can precisely identify potential information flow violations by JSEs.

Paper: [ PDF ] (© IEEE)
Slides: [ Powerpoint ]
Code: [ Sabre ]
DOI: [ 10.1109/ACSAC.2009.43 ]

Also available as Rutgers University Department of Computer Science Technical Report 648, April 2009. This technical report accompanies the Proceedings version and contains a detailed description of some of our techniques that are only described in brief in the Proceedings. Technical Report: [ PDF | Postscript ]

Papers page