+ All Categories
Home > Documents > Using Replicated Execution for a More Secure and Reliable Browser

Using Replicated Execution for a More Secure and Reliable Browser

Date post: 23-Feb-2016
Category:
Upload: alina
View: 41 times
Download: 0 times
Share this document with a friend
Description:
Using Replicated Execution for a More Secure and Reliable Browser. Authors: Hui Xue, Nathan Dautenhahn, Samuel T. King University of Illinois at Urbana Champaign Source: NDSS '12 Reporter: MinHao WU. https://netfiles.uiuc.edu/huixue2/www/cocktail.pptx. Outline. Example - PowerPoint PPT Presentation
Popular Tags:
26
Using Replicated Execution for a More Secure and Reliable Browser Authors: Hui Xue, Nathan Dautenhahn, Samuel T. King University of Illinois at Urbana Champaign Source: NDSS '12 Reporter: MinHao WU https://netfiles.uiuc.edu/huixue2/www/ cocktail.pptx
Transcript
Page 1: Using Replicated Execution for a More Secure and Reliable Browser

Using Replicated Execution for a More Secure and Reliable Browser

Authors: Hui Xue, Nathan Dautenhahn, Samuel T. King University of Illinois at Urbana ChampaignSource: NDSS '12Reporter: MinHao WU

https://netfiles.uiuc.edu/huixue2/www/cocktail.pptx

Page 2: Using Replicated Execution for a More Secure and Reliable Browser

2

OutlineExampleIntroductionDesignImplementationEvaluationConclusion

Page 3: Using Replicated Execution for a More Secure and Reliable Browser

3

Browsers Are Not SafeBrowsers are plagued with

vulnerabilities◦Internet Explorer: 59 new

vulnerabilities in 2010◦Firefox: 100 new vulnerabilities in

2010◦Safari: 119 new vulnerabilities in

2010◦Chrome: 191 new vulnerabilities in

2010

Page 4: Using Replicated Execution for a More Secure and Reliable Browser

4

Firefox Browser Exploit Example

Firefox 3.0.x malicious popup by CVE-2009-3076

Page 5: Using Replicated Execution for a More Secure and Reliable Browser

5

Opera: Exploit FailsOpera shows no popup

Page 6: Using Replicated Execution for a More Secure and Reliable Browser

6

Reason: Browser Specific Vulnerabilities

Different browsers different code bases

The same bug often only in one browser

Page 7: Using Replicated Execution for a More Secure and Reliable Browser

7

Cocktail: Mixing Browsers For Better Security

Page 8: Using Replicated Execution for a More Secure and Reliable Browser

8

How Cocktail Works: Example

click

click

click

HTTP GET

Proxy

HTTP GET

a.com/img.pn

g “a.com”

server

requestimg.png

a.com/img.pn

g

Page 9: Using Replicated Execution for a More Secure and Reliable Browser

9

How Cocktail Works: Example

click

click

click

HTTP GET

HTTP GET

HTTP GET

a.com/img.pn

g “a.com”

server

requestimg.png

a.com/img.pn

g responseimg.png

responseimg.pngresponseimg.pngresponseimg.png

Qt DISPLAY

Proxy

Page 10: Using Replicated Execution for a More Secure and Reliable Browser

10

Withstanding False Positive/Attack

click

click

click

Proxy

“a.com”

server

HTTP GET

HTTP GET ✓a.com/img.pn

ga.com/img.pn

gHTTP GET a.com/

question.png

requestimg.pngresponseimg.png

responseimg.pngresponseimg.png

Qt DISPLAY

Page 11: Using Replicated Execution for a More Secure and Reliable Browser

11

Observation:Opportunistic N-Version Programming

DOM

Same specification “roughly” followed

Different code base+

Page 12: Using Replicated Execution for a More Secure and Reliable Browser

12

How to Compare Different Browsers?States to compare: display +

network◦Display: vision based page layout

abstractionInteraction with serverClient side non-determinism

Page 13: Using Replicated Execution for a More Secure and Reliable Browser

