+ All Categories
Home > Documents > Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft...

Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft...

Date post: 28-Mar-2015
Category:
Upload: kole-pyle
View: 223 times
Download: 3 times
Share this document with a friend
Popular Tags:
36
Live Labs Web Sandbox: Securing Mash-Ups, Site Extensibility, And Gadgets Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29
Transcript
Page 1: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Live Labs Web Sandbox: Securing Mash-Ups, Site Extensibility, And Gadgets

Scott IsaacsSoftware ArchitectMicrosoft Corporation

Dragos ManolescuProgram ManagerMicrosoft Corporation

TL29

Page 2: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web security – overview and history Introducing the Web Sandbox Kicking the tires Getting involved and lots of demos

Agenda

Page 3: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

How The Web Works

<div id="sitemeter" class="plain"><!--WEBBOT bot="HTMLMarkup" startspan ALT="Site Meter" --><script type="text/javascript" language="JavaScript">var site="s15gizmodo"</script><script type="text/javascript" language="JavaScript1.2" src="http://s15.sitemeter.com/js/counter.js?site=s15gizmodo"></script>

Page 4: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Failure Should Not Be An Option

Page 5: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web SandboxA Tech Preview

announcing

Page 6: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Technology dates back to the 90s Started with hit counters (images) Transition to affiliate programs Web 2.0 mash-ups: low-cost innovation

Sites want to become “platforms” All suffer the same fate

History

Page 7: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Mashing up third-party content What does this mean for the site? What does this mean for the user? but everyone wants a “partner”

A challenging environment Only as reliable as the weakest link Users pay the cost

A Scary Problem

Page 8: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

This is one of the most damaging problems on the Web – security expert RSnake

Page 9: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Ignore the problem IFrame the problem

Too much isolation without security Redirects, installers, history, clickjacking, etc

First Generation Solutions (FBJS…) A new programming model

None address Quality of Service (QoS)

State Of The Art (Before Today)

Page 10: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Think outside the box – literally Beyond gadgets

Site extensibility Componentization model Richer advertising

Control the trust model Protect the overall experience

Where Do We Need To Go?

Page 11: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Goal: Secure Web 2.0 Industry-wide focus

ECMA Security Working Group AdSafe, Caja… Work together to define the standard

Enter the Live Labs Web Sandbox

The Opportunity

Page 12: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web Sandbox 101

demo

Page 13: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

No IFrames were abused…

Page 14: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Architecture 101 – The Big Picture

TransformationPipelineUntrusted Content

Virtualized Code

Trusted HostRequested Content

(untrusted)

Sandboxed ExecutionSandboxed Execution

Virtual Machine

Page 15: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Support for all modern browsers No browser extensions required Provides cross-browser consistency

Why not develop a plug-in? Users must not opt-into security Ubiquity versus deployment

The Browser Challenge

Page 16: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Change function: Success = Customer Pain

Total Perceived Pain of Adoption

Use the materials in the room No new APIs or language No gadget SDK required

The Philosophy

Page 17: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web Sandbox 201

demo

Page 18: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Standards – based JavaScript “good” and “bad” parts Processing Model

Automatic multi-instancing Code throttling QoS monitoring

Going Beyond Security

Page 19: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web Sandbox:Graduation

demo

Page 20: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Lack of isolation Increased surface area

Testing challenges Unintentional conflicts No feedback loop

Single point of failure

Why Is QoS Hard?

Page 21: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Grad School:Infinite Is A Big Number…

demo

Page 22: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Goal: Support 99% of the language Work in progress

1. HTML must be well-formed2. document.write3. JavaScript with statement4. XML Proxy is not yet enabled5. Dynamic loading of external scripts6. Silverlight and Flash Support

The Fine Print

Page 23: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Trade-offs Performance: 1.5 – 4x Intermediate transformation step More difficult debugging (?debug=true flag)

The 1%: API Limitations No arbitrary code “eval”uation Addressable with native support

The Finer Print

Page 24: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Privacy:It’s My History

demo

Page 25: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Architecture 101 – The Big Picture

TransformationPipeline

Untrusted Content

Virtualized Code

Trusted HostRequested Content

(untrusted)

Sandboxed ExecutionSandboxed Execution

Virtual Machine

Page 26: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Transformation Pipeline

Untrusted Content

HTML to JSON

CSS to JSON Transform all Scripts

Package With Script

Ready to Run!

Page 27: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Sandbox Execution

Code Invocations

Type and Apply Rule

Sandbox Instance

Interception Layer

Monitor QoS

Sandbox InstanceSandbox InstanceReady to

Run!

Page 28: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

We Rule!

demo

Page 29: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Runtime Communication

TransformationPipeline

Untrusted Content

Virtualized Code

Trusted HostRequested Content

(untrusted)

Sandboxed ExecutionSandboxed Execution

Virtual Machine

Runtime

Page 30: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Easy Hosting

<div id="putContentHere"></div><script src="websandbox.js"></script><!-- Use Server Transform --><script src="http://websandbox-code.org/transform.aspx?

url=UrlToUntrustedCode&guid=ContentID"></script><script> // Create a Sandbox instancevar sb = new $Sandbox(

document.getElementById("putContentHere"),$Policy.Gadget, "ContentID")

sb.initialize();</script>

Page 31: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Web Sandbox: DIY

demo

Page 32: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

An Open Project http://websandbox.livelabs.com

Interactive Documentation Playground and Samples

Hack us! Break us! Make us feel pain Community Forums

We want all feedback Public Full Disclosure Forum

Join us in defining the standard

Getting Involved

Page 33: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 34: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Please use the microphones provided

Q&A

Page 35: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 36: Scott Isaacs Software Architect Microsoft Corporation Dragos Manolescu Program Manager Microsoft Corporation TL29.

Recommended