+ All Categories
Home > Technology > SOMA: Mutual Approval for Included Content On Web Pages

SOMA: Mutual Approval for Included Content On Web Pages

Date post: 15-Jan-2015
Category:
Upload: terri-oda
View: 2,301 times
Download: 3 times
Share this document with a friend
Description:
SOMA is a system designed to control inclusions into web pages, so attackers cannot insert bad code as easily into pages. This is joint work I did with Glenn Wurster, which we presented at ACM-CCS 2008. It's a surprisingly simple system that can solves a significant web security problem, and I thought it was worth sharing the slides with a wider audience. The full paper is available here if you'd like to learn more: http://www.ccsl.carleton.ca/paper-archive/oda-ccs-08.pdf Please feel free to contact me (or Glenn) with any questions.
Popular Tags:
23
SOMA: Mutual Approval for Included Content On Web Pages Terri Oda, Glenn Wurster, P. C. van Oorschot, Anil Somayaji
Transcript
Page 1: SOMA:  Mutual Approval for Included Content On Web Pages

SOMA:Mutual Approval for Included

Content On Web Pages

Terri Oda, Glenn Wurster, P. C. van Oorschot, Anil Somayaji

Page 2: SOMA:  Mutual Approval for Included Content On Web Pages

2

SOMA

http://flickr.com/photos/kenturamon/168978666/

Same Origin Mutual Approval

Tighten the JavaScript Same Origin policy to prevent additional attacks

Extension to web browsers– Obey simple policies set by

site operators

Page 3: SOMA:  Mutual Approval for Included Content On Web Pages

3

Same Origin Policy

All JavaScript code has full access to:– Run/Overwrite all other JavaScript code– Read/Write to other content from the document origin

Same Origin Policy restricts access to content from other domains

Page 4: SOMA:  Mutual Approval for Included Content On Web Pages

4

Same Origin Policy

Content PermissionsType Fetch Read Modify Execute Display

Images YES SO SO NO YESHTML YES SO SO NO YESJavaScript YES SO YES YES NOAudio/Video YES Plugin Dependant NO YES

Same Origin policy restricts read and modify access Fetching of content is unrestricted

Page 5: SOMA:  Mutual Approval for Included Content On Web Pages

5

Sample Web Attack

Page 6: SOMA:  Mutual Approval for Included Content On Web Pages

6

Inclusions

Inclusions allowed with Same Origin Inclusions allowed with SOMA

Page 7: SOMA:  Mutual Approval for Included Content On Web Pages

7

SOMA Manifests

Server Response Meaning SymbolNo Manifest All sites approvedB in Manifest Content from B allowedB not in Manifest Content from B not allowed

A A BA A BA C B

Possible Manifest States(given by site A)

1.A file on the origin domain (/soma-manifest)

2.Lists domains approved by origin site

For some domain B

Page 8: SOMA:  Mutual Approval for Included Content On Web Pages

8

SOMA Approvals

Possible Approval Responses(by site B)

Server Response Meaning SymbolFile Not Found All sites approvedYES Can include content into A's pageNO Can NOT include content into A's page

B B AB B AB D A

1.Script on content provider site (/soma-approval)

2.Responds to approval requests– Based on origin page domain

For some domain A

Page 9: SOMA:  Mutual Approval for Included Content On Web Pages

9

SOMA Message Flow

OriginatingWeb Server A

Web BrowserRemote

Web Server B

Request Page

Request Manifest

Return Manifest

Return Page

Request Approval

Approval Response (YES/NO)

Request Content

Return Content

If A wants to includecontent from B (andB is in A's manifest)

If B returns YES

Page 10: SOMA:  Mutual Approval for Included Content On Web Pages

10

Cross Site Scripting

Any script can include other scripts (from any site) Inclusion blocked by SOMA Manifest

Page 11: SOMA:  Mutual Approval for Included Content On Web Pages

11

Unrestricted Outbound Communication

Any script can read content from the document origin Transmission blocked by SOMA Manifest

Page 12: SOMA:  Mutual Approval for Included Content On Web Pages

12

Cross Site Request Forgery

A script can make requests to any domain Request blocked by SOMA Approval

Page 13: SOMA:  Mutual Approval for Included Content On Web Pages

13

Bandwidth Stealing

A document can include content from anywhere Inclusion blocked by SOMA Approval

Page 14: SOMA:  Mutual Approval for Included Content On Web Pages

14

SOMA Prototype

Mozilla Firefox 2 Add-on– also compatible with Firefox 3– can be downloaded and tried out

– http://ccsl.carleton.ca/software/soma

Fully backwards compatible– current websites appear unchanged

Stops attacks discussed earlier Icon in statusbar indicates that SOMA is running

Page 15: SOMA:  Mutual Approval for Included Content On Web Pages

15

Screenshot of Prototype

Page 16: SOMA:  Mutual Approval for Included Content On Web Pages

16

Deployment

Need:– minor modifications to browser

– Mozilla SOMA Add-on implementation code is 12k

– policy on origin & content providers (ideally)– some protection if either side provides policy

Requires some additional network overhead– fetch manifest from origin– fetch approval from each content provider before

fetching content

Deployment is incremental

Page 17: SOMA:  Mutual Approval for Included Content On Web Pages

17

Performance

Approvals overhead:– adds one additional round trip– estimated additional page load time is 5.58% – estimate probably overstated:

– We used average content response size: 10459 bytes– soma-approval response size: 4 bytes (0.1% overhead)

• independent of site complexity

Manifest size:– checked front page of top 500 Alexa sites– average: 5.45 domains per site (5.3 stdev)

Page 18: SOMA:  Mutual Approval for Included Content On Web Pages

18

Complementary Work: Existing Code Injection Prevention

Do careful input checking– risk of interactions with web page– difficult to do well– done by web programmer in source code

Detect known code injection attacks– XSS, CSRF, SQL Injection– risk of false positives/missing new attacks– can be done by 3rd party tool

• eg: web application firewalls

Page 19: SOMA:  Mutual Approval for Included Content On Web Pages

19

Complementary Work:Mashups

A mashup is a web application which combines information and code from different sources

There has been work on ways to make them more secure– better separation between components– communication between different contexts

Mashup work focuses on interactions within the page– SOMA focuses on interactions with external servers

Requires use of tools by skilled web developers

Page 20: SOMA:  Mutual Approval for Included Content On Web Pages

20

Related Work:Tahoma and Flash

Tahoma [Cox 2006]– SOMA Manifest for VM's

Flash's crossdomain.xml– SOMA approvals for Flash

Page 21: SOMA:  Mutual Approval for Included Content On Web Pages

21

Related Work:Mozilla's Content Security Policy

First version (“Site Security Policy”) similar to SOMA Most recent version has only manifest

– Does not protect against cross site request forgery

Other major differences:– policy is per-resource– more complex syntax required

Page 22: SOMA:  Mutual Approval for Included Content On Web Pages

22

SOMA Benefits

1. Incrementally deployable (with incremental benefit)

2. No configuration/usage burden on end users

3. Required changes/configuration are done by site operators

4. Changes are relatively simple to understand and easy to implement

5. Gives server operators the ability to specify which sites can interact with their content

Page 23: SOMA:  Mutual Approval for Included Content On Web Pages

23

Thanks!

Carleton Computer Security Laboratory:– http://ccsl.carleton.ca

SOMA Firefox Add-On (and more info):– http://ccsl.carleton.ca/software/soma


Recommended