13

Challenge: Interaction with ServerPages from server can be

different

“a.com”

server

A

B

C

Page 14: Using Replicated Execution for a More Secure and Reliable Browser

14

SolutionAvoid major changes to browser

◦Browsers self-update is easy◦Open source is not required

Solution: proxy replication◦Replicate incoming network data

with proxy HTTPS handling: Man-in-the-middle

Page 15: Using Replicated Execution for a More Secure and Reliable Browser

15

Solution: Proxy ReplicationOne browser as seen by server

a.comserver

Page A

Proxy

Page A

Page A

Page A

Page 16: Using Replicated Execution for a More Secure and Reliable Browser

16

Challenge: Client Side Non-determinism

Same page content, different execution result

<html>…

<script>randomId = Math.random();url = “doubleclick.com?ad=” +

randomId;</script>

…</html>

Page 17: Using Replicated Execution for a More Secure and Reliable Browser

17

Client Non-determinism SummaryScript related randomness

Browser specific behaviors◦E.g., Opera community

Random Number Math.random()Date and Time new Date()

Browser Specific Value window.opera; navigator.appName

Browser Locale “EN” VS “en-US”……….… ...

Page 18: Using Replicated Execution for a More Secure and Reliable Browser

18

SolutionExtension modifies script execution

◦Overwrites Math, Date, window.opera

Browser configuration change◦Disable Opera community◦Adjust browser locale

Firefox

CocktailExtensi

onOpera

CocktailExtensi

onChrome

CocktailExtensi

on

Page 19: Using Replicated Execution for a More Secure and Reliable Browser

19

False Positive Browsers treat malformed URL

differently<iframe src=" http://www.adfusion.com/Adfusion.PartnerSite/ca tegoryhtml.aspx?userfeedguid=948fbed8-69ae-4659 -b3c1-b9863e5ab24e&clicktag=http://ads.bluelith ium.com/clk?2,13%...%2Flrec%2F,&CB={REQUES TID}

width="300" height="250" scrolling="no" frameborder="0" marginheight="0" marginwidth="0”></iframe>

Missing"

Page 20: Using Replicated Execution for a More Secure and Reliable Browser

20

Why Cocktail Is More SecureVoting == SecurityWithstand some F.P.

◦Only need 2 to proceed

Ext. to eliminatenon-determinism

Looks like a good oneActs like a good one It is one uncompromisedbrowser

CktExt

CktExt

CktExt

VotingProxy

DISPLAY

Page 21: Using Replicated Execution for a More Secure and Reliable Browser

21

Implementation

Page 22: Using Replicated Execution for a More Secure and Reliable Browser

22

The UI component is responsible for providing the interface between the user and Cocktail, routing user input to each replica, and voting on the display states of each replica.

The replica component maintains each browser replica, which all run in sandboxed environments.

The network component is responsible for handling network requests from the replicas and voting on network requests.

Page 23: Using Replicated Execution for a More Secure and Reliable Browser

23

UI replication◦Recorder and re-player: Extension◦Passing UI events across browsers:

ProxyUI Display capturing and voting

◦ImageMagick and OpenCVProxy

◦OpenSSL for MITM

Page 24: Using Replicated Execution for a More Secure and Reliable Browser

24

Evaluation

Page 25: Using Replicated Execution for a More Secure and Reliable Browser

25

EvaluationSecurity analysis

◦User interaction: CVE-2009-3076◦Heap overflow: CVE-2009-2477◦DOS attack: Firefox 3.0.4 DOS, April

2009◦Same origin policy bypassing: CVE-

2007-0981Performance

◦30% slower comparing to Firefox

Page 26: Using Replicated Execution for a More Secure and Reliable Browser

26

ConclusionMixing different browsers for

better security◦Practical N-Version programming for

browsers◦Cocktail mirrors all inputs across the

different browser replicas and votes on all outputs to withstand attacks

◦Our results showed that added little overhead to the page load latency times for the web sites we tested.


Recommended