Download presentation
Presentation is loading. Please wait.
Published byEvangeline Ryan Modified over 9 years ago
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.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.