SLIDE 1
Embassies: Radically refactoring the web John R. Douceur Jon - - PowerPoint PPT Presentation
Embassies: Radically refactoring the web John R. Douceur Jon - - PowerPoint PPT Presentation
Embassies: Radically refactoring the web John R. Douceur Jon Howell Bryan Parno Microsoft Research promise of the web model the web is quite vulnerable Buffer overflows JavaScript API vulnerabilities XSS CSRF Session fixation
SLIDE 2
SLIDE 3
the web is quite vulnerable
Buffer overflows JavaScript API vulnerabilities XSS CSRF Session fixation clickjacking
3
SLIDE 4
safe web-surfing hygiene?
SLIDE 5
the problem
Security weaknesses in the web API
- complex execution semantics
- subtle communication & sharing semantics
- communication implicit in execution
cannot be fixed with a better browser for the same API
SLIDE 6
this talk
The current API is broken due to conflicting goals Propose a new API for the web
- simple execution semantics: binary code
- explicit communication semantics: IP
- supports existing web apps and beyond
Argue that the new API evolves safely
SLIDE 7
refactoring the browser isn’t enough
[OP, IBOS]
SLIDE 8
refactoring the browser isn’t enough
[Gazelle, Chrome]
SLIDE 9
SLIDE 10
SLIDE 11
separate DPI from CEI
SLIDE 12
why is this model different?
SLIDE 13
a ridiculous straw-proposal
SLIDE 14
confounded by reality
Network reliability High bandwidth Low latency Ample server resources
SLIDE 15
the multitenant datacenter
SLIDE 16
the client pico-datacenter
SLIDE 17
the entire Embassies CEI
SLIDE 18
SLIDE 19
SLIDE 20
challenge: cross-app interactions
SLIDE 21
interaction: today’s form submission
SLIDE 22
interaction: Embassies form submission
SLIDE 23
interaction: today’s link coloring
SLIDE 24
interaction: today’s link coloring
SLIDE 25
interaction: Embassies link coloring
SLIDE 26
interaction: today’s page navigation
SLIDE 27
interaction: Embassies page navigation
SLIDE 28
interaction: Embassies page navigation
SLIDE 29
challenge: app launch performance
SLIDE 30
solution: untrusted cache
SLIDE 31
startup caching is effective
SLIDE 32
isn’t 200 ms a lot?
we’re only adding it when the user crosses over to a new site.
within a site, vendors can go faster: SPDY++?
we’re loading unoptimized WebKit this modest performance problem resolves a bucket of security problems
SLIDE 33
fixing flaws: history leaks
SLIDE 34
fixing flaws: cross-site scripting (XSS)
SLIDE 35
fixing flaws: cross-site scripting (XSS)
SLIDE 36
fixing flaws: cross-site scripting (XSS)
SLIDE 37
server analogue: SQL injection
SLIDE 38
server analogue: SQL injection
SLIDE 39
server analogue: SQL injection
SLIDE 40
fixing flaws: cross-site scripting (XSS)
SLIDE 41
Summary
- The web API conflates CEI and DPI
- A minimal CEI can isolate correctly
- native code allows rich DPIs
- Launching big DPIs isn’t cost-prohibitive
- The pico-datacenter analogy
makes security tradeoffs obvious
SLIDE 42
research.microsoft.com/embassies/
- linux & microkernel clients
- Webkit with protocol communication
- Gimp, Inkscape, spreadsheet, word processor
- untrusted app cache
SLIDE 43
SLIDE 44
what about mashups and serendipitous interoperability?
- Today, servers speak open protocols like XML
and JSON; we can scrape HTML
- A few standard stacks will use a few standard
wire protocols
- Sure, adversarial vendors can obfuscate, but
they can do that in JavaScript, too.
SLIDE 45
shouldn’t I control my browser?
- Shouldn’t I get to control my browser?
– ad blocker
- Letting a user give a third-party program (or
plugin) full authority opposes vendor autonomy
– Trojans / drive-bys – Autonomy means vendors can provide a predictable, safe experience
SLIDE 46
Accessibility
Popular stacks (e.g. Windows, Gnome) include accessibility affordances.
SLIDE 47
Cross-architecture compatibility
Three approaches:
- Managed code (JS, Java, C#) still a fine plan
just deploy it from the vendor
- Cross-compile. Debian runs on a dozen archs.
- Binary rewriting
got Apple from 68K to PowerPC to x86
SLIDE 48
Peripherals
- Printers already speak IP
Google Cloud Print “IP-ifies” your legacy printer
- Same approach for GPS, cameras…
- Disks are easy
untrusted “Seagate” app exposes storage
SLIDE 49
GPUs
- Long term:
treat GPU like CPU
- Intermediate:
exploit GPU segmentation as memory protection
- Near term:
Even native CPU is pretty sweet
SLIDE 50
Deployment
- Start with a browser plug-in
users enjoy rich apps, like NaCl
- Embassies client with compatibility mode