Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan,...

40
Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February, 2008 1
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan,...

Page 1: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

1

Protection and Communication Abstractions for Web Browsers

in MashupOS

Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR)Collin Jackson (Stanford)

February, 2008

Page 2: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

2

Page 3: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

3

… but most of all, Samy is my hero

Page 4: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

4

Page 5: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

5

Outline

• The problem• The MashupOS project• Protection• Communication• Implementation and demo• Evaluation• Related work• Conclusions

Page 6: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

6

Client Mashups• Web content has evolved from single-principal services

to multi-principal services, rivaling that of desktop PCs.• Principal is domain

Page 7: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

7

Browsers Remain Single-Principal Systems

• The Same Origin Policy (SOP), an all-or-nothing trust model:– No cross-domain interactions allowed– (External) scripts run with the privilege of the

enclosing page

http://integrator.com/

<iframe src=“http://provider.com/p.html”></iframe>

http://integrator.com/

<scriptsrc=“http://provider.com/p.js”></script>

X

Page 8: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

8

Insufficiency of the SOP

• Sacrifice security for functionality when including an external script without fully trusting it

• E.g., iGoogle, Live gadget aggregators’ inline gadget

Page 9: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

9

Insufficiency of the SOP, Cont.• Third-party content

sanitization is hard– Cross site scripting

(XSS): • Unchecked user input in

a generated page • E.g., Samy worm:

infected 1 million MySpace.com users in 20 hours

• Root cause:– The injected scripts run

with the page’s privilege

Samy is my hero

Page 10: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

10

Insufficiency of the SOP, Cont.

• Sacrifice functionality for security when denying scripts in third-party content

• E.g., MySpace.com disallows scripts in user profiles

Page 11: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

11

The MashupOS Project• Enable browser to be a multi-principal OS• Focus of this paper: protection and

communication abstractions• Protection:

– Provide default isolation boundaries

• Communications: – Allow service-specific, fine-grained access control

across isolation boundaries

Page 12: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

12

Design Principles• Match all common trust levels to balance

ease-of-use and security– Goal: enable programmers to build robust

services– Non-goal: make it impossible for programmers

to shoot themselves in the foot • Easy adoption and no unintended

behaviors

Page 13: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

13

Outline

The problemThe MashupOS project• Protection• Communication• Implementation and demo• Evaluation• Related work• Conclusions

Page 14: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

14

A Principal’s Resources

• Memory: – heap of script objects including DOM objects

that control the display• Persistent state:

– cookies, etc.• Remote data access:

– XMLHttpRequest

Page 15: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

15

Trust Relationship between Providers and Integrators

i.com

i.com

ContentSemantics

Abstraction Run-as

p.com i.com

Internet

http://i.com/

HTML

XHR

X

XXHR

No No Isolated <Frame> p.com

<iframe src=“http://p.com/c.html”></iframe>

X

Page 16: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

16

Trust Relationship between Providers and Integrators

i.com

i.com

ContentSemantics

Abstraction Run-as

p.com i.com

Internet

http://i.com/

Script

XHR

No No Isolated <Frame> p.com

Yes Yes Open <Script> i.com

<script src=“http://p.com/c.js”></script>

Page 17: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

17

Trust Relationship between Providers and Integrators

i.com

i.com

ContentSemantics

Abstraction Run-as

p.com i.com

Internet

http://i.com/

No No Isolated <Frame> p.com

Yes Yes Open <Script> i.com

No Yes

X

Page 18: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

Trust Relationship between Providers and Integrators

18

p.com i.com

Internet

http://i.com/

X

XXHR

NoneYes No <Sandbox><OpenSandbox>

Unauthorized

Unauth

XXHR

i.com

i.com

ContentSemantics

Abstraction Run-as

No No Isolated <Frame> p.com

Yes Yes Open <Script> i.com

No Yes

Unauthorized content is not authorized to access any principal’s resources.

<sandboxsrc=“http://p.com/c.html”></sandbox>

Page 19: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

19

Properties of Sandbox• Asymmetric access

– Access: reading/writing script global objects, function invocations, modifying/creating DOM elements inside the sandbox

• Invoking a sandbox’s function is done in the context of the sandbox– setuid (“unauthorized”) before invocation and setuid

(“enclosingPagePrincipal) upon exit

• The enclosing page cannot pass non-sandbox object references into the sandbox.– Programmers can put needed objects inside the sandbox

• Private vs. Open sandboxes

Page 20: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

20

Private Sandbox<sandbox src=“file”>

Content if tag not supported</sandbox>

• Belongs to a domain and can only be accessed by that domain– E.g., private location history marked on a map

• Private sandboxes cannot access one another even when nested– Otherwise, a malicious script can nest another

private sandbox and access its private content

Page 21: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

21

Open Sandbox

<OpenSandbox src=“file”>Content if tag not supported

</OpenSandbox>• Can be accessed by any domain• Can access its descendant open

sandboxes --- important for third party service composition– E.g., e-mail containing a map; don’t want an

e-mail to tamper hotmail.com; don’t want the map library to tamper the e-mail

Page 22: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

22

Provider-Browser Protocol for Unauthorized Content

