mark s. miller, bill tulloh, jonathan shapiro virus-safe computing project hewlett packard...

42
Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University The Structure of Authority Why security is not a separable concern

Upload: timothy-gregory

Post on 28-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Mark S. Miller, Bill Tulloh, Jonathan ShapiroVirus-Safe Computing ProjectHewlett Packard LaboratoriesJohns Hopkins UniversityGeorge Mason University

The Structure of AuthorityWhy security is not a separable concern

Page 2: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Hopes

• Common Ancestors: Actors, Concurrent Prolog– Lambda Calculus, Logic Variables, Stateful Processes

• Oz & E: Similar Philosophies– Multi-paradigm, Explicit state, Hemi-transparent

distribution– Built for adoption & use, not sterile purity– Oz: Constraints, Larger community, More engineering– E: Security, Defensive correctness

• Oz-E .. Oz-4: Union of paradigms– Oz with Security Oz without Insecurity– How to add a subtractive paradigm?– Search the most constrained choices early!

Page 3: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

A Very Powerful Program

This program can delete any file you can.

Page 4: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus Safe Computing Initiative

Functionality vs. Security?

Integratable

Isolated

E, CapDesk, PolarisUsable Least Authority

Applets:No Authority

Applications:User’s Authority

SafeDangerous

Unusable

“Sandboxing”Firewalls

Page 5: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

A Tale of Two Copies

$ cp foo.txt bar.txt

vs.

$ cat < foo.txt > bar.txt

•Bundle permission with designation•Remove ambient authority•Let “knowledge of” shape “access to”

Page 6: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Separation Principles

• Information hiding: “Need to know”• POLA: “Need to do”

Modularity & Security each need both.

Modularity is not a separable concern.

Page 7: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Get the yellow out!

The Access Matrix

Assets at risk

/etc/passwd Alan’s stuff Barb’s stuff Doug’s stuffKernel +

~root = TCB

~alan

~barb

~doug

Who might endanger what?

risk = ∑exploitability of flaws flaws

Org principle: “separation of duties”

Page 8: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Barb runs Excel

Barb’s assets at risk “to Barb”

email addrs pgp ring killer.xls internet access

Desktop

Mozilla

Excel

Eudora+PGP

What might endanger what?

Page 9: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Demo Trojan Spreadsheet

Page 10: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Let Knowledge Shape Access

“Knows about” has a fractal structure.– People know people. Organs know organs. Cells know cells.

– Abstraction & modularity at every level of composition.

Make access rights similarly self-similar!

Page 11: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Barb runs Excel

Barb’s assets at risk “to Barb”

email addrs pgp ring killer.xls internet access

Desktop

Mozilla

Excel

Eudora+PGP

What might endanger what?

Page 12: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

The Access Matrix

Assets at risk

/etc/passwd Alan’s stuff Barb’s stuff Doug’s stuffKernel +

~root = TCB

~alan

~barb

~doug

Who might endanger what?

Page 13: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

The Access Matrix, Reloaded

Assets at risk

/etc/passwd Alan’s stuff Barb’s stuff Doug’s stuffKernel +

~root = TCB

~alan POLArized:

~barb legacy user

~doug POLArized:

Who might endanger what?

Page 14: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Doug Runs Legacy Apps

Doug’s assets at risk “to Doug”

email addrs pgp ring killer.xls internet access

E + CapDesk= Doug’s

TCB DarpaBrowse

r

Excel Polaris

CapMail

What might endanger what?

Page 15: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Demo Polaris

Page 16: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Doug runs Caplets on CapDesk

Doug’s assets at risk “to Doug”

email addrs pgp ring killer.xls internet access

E + CapDesk= Doug’s

TCB DarpaBrowse

r

Excel Polaris

CapMail

What might endanger what?

Page 17: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Demo CapDesk

Page 18: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

CapDesk/Polaris: Usable POLA

• Double click launch• File Explorer• Open dialog• Drag/Drop• Etc...

Moral: Bundle permission with designation

Page 19: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Doug runs CapMail

Doug’s assets at risk “to Doug”

email addrs pgp ring killer.xls internet access

E + CapDesk= Doug’s

TCB DarpaBrowse

r

Excel Polaris

CapMail

What might endanger what?

Page 20: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

CapMail’s main() imports modules

Doug’s assets at risk to his CapMail

email addrs pgp ring killer.xls internet access

CapMail’s main()

= CapMail’s TCB

address book

gpg plugin Tamed Library

smtp / pop stacks

Page 21: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial

Conditions

How might object Bob come to know of object Carol?

Page 22: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial

Conditions

Alice says: bob.foo(carol)

Page 23: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial

Conditions

Alice says: bob.foo(carol)

Page 24: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial

Conditions

Alice says: bob.foo(carol)

Page 25: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

