Presentation is loading. Please wait.

Presentation is loading. Please wait.

Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources Benjamin Livshits UC Berkeley Leo Meyerovich, David Zhu.

Similar presentations


Presentation on theme: "Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources Benjamin Livshits UC Berkeley Leo Meyerovich, David Zhu."— Presentation transcript:

1 Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources Benjamin Livshits UC Berkeley Leo Meyerovich, David Zhu

2 Web Application Security lipstick on a pig?

3 JIT compilers partitioned hardware Not Your Mother’s Browser browser kernels

4 Mashup Manifesto 1.sharing requires control 2.sharing must be natural 3.sharing must be cheap

5 What to Share? disk Hardware JavaScript Browser APIs parser, DOM, network,...

6 1.<CoFrame src=http://gadget.com/page id=gadget 2. passthroughBrowser="html css js" 3. delegatePhysical=".1 cpu"/>... 4. var toggle = true; 5. delegateBrowser(“network”, gadget, "http://gadget.com", 6. function () { if (toggle) return true; }); 7. function getData() { 8. toggle = false; 9. return "profile data"; } 10. aroundJS(gadget, getData, 11. function proceed (continue) { return continue(); });

7 JS Sharing with Cross-Principal Advice function getData Function.prototype AliceBob __proto__

8 JS Sharing with Cross-Principal Advice function getData Function.prototype __proto__ AliceBob

9 JS Sharing with Cross-Principal Advice function getData Function.prototype __proto__ function proceed execute function defaultDeny Messages execute set fld val get fld addField fld val removeField fld AliceBob set, get, … function proceed (continue) { return continue(); } function defaultDeny (continue) { throw ‘err’ }

10 JS Sharing with Cross-Principal Advice function getData Function.prototype __proto__ function proceed execute function defaultDeny Messages execute set fld val get fld addField fld val removeField fld AliceBob set, …, get

11 JS Sharing with Cross-Principal Advice function getData Function.prototype __proto__ function proceed execute function defaultDeny Messages execute set fld val get fld addField fld val removeField fld AliceBob execute, set, get, addField, removeField set, …, get Cornelia set, …

12 browser Browser API Sharing with Non-Tampering Advice facebook.com gadget.com delegateBrowser(“network”, gadget, "http://gadget.com", function () { if (toggle) return true; }); delegation: non-tampering advice facebook.com parser, DOM, CSS,...

13 Physical Resource Sharing with TessellationOS disk layout render layout render layout render … ……

14 Mashup Manifesto 1.sharing requires control 2.sharing must be natural 3.control must be cheap

15 Related Work Physical Resource Sharing Resource Containers E Gazelle TessellationOS Chrome JavaScript Sharing Caja MashupOS Object Views ConScript Browser API Sharing OP Browser ConScript ServiceOS

16 backup slides.

17

18 Sharing Browser APIs: Today Facebook.com advice DOM (FFI)

19 Sharing Browser APIs: Tomorrow Facebook.com DOM (FFI) advice browser kernel b r o w s e r k e r n e l

20 The Times They Are A-Changin’ method-based JIT trace-based compilation static compilation method-based JIT trace-based compilation static compilation GPU rendering parser generator parallel layout multicore CSS selectors parallel parsing hardware partitioning hypervisor, microkernel, browser JIT (C#, X86, …) browser kernel solver generator

21 container.com gadget.com BROWS ER

22 container.com gadget.com BROWS ER gadget fork bomb!!! YouTube policy?

23 container.com gadget.com BROWS ER A New Hope


Download ppt "Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources Benjamin Livshits UC Berkeley Leo Meyerovich, David Zhu."

Similar presentations


Ads by Google