secure cooperative sharing of javascript, browser, and physical resources
DESCRIPTION
Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources. Leo Meyerovich , David Zhu. Benjamin Livshits. UC Berkeley. Web Application Security. l ipstick on a pig?. Not Your Mother’s Browser. browser kernels. JIT compilers. p artitioned hardware. Mashup Manifesto. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/1.jpg)
Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources
Benjamin Livshits
UC Berkeley
Leo Meyerovich, David Zhu
![Page 2: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/2.jpg)
Web Application Security
lipstick on a pig?
![Page 3: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/3.jpg)
JIT compilers
partitioned hardware
Not Your Mother’s Browserbrowser kernels
![Page 4: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/4.jpg)
Mashup Manifesto1. sharing requires control
2. sharing must be natural
3. sharing must be cheap
![Page 5: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/5.jpg)
What to Share?
diskHardware
JavaScript
Browser APIs parser, DOM, network, ...
![Page 6: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/6.jpg)
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(); });
![Page 7: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/7.jpg)
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
Alice Bob
__proto__
![Page 8: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/8.jpg)
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
Alice Bob
![Page 9: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/9.jpg)
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function proceed
execute
function defaultDeny
Messagesexecuteset fld val get fldaddField fld valremoveField fld
Alice Bob
set, get, …function proceed (continue) { return continue(); }
function defaultDeny (continue) { throw ‘err’ }
![Page 10: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/10.jpg)
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function proceed
execute
function defaultDeny
Messagesexecuteset fld val get fldaddField fld valremoveField fld
Alice Bob
set, …, get
![Page 11: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/11.jpg)
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function proceed
execute
function defaultDeny
Messagesexecuteset fld val get fldaddField fld valremoveField fld
Alice Bob
execute, set, get, addField, removeField
set, …, get
Cornelia
set, …
![Page 12: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/12.jpg)
browser
Browser API Sharing with Non-Tampering Advice
facebook.com
gadget.com
gadget.com
delegateBrowser(“network”, gadget, "http://gadget.com", function () { if (toggle) return true; });
delegation: non-tampering advicefacebook.com
parser, DOM, CSS, ...
![Page 13: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/13.jpg)
Physical Resource Sharing with TessellationOS
disk
layout
render
layout
render
layout
render
… … …
![Page 14: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/14.jpg)
Mashup Manifesto1. sharing requires control
2. sharing must be natural
3. control must be cheap
![Page 15: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/15.jpg)
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
![Page 16: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/16.jpg)
backup slides.
![Page 17: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/17.jpg)
![Page 18: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/18.jpg)
Sharing Browser APIs: Today
Facebook.comadvice
DOM (FFI)
![Page 19: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/19.jpg)
Sharing Browser APIs: Tomorrow
Facebook.com
DOM (FFI)
advice
browser
kernel
![Page 20: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/20.jpg)
container.com
gadget.com
BROWSER
![Page 21: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/21.jpg)
container.com
gadget.com
gadget.com
BROWSER
gadgetfork
bomb!!!
YouTubepolicy?
![Page 22: Secure Cooperative Sharing of JavaScript, Browser, and Physical Resources](https://reader035.vdocuments.mx/reader035/viewer/2022062501/56815f14550346895dcddbd1/html5/thumbnails/22.jpg)
container.com
gadget.com
gadget.com
BROWSER
A New Hope