Disjunction Category Labels Deian Stefan, Alejandro Russo, David - - PowerPoint PPT Presentation

disjunction category labels
SMART_READER_LITE
LIVE PREVIEW

Disjunction Category Labels Deian Stefan, Alejandro Russo, David - - PowerPoint PPT Presentation

Disjunction Category Labels Deian Stefan, Alejandro Russo, David Mazires, John Mitchell NordSec 2011 Motivating Example Bob Speadsheet WebTax Public Network Proprietary DB Motivating Example Bob does not trust WebTax WebTax can


slide-1
SLIDE 1

Disjunction Category Labels

Deian Stefan, Alejandro Russo, David Mazières, John Mitchell NordSec 2011

slide-2
SLIDE 2

Motivating Example

Proprietary DB Public Network

WebTax Speadsheet

Bob

slide-3
SLIDE 3

Motivating Example

  • Bob does not trust WebTax

➤ WebTax can exfiltrated his data

  • WebTax author does not trust Bob

➤ Bob can learn proprietary

information by inspecting code

  • WebTax author want to prevent

leaks due to bugs

Proprietary DB Public Network

WebTax Speadsheet

Bob

slide-4
SLIDE 4

Motivating Example

  • Bob does not trust WebTax

➤ WebTax can exfiltrated his data

  • WebTax author does not trust Bob

➤ Bob can learn proprietary

information by inspecting code

  • WebTax author want to prevent

leaks due to bugs

Proprietary DB Public Network

WebTax Speadsheet

Bob

slide-5
SLIDE 5

Motivating Example

  • Bob does not trust WebTax

➤ WebTax can exfiltrated his data

  • WebTax author does not trust Bob

➤ Bob can learn proprietary

information by inspecting code

  • WebTax author want to prevent

leaks due to bugs

Proprietary DB Public Network

WebTax Speadsheet

Bob

slide-6
SLIDE 6

Motivating Example

  • Bob does not trust WebTax

➤ WebTax can exfiltrated his data

  • WebTax author does not trust Bob

➤ Bob can learn proprietary

information by inspecting code

  • WebTax author want to prevent

leaks due to bugs

Proprietary DB Public Network

WebTax Speadsheet

Bob

slide-7
SLIDE 7

Motivating Example

  • Bob does not trust WebTax

➤ WebTax can exfiltrated his data

  • WebTax author does not trust Bob

➤ Bob can learn proprietary

information by inspecting code

  • WebTax author want to prevent

leaks due to bugs

Proprietary DB Public Network

WebTax Speadsheet

Bob

How do we address security in the presence of mutual-distrust?

slide-8
SLIDE 8

Information Flow Control

  • Well-established approach to enforcing security

➤ Confidentiality: prevent unwanted leaks ➤ Integrity: prevent flows to critical operations

  • Decentralized IFC addresses mutual distrust
  • Suitable for executing untrustworthy code

➤ Policies specify where data can flow

slide-9
SLIDE 9

Example with IFC

Proprietary DB Public Network

WebTax Speadsheet

Bob

Policy:

  • bservable by Bob

Policy:

  • bservable by

WebTax author cannot be exfiltrated to network

slide-10
SLIDE 10
  • How are policies specified?

➤ Associating a label with every piece of data

  • Labels form a lattice over can-flow-to relation ⊑

➤ E.g., Bob’s data cannot flow to network ⋢

  • Policies are enforced at every possible flow

IFC Policies

WebTax

slide-11
SLIDE 11

IFC Policies

WebTax

⊑ ?

  • How are policies specified?

➤ Associating a label with every piece of data

  • Labels form a lattice over can-flow-to relation ⊑

➤ E.g., Bob’s data cannot flow to network ⋢

  • Policies are enforced at every possible flow
slide-12
SLIDE 12

IFC Policies

WebTax

  • How are policies specified?

➤ Associating a label with every piece of data

  • Labels form a lattice over can-flow-to relation ⊑

➤ E.g., Bob’s data cannot flow to network ⋢

  • Policies are enforced at every possible flow
slide-13
SLIDE 13

