Language-based defenses against untrusted browser origins

  • Authors:
  • Karthikeyan Bhargavan;Antoine Delignat-Lavaud;Sergio Maffeis

  • Affiliations:
  • INRIA Paris-Rocquencourt;INRIA Paris-Rocquencourt;Imperial College London

  • Venue:
  • SEC'13 Proceedings of the 22nd USENIX conference on Security
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present new attacks and robust countermeasures for security-sensitive components, such as single sign-on APIs and client-side cryptographic libraries, that need to be safely deployed on untrusted web pages. We show how failing to isolate such components leaves them vulnerable to attacks both from the hosting website and other components running on the same page. These attacks are not prevented by browser security mechanisms alone, because they are caused by code interacting within the same origin. To mitigate these attacks, we propose to combine fine-grained component isolation at the JavaScript level with cryptographic mechanisms. We present Defensive JavaScript (DJS), a subset of the language that guarantees the behavior integrity of scripts even when loaded in a hostile environment. We give a sound type system, type inference tool, and build defensive libraries for cryptography and data encodings. We show the effectiveness of our solution by implementing several applications using defensive patterns that fix some of our original attacks. We present a model extraction tool to analyze the security properties of our applications using a cryptographic protocol verifier.