Secure Cooperative Sharing of Resources in Web Applications

 
Secure Cooperative Sharing of
JavaScript, Browser, and Physical Resources
 
Benjamin Livshits
 
UC Berkeley
 
Leo Meyerovich, David Zhu
Web Application Security
JIT
compilers
partitioned
hardware
Not Your Mother’s Browser
browser
kernels
Mashup Manifesto
 
1.
sharing requires control
2.
sharing must be natural
3.
sharing must be cheap
 
What to Share?
 
Hardware
 
JavaScript
 
Browser APIs
 
parser, DOM, network, ...
 
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(); });
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
Alice
Bob
__proto__
 
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
 
__proto__
 
Alice
 
Bob
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function
defaultDeny
Messages
execute
set 
fld val
get 
fld
addField 
fld val
removeField 
fld
Alice
Bob
 
function proceed (continue) { return continue(); }
function defaultDeny (continue) { throw ‘err’ }
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function
defaultDeny
Messages
execute
set 
fld val
get 
fld
addField 
fld val
removeField 
fld
Alice
Bob
set, …
 
JS Sharing with Cross-Principal Advice
function getData
Function.prototype
__proto__
function
defaultDeny
Messages
execute
set 
fld val
get 
fld
addField 
fld val
removeField 
fld
Alice
Bob
 
browser
Browser API Sharing with Non-Tampering Advice
facebook.com
gadget.com
delegation: non-tampering advice
Physical Resource Sharing with TessellationOS
 
Mashup Manifesto
 
1.
sharing requires control
2.
sharing must be natural
3.
control must be cheap
 
 
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
 
backup slides.
 
Sharing Browser APIs: Today
Facebook.com
advice
Sharing Browser APIs: Tomorrow
Facebook.com
 
b
r
o
w
s
e
r
 
k
e
r
n
e
l
 
The Times They Are A-Changin’
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
container.com
gadget.com
BROWSER
container.com
gadget.com
gadget.com
BROWSER
container.com
gadget.com
gadget.com
BROWSER
A New Hope
Slide Note
Embed
Share

This series of visual representations delves into the concept of secure cooperative sharing of JavaScript, browser capabilities, and physical resources in web applications. The images and descriptions cover topics such as web application security, browser functionality, and the principles of sharing resources effectively. The content highlights the importance of controlled sharing, natural integration, and cost-effectiveness in resource sharing. Additionally, it discusses techniques like cross-principal advice and sharing protocols to enhance collaboration while maintaining security in the online environment.

  • Web applications
  • Resource sharing
  • Security
  • JavaScript
  • Browser capabilities

Uploaded on Sep 11, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


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

  2. Web Application Security lipstick on a pig?

  3. Not Your Mothers Browser browser kernels JIT compilers partitioned hardware

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

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

  6. 1. 2. 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(); }); <CoFrame src=http://gadget.com/page id=gadget passthroughBrowser="html css js"

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

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

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

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

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

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

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

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

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

  16. backup slides.

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

  18. Sharing Browser APIs: Tomorrow Facebook.com advice DOM (FFI) browser kernel

  19. BROWSER container.com gadget.com

  20. gadget fork bomb!!! YouTube policy? BROWSER container.com gadget.com gadget.com

  21. A New Hope BROWSER container.com gadget.com gadget.com

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#