Fabrice-cs6204-spring11x

Download Report

Transcript Fabrice-cs6204-spring11x

Cloud Environment
Spring 11
0





Microsoft Research Browser (2009)
Multi-Principal Environment with Browser OS
Next Step Towards Secure Browser
Written in C#
Main Contributors:
◦
◦
◦
◦
◦
◦
Helen J. Wang
- Microsoft
Piali Choudhury - Microsoft
Herman Venter
- Microsoft
Chris Grier
- University of Illinois at U-C
Alexander Moshchuk
- University of Washington
Sam King
- University of Illinois at U-C
1
Taken from: http://www.imperva.com/resources/glossary/clickjacking_ui-redressing.html
2
About me:
Samy Kamkar
Taken from: http://www.f-secure.com/weblog/archives/00000930.html
3
Problem in Current Browser Architecture
Motivation
Gazelle’s Architecture and Design
Performance Study
Future Work
Conclusion
4
 Support dynamic web contents
 Evolved into multi-principal operating
environment
 No exclusive control for protection
 No fair sharing of system resources
 Principal is domain
5

Same-Origin Policy (SOP)
 Origin defined by: <protocol, domain-name, port>
 Two resources are same origin iff these values are
identical
 No cross-domain interactions allowed
 Allow scripts to access DOM properties and methods
across domains
Principal
<iframe
src=“http://a.com”>
</iframe>
X
<iframe
src=“http://b.com”>
</iframe>
6

External scripts run with privileges of the
principal
◦ Distrusting external scripts may weaken security
◦ E.g: igoogle inline gadgets

Cross-origin vulnerabilities
◦ Unchecked user input
◦ Fault-tolerant handling of CSS leads to security
weakness
◦ Scripts can get access to cookies belonging to a
domain despite patch restrictions
7
 Enforce security on plugins and control
their access to the local Operating System
Assure stronger
Provide exclusive
 security
Total isolation
principals
and
and between
control
management
their respective
robustness
withresources to all system
acceptable
resourcesisamong
 Any
sharing between principals
done
performance
site principals
through
cross-principal web
communication
8
Problem in Current Browser Architecture
Motivation
Gazelle’s Architecture and Design
Performance Study
Future Work
Conclusion
9
Gazelle Browser is divided in 3 parts:

The Principal Layer
 Creates instance of an origin

The Runtime Layer
 Manage scripts
 Rendering pages

The Browser Kernel
 Middle layer between principal
and local OS
 Handles runtime events
 Manage and control
principal instances
10

Principals are also know as unit of protection
◦ Principal instance assures failure containment,
rendering content into bitmap objects and resource
allocation

Principals are placed into separate protection
domains (restricted or sandboxes OS process)
◦ cs.vt.edu and math.vt.edu are two different
principals
◦ If site a.com embed a principal b.com in an
<iframe> they are placed in different principal
instance
Run everything as a separate process
11
 Creation of separate
plugin instance for thirdparty plugin and/or crosssite scripts
 Interdiction for the plugin
instance to invoke the
getCrossOriginContent()
 The plugin instance can
interact with style sheets
only through the browser
instance
12



Exclusively responsible for managing
principals and system resources
Dispatch all events including user events
generated by local OS to the appropriate
principal instance
Assure the creation of protection domain
before rendering the target principal
13

System call supported for content fetching:
◦ getSamOriginContent(URL)
◦ getCrossOriginContent(URL)
◦ delegate(URL, windowSpec)

Provide policies to manage and display bitmap
objects created by principal instance
◦ Discern display and events ownership
◦ Enforce that principal can only draw in its allocated
space
◦ Dispatch UI events to only the principal that the user is
interacting
14



Implemented using .NET Graphics and Bitmap
Library
Window is a unit of display allocation and
delegation
Parent, child terminologies are replaced
respectively by landlord and tenant
Landlord: somesite.com
Tenant
<iframe
src=“a.com”>
</iframe>
Window
15

A landlord frame can only cause navigation in
tenants and has no control over frames
belonging to the tenants or other principals

Window creation results in a delegate(URL,
position, dimension) system call

For each created window, the kernel records
the following state:
◦ The landlord, tenant, position, dimension, pixels,
URL location of the window content
16

Landlord, tenant Access Control Policy:
◦ Position and dimensions
◦ Drawing isolation
◦ Navigation

Cross-Principal Events Protection
◦ Opaque Overlay Policy
For any two dynamic content-containing windows (e.g.,
frames, objects):
win1 and win2, win1 can overlay on win2
iff (Tenant_win1 == Tenant_win2) ||
(Tenantwin1 ≠T enantwin2 && win1 is opaque)
17

Browser Kernel:
◦ 5k lines of C# code
◦ Communication with principal instance is
implemented as asynchronous XML-based
messages sent over named pipes

Browser Instance (runtime):
◦ Uses Trident webBrowser control with Trident’s
COM interface
◦ Uses a local proxy for rerouting all network
requests to the browser kernel
18
Problem in Current Browser Architecture
Motivation
Gazelle’s Architecture and Design
Performance Study
Future Work
Conclusion
19
Comparison with known browsers
20
Gazelle overheads:
21



Exploring fair sharing among principals in the
browser kernel
Tradeoffs between compatibility and security
in browser policy design
Optimization of the local proxy
communication for network interposition
22

Gazelle, fully operational IE-based multiprincipal OS for website principals

Provides resource protection management

Resistant to failure of one or more principals

Assures legacy protection against crossorigin script, cross-principal and crossprocess display
23
???
24