Motivation for DC Labels

  • Existing DIFC systems use ad-hoc label formats

➤ DLM, Asbestos/HiStar, DStar, Flume, etc. all

present their own label format

  • Most labels have not been formalized
  • Some rely on centralized components
  • Need simple, sound, expressive &

decentralized label format ➠ DC Labels

slide-14
SLIDE 14

DC Labels

  • Components S and I are formulas over principals

➤ Components impose restrictions on data flow

  • Principal is a source of authority (e.g., Bob)
  • Restrictions:

➤ S and I are minimal (sorted) formulas in CNF ➤ Neither S nor I contain negated terms

〈S, I〉

slide-15
SLIDE 15

DC Labels

  • Secrecy component S:

➤ Specifies principals allowed or whose consent

is necessary to observe the data

  • Integrity component I:

➤ Specifies principals that created or are

allowed to modify the data

〈S, I〉

slide-16
SLIDE 16

Example with DC Labels

Proprietary DB Public Network

WebTax Speadsheet

Bob

Policy:

  • bservable by Bob

Policy:

  • bservable by

WebTax author

slide-17
SLIDE 17

Example with DC Labels

Proprietary DB Public Network

WebTax Speadsheet

Bob

Policy:

  • bservable by Bob

Policy:

  • bservable by

WebTax author 〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉

slide-18
SLIDE 18

Example with DC Labels

Proprietary DB Public Network

WebTax Speadsheet

Bob

Policy:

  • bservable by Bob

Policy:

  • bservable by

WebTax author 〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉

Bob created & vouches for data Preparer created & vouches for data

slide-19
SLIDE 19

A more interesting label

〈{(Bob⋁Alice)⋀User}, {Bob⋁Alice}〉

slide-20
SLIDE 20

A more interesting label

〈{(Bob⋁Alice)⋀User}, {Bob⋁Alice}〉

Policy: created/modified by Bob or Alice

slide-21
SLIDE 21

A more interesting label

〈{(Bob⋁Alice)⋀User}, {Bob⋁Alice}〉

Policy I:

  • bservable by Bob
  • r Alice

Policy II:

  • bservable by

User (group) Policy:

  • bservable by Bob or Alice, given the

consent the User group (or vice versa)

Policy: created/modified by Bob or Alice

slide-22
SLIDE 22

A more interesting label

〈{(Bob⋁Alice)⋀User}, {Bob⋁Alice}〉

Policy I:

  • bservable by Bob
  • r Alice

Policy II:

  • bservable by

User (group) Policy:

  • bservable by Bob or Alice, given the

consent the User group (or vice versa)

Policy: created/modified by Bob or Alice

“categories”

slide-23
SLIDE 23

General observations

  • Secrecy: {(A⋁B)⋀C⋀ }

➤ Disjunction ➠ allows more readers ➤ Conjunction ➠ more restrictions ∴ more secret

  • Integrity: {(A⋁B)⋀C⋀ }

➤ Disjunction ➠ allows more writers ➤ Conjunction ➠ more restrictions ∴ trustworthy

… …

slide-24
SLIDE 24

Enforcing IFC

  • Data may flow from one entity to another iff

➤ it accumulates more secrecy restrictions ➤ it losses integrity restrictions

S2 ⟹ S1 I1 ⟹ I2 〈S1, I1〉 ⊑ 〈S2, I2〉

slide-25
SLIDE 25

Enforcing IFC

  • Data may flow from one entity to another iff

➤ it accumulates more secrecy restrictions ➤ it losses integrity restrictions

S2 ⟹ S1 I1 ⟹ I2 〈S1, I1〉 ⊑ 〈S2, I2〉

Principal’s whose consent is needed to observe S2 must include those of S1

slide-26
SLIDE 26

Enforcing IFC

  • Data may flow from one entity to another iff

➤ it accumulates more secrecy restrictions ➤ it losses integrity restrictions

S2 ⟹ S1 I1 ⟹ I2 〈S1, I1〉 ⊑ 〈S2, I2〉

Principal’s whose consent is needed to observe S2 must include those of S1 Dual of secrecy. I2 must be less restricting than I1

