Top Banner
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
42

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

Dec 28, 2015

Download

Documents

Timothy Gregory
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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