• Unauthorized content must be sandboxed and must not be renderable by frames– Otherwise, unauthorized content would run as the principal of the frame

• MIME protocol seems to be what we want: – Require providers to prefix unauthorized content subtype with

x-privateUnauthorized+ or x-openUnauthorized+– E.g., text/html text/x-privateUnauthorized+html– Verified that Firefox cannot render these content types with <frame>

and <script>– But, IE’s MIME sniffing allows rendering sometimes

• Alternative: encraption (e.g., Base64 encoding)• Prevent providers from unintentionally publishing unauthorized

content as other types of content: – Constrain sandbox to take only unauthorized content

Page 23: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

23

Key Benefits of Sandbox

• Safe mashups with ease• Beneficial to host third-party content as

unauthorized content

Page 24: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

24

Sandbox for Safe Mashups with Ease

http://Mashup.com/index.htm

<script src=“a.com/a.js”> </script>

<script src=“b.com/b.js”> </script>

<script>// local script to Mashup.com // calling functions in a.js and b.js</script>

<div id=“displayAreaForA”> … </div>

X

X

Page 25: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

25

Hosting Third-Party Content as Unauthorized Content

• Combats cross site scripting attacks in a fundamental way– Put user input into a sandbox– Does not have to sacrifice functionality

• Helps with Web spam– Discount the score of hyperlinks in third party

content

Page 26: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

26

Outline

The problemThe MashupOS projectProtection• Communication• Implementation & demo• Evaluation• Related work• Conclusions

Page 27: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

27

Communications

• Message passing across the isolation boundaries enable custom, fine-grained access control

Isolated Isolated

a.com b.com

CommRequest

Unauthorized

Com

mR

eque

st

Page 28: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

28

CommRequest• Server:

server = new CommServer();server.listenTo(“aPort”,

requestHandlerFunction);• Client:

req = new CommRequest();req.open (“INVOKE”,

“local:http://bob.com//aPort”, isSynchronous);

req.send (requestData);req.onreadystatechange = function ()

{ …}

Page 29: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

29

CommRequest vs. XMLHttpRequest

• Cross domain• Source labeled• No cookies sent• “Server” can be on client• Reply from remote server tagged with

special MIME type• Syntax similar to socket API and XHR

Page 30: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

30

Outline

The problemThe MashupOS projectProtectionCommunication• Implementation & demo• Evaluation• Related work• Conclusions

Page 31: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

31

Implementation

• Use frames as our building blocks, but we apply our access control

ScriptEngine

MashupOSScript Engine

Proxy

MashupOSMIMEFilter

Script executionDOM object access

DOM object update

Original HTML

MashupOS transformed HTML

HTML Layout Engine

Page 32: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

32

Evaluation: Showcase Application

• PhotoLoc, a photo location service– Mash up Google’s map service and Flickr’s

geo-tagged photo gallery service– Map out the locations of photographs taken

• PhotoLoc doesn’t trust flickr nor gmap

Page 33: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

33

PhotoLoc/index.htm<script>

function setPhotoLoc(request) { var coordinate = request.body; var latitude = getLatitude (coordinate); var longitude = getLongitude (coordinate); G.map.setCenter(new GLatLng(latitude, longitude), 6);}var svr = new CommServer();svr.listenTo(“recvLocationPort”, setPhotoLoc);

</script>

<Sandbox src=”f.uhtml” id=F> </Sandbox>

<Sandbox src=”g.uhtml” id=G> </Sandbox>

Direct access

CommRequest

Page 34: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

34

Demo

Page 35: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

35

Evaluation:Prototype Performance

• Microbenchmarking for script engine proxy– Negligible overhead for no or moderate DOM

manipulations– 33%--82% overhead with heavy DOM manipulations

• Macrobenchmark measures overall page-loading time using top 500 pages from the top click-through search results of MSN search from 2005– shows no impact

• Anticipate in-browser implementation to have low overhead

Page 36: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

36

Outline

The problemThe MashupOS projectProtectionCommunicationImplementation & demoEvaluation• Related work• Conclusions

Page 37: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

37

Related work• Crockford’s <Module>

– Symmetric isolation with socket-like communication with the enclosing page

• Wahbe et al’s Software Fault Isolation– Asymmetric access though never leveraged– Primary goal was to avoid context switches for

untrusted code in a process

• Cox et al’s Tahoma browser operating system uses VM to– Protect the host system from browser and web

services– Protect web applications (a set of web sites) from one

another

Page 38: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

38

Future Work

• Robust implementation of the protection model

• Tools to detect whether a browser extension violates the browser’s protection model

• Tools for ensuring proper segregation of different content types

• Resource management, OS facilities

Page 39: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

39

Conclusions

• Web content involves multiple principals• Browsers remain a single principal platform• The missing protection abstraction: Unauthorized

content and <sandbox>– Enable safe mashups with ease– Combats cross-site scripting in a fundamental way

• CommRequest allows fine-grained access control across isolation boundaries

• Practical for deployment

Page 40: Protection and Communication Abstractions for Web Browsers in MashupOS Helen J. Wang, Xiaofeng Fan, Jon Howell (MSR) Collin Jackson (Stanford) February,

40

Thank you!