Alice says: bob.foo(carol)

Think in names. Speak in references.

Page 26: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

Alice says: bob.foo(carol)

Page 27: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

Bob says: def carol { ... }

Page 28: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

Alice says: def bob { ... carol ... }

Page 29: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

Alice says: import bob(... carol ...)

Page 30: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

How do I designate thee?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

At t0:

Page 31: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

What are Object-Capabilities?

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial Conditions

• Absolute encapsulation—causality only by messages• Only references permit causality

Reference Graph == Access Graph

Page 32: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Not Discretionary!

• by Introduction– ref to Carol– ref to Bob– decides to share

• by Parenthood• by Endowment• by Initial

Conditions

Alice says: bob.foo(carol)

• Overlooked requirement. Enables confinement.• Only connectivity begets connectivity.

Page 33: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Doug’s assets at risk to his CapMail

email addrs pgp ring killer.xls internet access

CapMail’s main()

= CapMail’s TCB

address book

gpg plugin Tamed Library

smtp / pop stacks

CapMail’s main() imports modules

Page 34: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Assets at risk

/etc/passwd Alan’s stuff Barb’s stuff Doug’s stuffKernel +

~root = TCB

~alan

~barb legacy user

~doug

Least Authority is Fractal!

Recursively reduce target area

polarized Excel

tamed gpg

Page 35: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

D.Correctness

Virus SafeComputing

Objects

Object-C

apabilities

Roadmap, in Hindsight

Safe Reflection

Scheme

Mutable Static State

Static Native “Devices”

Shared State Concurrency

Unprincipled Libraries

Oak, pre.NET, Squeak , Oz

What about

Security?

ClassLoaders as Principals

Stack Introspection

Security Managers Signed Applets

Safe Loading

No problemo

Java, .NET

What about

Security?

Lexical NestingMessage Passing, Encapsulation

Memory Safety, GC, Eval / Loading

W7 E

Page 36: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Message Passing, Encapsulation Lexical Nesting

Objects

Object-C

apabilities

Detour is Non-Object Causality

Scheme W7 E

Squeak-E, Oz-E

What about

Security?

ClassLoaders as Principals

Stack Introspection

Security Managers Signed Applets

Memory Safety, GC, Eval / Loading Safe Loading

No problemo

Java, .NET

Mutable Static State

Static Native “Devices”

Shared State Concurrency

Unprincipled Libraries

D.Correctness

Safe Reflection

Virus SafeComputing

Page 37: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Security is Just Extreme Modularity

• Good software engineering– Responsibility driven design

– Omit needless coupling

– assert(..) preconditions

• Information hiding– Designation, need to know

– Dynamics of knowledge

• Lexical naming– Think names, speak refs

– Avoid global variables

• Abstraction– Procedural, data, control, ...

– Patterns and frameworks

– Say what you mean

• Capability discipline– Authority driven design

– Omit needless vulnerability

– Validate inputs

• Principle of Least Authority– Permission, need to do

– Dynamics of authorization

• No global name spaces– Think names, speak refs

– Forbid mutable static state

• Abstraction– ... and access abstractions

– Patterns of safe cooperation

– Mean only what you say

Page 38: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Not Quite: Defensive Correctness

• Server Sam has clients Claire & Clem– Claire and Clem’s correctness depend on Sam’s correctness

– Claire and Clem “rely on” / “are vulnerable to” Sam

• Traditional Correctness:– Sam’s service specified with pre- and post- conditions

– Sam relies on Claire => Clem relies on Claire

• Defensive Correctness: No unchecked pre-conditions

– Sam can give Clem good service despite arbitrary Claire

– Better modularity of correctness arguments

• Correctness is not a separable concern!

Page 39: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Our Logo

The POLA Bear

Page 40: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

POLA all the way down

Page 41: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Bibliography

• E in a Walnut skyhunter.com/marcs/ewalnut.html Download E from erights.org and try it! (It’s open source.)

• Paradigm Regained (HPL-2003-222) erights.org/talks/asian03/

• A Security Kernel Based on the Lambda-Calculus mumble.net/jar/pubs/secureos/

• Capability-based Financial Instruments (“the Ode”)erights.org/elib/capability/ode/index.html

• Intro to Capability-based Securityskyhunter.com/marcs/capabilityIntro/index.html

• Statements of Consensus erights.org/elib/capability/consensus-9feb01.html

• Web Calculus www.waterken.com/dev/Web/Calculus/

• Web sites: erights.org , combex.com , eros-os.org ,cap-lore.com/CapTheory , www.waterken.com

Page 42: Mark S. Miller, Bill Tulloh, Jonathan Shapiro Virus-Safe Computing Project Hewlett Packard Laboratories Johns Hopkins University George Mason University

Virus-Safe Computing Initiative

Thank You