slide-27
SLIDE 27

Example of label relations

Secrecy 〈{Alice⋁Bob}, True〉 〈{Alice⋁Bob⋁Charlie}, True〉 〈{Alice⋀Bob}, True〉 〈{Alice}, True〉 〈{Alice⋁Bob}, True〉 〈{Alice⋀Dan}, True〉

slide-28
SLIDE 28

Example of label relations

Secrecy 〈{Alice⋁Bob}, True〉 〈{Alice⋁Bob⋁Charlie}, True〉

〈{Alice⋀Bob}, True〉 〈{Alice}, True〉 〈{Alice⋁Bob}, True〉 〈{Alice⋀Dan}, True〉

slide-29
SLIDE 29

Example of label relations

Secrecy 〈{Alice⋁Bob}, True〉 〈{Alice⋁Bob⋁Charlie}, True〉

〈{Alice⋀Bob}, True〉 〈{Alice}, True〉 〈{Alice⋁Bob}, True〉 〈{Alice⋀Dan}, True〉

slide-30
SLIDE 30

Example of label relations

Secrecy 〈{Alice⋁Bob}, True〉 〈{Alice⋁Bob⋁Charlie}, True〉

〈{Alice⋀Bob}, True〉 〈{Alice}, True〉

〈{Alice⋁Bob}, True〉 〈{Alice⋀Dan}, True〉

slide-31
SLIDE 31

Example of label relations

Integrity 〈True, {Alice}〉 〈True, {Alice⋀Bob}〉 〈 True, {Alice}〉 〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob⋁Charlie}〉

slide-32
SLIDE 32

Example of label relations

Integrity 〈True, {Alice}〉 〈True, {Alice⋀Bob}〉 〈 True, {Alice}〉 〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob⋁Charlie}〉

slide-33
SLIDE 33

Example of label relations

Integrity 〈True, {Alice}〉 〈True, {Alice⋀Bob}〉 〈 True, {Alice}〉 〈True, {Alice⋁Bob}〉

〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob⋁Charlie}〉

slide-34
SLIDE 34

Example of label relations

Integrity 〈True, {Alice}〉 〈True, {Alice⋀Bob}〉

〈 True, {Alice}〉 〈True, {Alice⋁Bob}〉

〈True, {Alice⋁Bob}〉 〈True, {Alice⋁Bob⋁Charlie}〉

slide-35
SLIDE 35

DC Labels form a lattice

  • Combining differently labeled data ➠ join ⊔
  • Writing to differently labeled entities ➠ meet ⊓

➤ Dual of join: 〈S1, I1〉 ⊓ 〈S2, I2〉 = 〈S1⋁S2, I1⋀I2〉

〈S1, I1〉 ⊔ 〈S2, I2〉 = 〈S1⋀S2, I1⋁I2〉

slide-36
SLIDE 36

DC Labels form a lattice

  • Combining differently labeled data ➠ join ⊔
  • Writing to differently labeled entities ➠ meet ⊓

➤ Dual of join: 〈S1, I1〉 ⊓ 〈S2, I2〉 = 〈S1⋁S2, I1⋀I2〉

〈S1, I1〉 ⊔ 〈S2, I2〉 = 〈S1⋀S2, I1⋁I2〉

Need consent of principals in S1 and S2 to observe data

slide-37
SLIDE 37

DC Labels form a lattice

  • Combining differently labeled data ➠ join ⊔
  • Writing to differently labeled entities ➠ meet ⊓

➤ Dual of join: 〈S1, I1〉 ⊓ 〈S2, I2〉 = 〈S1⋁S2, I1⋀I2〉

〈S1, I1〉 ⊔ 〈S2, I2〉 = 〈S1⋀S2, I1⋁I2〉

Need consent of principals in S1 and S2 to observe data Principals of I1 or I2 could have created the data

slide-38
SLIDE 38

DC Labels form a lattice

  • DC Labels are partially
  • rdered by ⊑ relation
  • Have a well-defined join ⊔
  • Have a well-defined meet ⊓
  • We define top & bottom

elements:

➤ ⊤ = 〈False, True〉 ➤ ⊥ = 〈True, False〉

⊤ ⊥

〈True, True〉

⊑ ⊑

slide-39
SLIDE 39

Example with DC Labels

Proprietary DB Public Network

WebTax Speadsheet

Bob

〈{Preparer}, {Preparer}〉 〈{Bob}, {Bob}〉 〈True, True〉 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉

slide-40
SLIDE 40

Example with DC Labels

Public Network

WebTax

Bob

〈{Bob}, {Bob}〉 〈True, True〉 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉

slide-41
SLIDE 41

Example with DC Labels

Public Network

WebTax

Bob

〈{Bob}, {Bob}〉 〈True, True〉 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉

No leak!

slide-42
SLIDE 42

Example with DC Labels

Public Network

WebTax

Bob

〈{Preparer⋀Bob}, {Preparer⋁Bob}〉

✗ ✗

〈{Bob}, {Bob}〉 〈True, True〉

No leak! Overly restrictive!

slide-43
SLIDE 43

Privileges

  • In any practical system need to have method of

releasing information

  • Mutual-distrustful systems require declassification

➤ E.g., WebTax needs to declassify data for Bob

  • Code running on behalf of principals can exercise

privileges corresponding to the principals

➤ Can declassify & endorse data using ⊑P relation

“can-flow-to given privileges p”

slide-44
SLIDE 44

Privileges

  • Privileges P are conjunctions of principals
  • Code can use privileges P to

➤ remove a principal in P from the secrecy

component of a label ➠ declassification

➤ add a principal in P to an integrity

component of a label ➠ endorsement

P⋀S2 ⟹ S1 P⋀I1 ⟹ I2 〈S1, I1〉 ⊑P 〈S2, I2〉

slide-45
SLIDE 45

Example with Privileges

Proprietary DB Public Network

WebTax Speadsheet

Bob

〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉 〈True, True〉 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉 {Bob} {Preparer}

slide-46
SLIDE 46

Example with Privileges

Proprietary DB Public Network

WebTax Speadsheet

Bob

〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉 〈True, True〉 Privilege to declassify Bob’s data & endorse data on his behalf Privilege to declassify Preparer’s data 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉 {Bob} {Preparer}

slide-47
SLIDE 47

Example with Privileges

Proprietary DB Public Network

WebTax Speadsheet

Bob

〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉 〈True, True〉 Privilege to declassify Bob’s data & endorse data on his behalf Privilege to declassify Preparer’s data 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉 {Bob} {Preparer}

slide-48
SLIDE 48

Example with Privileges

Proprietary DB Public Network

WebTax Speadsheet

Bob

〈{Bob}, {Bob}〉 〈{Preparer}, {Preparer}〉 〈True, True〉 Privilege to declassify Bob’s data & endorse data on his behalf Privilege to declassify Preparer’s data 〈{Preparer⋀Bob}, {Preparer⋁Bob}〉 {Bob} {Preparer}

slide-49
SLIDE 49

Example with Privileges

Public Network

WebTax

Bob

〈{Bob}, {Bob}〉 〈True, True〉

No leak!

⋣ ⊒

〈{Preparer⋀Bob}, {Preparer⋁Bob}〉 {Preparer}

slide-50
SLIDE 50

Haskell Implementations

  • Labels for dynamic IFC systems

➤ Principals are strings ➤ Categories are sets of principals ➤ Components are sets categories

  • Labels for static IFC systems

➤ Prototype implementation that enforces IFC

for secrecy-only DC Labels (a la Curry- Howard) with no compiler modifications!

slide-51
SLIDE 51

Conclusions

  • Presented new label format: DC Labels

➤ Formalized using propositional logic ➤ Proved several security properties ➤ Showed their use in common design patterns ➤ Presented two Haskell implementations

  • Strength of DC Labels:

➤ Model is simple & sound ➤ Allows for specifying complex policies ➤ Decentralized

slide-52
SLIDE 52

Thank you!

$> cabal install dclabel www.scs.stanford.edu/~deian/dclabels