flowfox a web browser with flexible and precise information control

25
FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

Upload: sybil-davidson

Post on 24-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

FLOWFOX

A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

Page 2: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

ROADMAP

1. Background

2. Threat Model

3. Design

4. Security Policies

5. Implementation

6. Evaluation

Page 3: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

same-origin-policy (SOP) has holes

1. Examples to bypass SOP

2. More powerful security enforcement mechanisms are required.

XMLHTTPRequest?

Page 4: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Information flow control

Any program can be seen as a machine with inputs and outputs. Inputs can be classified high credential input and low credential input. The same for output.

Page 5: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Example for Information flow analysis

High Input:document.getElementById(‘email.input’).text

Low Output:*.src=*

Page 6: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUNDNoninterference

A program is defined to be noninterferent if its outputs cannot be influenced by inputs at a higher security level than their own.

Termination-insensitive noninterference

1. A version of Noninterference.

2. Under the assumption that a program always terminates normally, information is only disclosed by the program when it terminates.

3. Many existing tools can effectively determine a program as long as the assumption holds

Page 7: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Termination-insensitive noninterference Vs. Termination-sensitive noninterference

Page 8: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

In Context of web security

Many state-of-art information flow systems can detect information leak for this case

Page 9: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Timing-insensitive noninterference

Assumption: the execution result has nothing to do with the execution time

Page 10: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Secure Multi-Execution ([18])

1. An information flow control enforcement mechanism

2. As its name suggests, secure multi-execution will execute a program multiple times, once for each security level.

3. SME regime will guarantee non-interference

4. FlowFox implements SME

Page 11: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Secure Multi-Execution Rule

Image.src

Document.cookie

Image.width

Page 12: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Example of Secure Multi-Execution

Page 13: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

BACKGROUND

Secure Multi-Execution

Pros:

1. Secure multi-execution is sound:

2. Secure multi-execution is precise

Cons:

1. Cost in CPU time and memory use

Page 14: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

THREAT MODEL

Examples

1. Session Hijacking

2. Malicious Advertisements (Plugins)

3. History Sniffing and Behavior Tracking

Page 15: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

FLOWFOX DESIGN

Two Design Alternatives

1. Multi-execute entire browser:

1. Easy to implement

2. Too Coarse grained and imprecise

Page 16: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

FLOWFOX DESIGN

Two Design Alternatives

2. Multi-execute the web scripts (FlowFox)

1. Treat all interactions with the browser API as inputs and outputs

2. Fine grained

3. Hard to implement

Page 17: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

SECURITY POLICIES

1. DOM API will be specified policy

2. FlowFox policy specifies two things

1. Security levels to DOM APIs

2. Default value to each DOM API call

3. Policy Rule

Page 18: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

SECURITY POLICIES

4. Examples

Page 19: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

IMPLEMENTATION

1. Implemented on top of Mozilla Firefox and consists of about 1400 new lines of C/C++ code

2. SME-aware JavaScript Engine

1. JSContext has a security level field

2. Each property of JSObject has a security level field

3. Only properties with the same security level as the coordinating JSContext are visible

3. SME/IO Process

4. Event Handling

1. Low events will be handled by both the low and high executions

2. High events will only be handled by the high execution.

Page 20: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

1. Security

1. Is FlowFox Non-interferent

1. Two reasons FlowFox could fail to be non-interferent

1. Violate the assumptions underlying the soundness proof

2. Exist implementation level vulnerabilities

2. Hard to guarantee.

Page 21: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

1. Security

1. Examples of mitigating threats

1. Leaking Session Cookies

2. History Sniffing

3. Tracking Libraries

Page 22: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

2. Compatibility

1. Two regular FireFox browsers and one FlowFox browser

2. A simple policy that makes reading document.cookie high

3. Crawler dumps a screenshot of each of the three browsers to a bitmap

4. First, compare the bitmaps belonging to two FireFox browsers and find the same area (unmasked area).

5. Second, compare the unmasked areas for bitmaps belonging to FireFox and FlowFox browsers.

Page 23: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

3. Micro Benchmark

1. Measure the overhead of executing pure JavaScript.

2. Measure the overhead for I/O intensive applications.

3. Executing pure JavaScript incurs large overhead

4. IO test shows only a negligible impact overhead

Page 24: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

4. Macro Benchmark

1. Measure the impact on the latency perceived by a browser user

2. The results show that the user-perceived latency for real-life web applications is acceptable

Page 25: FLOWFOX A WEB BROWSER WITH FLEXIBLE AND PRECISE INFORMATION CONTROL

EVALUATION

5. Memory Benchmark

1. Measuring 500 different websites

2. FlowFox incurred a memory overhead of 88%