client side
play

CLIENT-SIDE RUNTIME ANALYSIS AND ENFORCEMENT Ben Livshits, - PowerPoint PPT Presentation

CLIENT-SIDE RUNTIME ANALYSIS AND ENFORCEMENT Ben Livshits, Microsoft Research Overview of Todays Lecture 2 Background (rehash) Better runtimes CSP HTML5 Sandbox Language restrictions AdSafe FBJS Tradeoffs of


  1. CLIENT-SIDE RUNTIME ANALYSIS AND ENFORCEMENT Ben Livshits, Microsoft Research

  2. Overview of Today’s Lecture 2  Background (rehash)  Better runtimes  CSP  HTML5 Sandbox  Language restrictions  AdSafe FBJS  Tradeoffs of different containment strategies  Extensive rewriting and going forward  Caja  WebSandbox

  3. JavaScript Security Model slide 3  Script runs in a “sandbox”  No direct file access  Restricted network access  Same-origin policy  Code can only access properties of documents and windows from the same origin  Gives a degree of isolation  Origin roughly is the URL, but not quite  If the same server hosts unrelated sites, scripts from one site can access document properties on the other  Is the origin always representative of content?

  4. This is Just the Beginning… 4  Browser Security Handbook  ... DOM access  ... XMLHttpRequest  ... cookies  ... Flash  ... Java  ... Silverlight  ... Gears  Origin inheritance rules

  5. XmlHttpRequest 5  XmlHttpRequest is the foundation of AJAX-style application on the web today  Typically:

  6. Virtually No Full Compatibility 6 Why is lack of compatibility bad?

  7. Active Research and Development 7

  8. How Do We Do Cross-Domain XHR? 8  Server-side proxying  Is this a good idea?  Alternatives abound, no consensus  XDomainRequest in IE8  JSONRequest  CS-XHR

  9. Site B Site A Recent Developments Site A context Site B context  Cross-origin network requests Access-Control-Allow-Origin: <list of domains> Access-Control-Allow-Origin: *  Cross-origin client side communication  Client-side messaging via postMessage

  10. window.postMessage  New HTML5 API for inter-frame communication  Supported in latest betas of many browsers  A network-like channel between frames Add a contact Share contacts

  11. Facebook Connect Protocol 11  SOP policy does not allow  Library creates two a third-party site (e.g hidden iframes with an TechCrunch), called origin of facebook.com implementor , to which in turn communicate with communicate with facebook.com Facebook  To support this  The cross-origin interaction, Facebook communication between provides a JavaScript hidden iframes and the library for sites implementor window are implementing Facebook layered over Connect postMessage

  12. Facebook Connect 12  Facebook Connect is a system  For example, a logged-in that enables a Facebook user to user can view his Facebook share his identity with third- party sites friends who also use the third-party web site, and  Some notable users include interact with them directly TechCrunch , Huffington Post, ABC and Netflix there  After being authorized by a user, a third party web site can query  Note that the site now Facebook for the user’s contains content from information and use it to provide a richer experience that multiple principals — the leverages the user’s social site itself and connections facebook.com

  13. Facebook Connect 13 The Emperor’s New APIs: On the (In)Secure Usage of New Client-side Primitives, Hanna et. al, 2010

  14. postMessage syntax frames[0].postMessage("Attack at dawn!", "http://b.com/"); window.addEventListener("message", function (e) { if (e.origin == "http://a.com") { ... e.data ... } }, false); Attack at dawn!

  15. Why Include The Target Origin?  What goes wrong? frames[0].postMessage("Attack at dawn!"); if we just do this?  Are there other issues with the use of postMessage ? 15

  16. Trusted and Untrusted Web Content 16  Two trust levels:  What is the issue? trusted and untrusted  Untrusted components are sequentially composed and placed in  Trusted: code a trusted context belonging to host.  Model fits the case of  Untrusted: all third- web pages with party code advertisements, iGoogle, Facebook Apps

  17. JavaScript Language Restrictions 17

  18. Ad Scenario: Why ADsafe? 18 advertiser synd ad major ad publisher network network ad <script> Safe? Safe? </script> ad  Ensure safety of ads containing JavaScript  Always a good idea?

  19. ADsafe Example 19

  20. ADsafe Goals 20  ADsafe removes features from JavaScript that are either unsafe or grant uncontrolled access to unsafe browser components or that contribute to poor code quality

  21. ADsafe Restrictions 21 Global variables: ADsafe's object capability eval : The eval function provides access to the global   object. model prohibits the use of most global variables. with statement: The with statement modifies the  scope chain, making static analysis impossible. Dangerous methods and properties: arguments callee  Limited access: Array , Boolean , etc.  caller constructor eval prototype stack unwatch valueOf watch Capability leakage can occur with these names in  this : If a method is called as a  at least some browsers, so use of these names function, this is bound to the global object. with . notation is prohibited. Since ADsafe needs to restrict access to the Names starting or ending with _: Some browsers have  global object, it must prohibit the use of this in dangerous properties or methods that have a guest code. dangling _. [ ] subscript operator except when the subscript is a  numeric literal or string literal or an expression that arguments : Access to the arguments pseudo-  must produce a number value: Lookup of dynamic array is not allowed. properties could provide access to the restricted members. Use ADSAFE.get and ADSAFE.set instead Date and Math.random : Access to these sources of  non-determinism is restricted in order to make it easier to determine how widgets behave

  22. Trade-offs 22 expressiveness safety full JavaScript ADsafe

  23. FBJS: How FB Apps are Programmed 23  Security goals  Basics  No direct access to the  Facebook apps are either DOM IFRAMEd or integrated  No tampering with the  Integrated Facebook execution environment applications are written in  No tampering with FBML/FBJS Facebook libraries  FBJS: Facebook subsets of HTML and JavaScript  Isolation approach  FBJS is served from  Blacklist variable names Facebook, after filtering and that are used by containing page rewriting  Prevent access to global  Facebook libraries mediate scope object access to the DOM

  24. FBJS By Example 24 obj.className = "SBGGiftItemImage"; obj.setClassName("SBGGiftItemImage"); obj.onmouseout = function() { this.className = "SBGGiftItemImage";}; obj.addEventListener("mouseout", function() {this.setClassName('SBGGiftItemImage');});

  25. FBJS Restrictions 25 o[e] -> a12345_o[$FBJS.idx(e)]  Other, indirect ways that malicious content might reach the window object involve accessing certain standard or browser-specific predefined object properties such as __parent__ and constructor  Therefore, FBJS blacklists such properties and rewrites any explicit access to them in the code into an access to the useless property unknown

  26. More on FBJS 26  Facebook Application Directory:  http://www.facebook.com/apps/directory  But also FBML and FBQL  Subject of much research in 2009-2011  Designing Malicious Applications in Social Networks  Preventing Capability Leaks in Secure JavaScript Subsets  Isolating JavaScript with Filters, Rewriting, and Wrappers

  27. Question of the Day 27 What Are the Pros/Cons of Static Restriction vs. Code Rewriting

  28. Mashup Scenario: Developer’s Dilemma Other people’s Mashups mean code can’t be including code trusted 28

  29. Typical Mashup: Yelp + Google Maps 29

  30. Web-based Counter <div id="sitemeter" class="plain"> <!--WEBBOT bot="HTMLMarkup" startspan ALT="Site Meter" --> <script type="text/javascript" language="JavaScript">var site="s15gizmodo"</script> <script type="text/javascript" language="JavaScript1.2" src="http://s15.sitemeter.com/js/counter.js?site=s15gizmodo"> </script>

  31. Failure Should Not Be An Option

  32. Sandboxing through Source-level Rewriting 32  Not bad, but sometimes  Browser offers too restrictive iFRAMEs as an  Framed applications are isolation mechanism confined to pre-determined  Every iFRAME has (an screen regions  Interactions with other isolated) global object iFrames require message  SOP prevents arbitrary passing using the cross-frame postMessage API communication Google Caja and Microsoft WebSandbox

  33. Web Sandbox: The Big Picture Requests Content Trusted Host (e.g., Your Site) (untrusted) Sandboxed Virtual Machine Sandboxed Execution (JavaScript Library) Execution Transformation Untrusted Content Pipeline (Server or Client-based) Virtualize Code

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend