palantir access control

30
© 2008 Palantir Technologies Inc. All rights reserved. Palantir Access Control Bob McGrew Director of Engineering

Upload: palantirtech

Post on 19-Dec-2014

1.707 views

Category:

Design


20 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Palantir Access Control

© 2008 Palantir Technologies Inc. All rights reserved.

Palantir Access Control

Bob McGrew

Director of Engineering

Page 2: Palantir Access Control

2

Secure Information Integration

Imagine you have two data sources:– Profiles database

• Name, address, e-mail address• Accessible to all analysts

– E-mail message database• Accessible only to a small group A of analysts

Goals– Allow all analysts to use profiles information for analysis– Integrate the e-mails with the profiles information for group A– Analysts who cannot access the e-mail database learn no more

than what they could find out from the profiles database Secure Information Integration

Page 3: Palantir Access Control

3

Secure Information Discovery

Another scenario:– Profiles database

• Name, address, e-mail address• Accessible to all analysts

– E-mail message database• Accessible only to a small group A of analysts

Goals– Want to allow analysts not in A access to the e-mail data only if

they can show that they need to know it– Analysts not in A can learn that there is additional information

available for a particular profile, but no details Secure Information Discovery

Page 4: Palantir Access Control

4

Overview

Palantir Access Control– Guarantees confidentiality, integrity, and auditing– Enables secure information integration and discovery

In this talk– Security and Data Models– Security Guarantees– Two applications of our guarantees

• Confidentiality Under Resolution (CUR)• Confidentiality Under Discovery (CUD)

Page 5: Palantir Access Control

5

Overview

Palantir Access Control– Guarantees confidentiality, integrity, and auditing– Enables secure information integration and discovery

In this talk– Security and Data Models– Security Guarantees– Two applications of our guarantees

• Confidentiality Under Resolution (CUR)• Confidentiality Under Discovery (CUD)

Page 6: Palantir Access Control

6

Security Definitions

Group: – Set of users– User can belong to multiple groups

Permissions (ordered)– Discovery (d)– Read (r)– Write (w)– Ownership (o)

Access Control Item (ACI)– (Group, Permissions) pair

Access Control List (ACL)– Set of ACIs

ACL 1

ACI 101: (Group A, dr)

Group A Group B

ACI 102: (Group B, drw)

Alice Bob

Carol

Page 7: Palantir Access Control

7

Object Model

Data Source– Single source of data to Palantir– Examples: documents, Excel files, databases

Object– Single entity, event, or document

Property– Piece of information about an Object

Data Source Record (DSR)– Ties a Property to a Data Source– Each Property has one or more DSRs– Each DSR has an ACL, derived from its

Data Source

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

PropertyAge =

32

DSR ACL 2

DSRACL 2

Data Source

email.msg

Page 8: Palantir Access Control

8

Security & Data Model

DSR-centric, not Object-centric All sensitive data on Properties A Property can be read if any of its DSRs

can be read

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

PropertyAge =

32

DSR ACL 2

DSRACL 2

Data Source

email.msg

Page 9: Palantir Access Control

9

Discovery

An organization may want to make sensitive data available only to those who can show that they need to know about it.

Searches can yield discovery results with only data source name and discovery message

Objects viewed in the Browser also may have discovery messages

Page 10: Palantir Access Control

10

Discovery

Each data source has a discovery message– e.g., “To acquire permission to data from profiles.xls, please contact John Doe.”

Object load – Removes all DSRs for which the user has only discovery permissions– For each removed DSR, returns instead the Discovery Message for its Data Source

Search– Returns a Discovery Messages if the query would have matched if the user had read

instead of discovery permissions

Page 11: Palantir Access Control

11

Overview

Palantir Access Control– Guarantees confidentiality, integrity, and auditing– Enables secure information integration and discovery

In this talk– Security and Data Models– Security Guarantees– Two applications of our guarantees

• Confidentiality Under Resolution (CUR)• Confidentiality Under Discovery (CUD)

Page 12: Palantir Access Control

12

Security Guarantees

Confidentiality– Cannot read a Property without read permissions to a DSR– Cannot read a DSR without read permissions– Cannot discover the existence of a Property without discovery permissions to a

DSR

Integrity– Cannot edit a Property without write permissions to a DSR– Cannot change the ACL on a DSR without ownership permissions

Auditing– Every action is logged and attributed to the user who performed it

Page 13: Palantir Access Control

13

Untrusted Client

Palantir Security Model makes no assumptions about the client

Security guarantees hold under:– Normal operation of Palantir Workspace– Abnormal operation of Palantir Workspace– Arbitrary calls against our public API

Assumptions:– Attacker cannot directly connect to database– Attacker does not have physical access to server

Page 14: Palantir Access Control

14

Access control by data sources

Access control is based on data sources– Tied to objects and properties through DSRs

Suppose access controls were per-object– No fine-grained control– Cannot perform resolution across data sources

Page 15: Palantir Access Control

15

Overview

Palantir Access Control– Guarantees confidentiality, integrity, and auditing– Enables secure information integration and discovery

In this talk– Security and Data Models– Security Guarantees– Two applications of our guarantees

• Confidentiality Under Resolution (CUR)• Confidentiality Under Discovery (CUD)

Page 16: Palantir Access Control

16

Confidentiality Under Resolution (CUR)

Two Data Sources: A and B Analyst has read access to Data Source A Analyst has no access to Data Source B

The following two cases must be indistinguishable1. Data Source A imported2. Data Sources A and B imported and resolved together

Page 17: Palantir Access Control

17

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

Property

Age = 32

DSRACL 2

DSRACL 2

Data Source

email.msg

PropertyName =

“Mike Fikri”

ObjectType = Entity

Alice’s PermissionsACL 1: readACL 2: none

CUR Example: Pre-Resolution

Page 18: Palantir Access Control

18

CUR Example: Post-Resolution

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

PropertyAge =

32

DSRACL 2

DSRACL 2

Data Source

email.msg

Page 19: Palantir Access Control

19

CUR Example: Post-Resolution

Alice’s PermissionsACL 1: readACL 2: none

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

PropertyAge =

32

DSRACL 2

DSRACL 2

Data Source

email.msg

Page 20: Palantir Access Control

20

Object-Load Satisfies CUR

Returns readable projection of Object

No sensitive data directly on the Object (e.g., creation time)

Randomized IDs

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

Property

Age = 32

DSRACL 2

DSRACL 2

Data Source

email.msg

Page 21: Palantir Access Control

21

Search Satisfies CUR

Search terms are indexed with ACLs– Mike (ACL 1, ACL 2)– Fikri (ACL 1, ACL 2)– 32 (ACL 2)

Relevance is computed only over readable fields

ObjectType = Entity

PropertyName =

“Mike Fikri”

DSRACL 1

Data Source

profiles.xls

Property

Age = 32

DSRACL 2

DSRACL 2

Data Source

email.msg

Page 22: Palantir Access Control

22

Overview

Palantir Access Control– Guarantees confidentiality, integrity, and auditing– Enables secure information integration and discovery

In this talk– Security and Data Models– Security Guarantees– Two applications of our guarantees

• Confidentiality Under Resolution (CUR)• Confidentiality Under Discovery (CUD)

Page 23: Palantir Access Control

Confidentiality Under Discovery (CUD)

Searching for a phone number– Search reveals a discovery-only property matching that query– No information revealed about what object has that phone

number Viewing the owner of the phone number

– Load reveals a discovery-only property for that object– No information revealed about the value of the property

Intuition: cannot tie the value of a discovery-only property to the object it is associated with

Page 24: Palantir Access Control

24

Confidentiality Under Discovery (CUD)

Setting below should be indistinguishable to Alice from the same setting with ages reversed

Object1Type = Entity

PropertyName = “John”

DSRACL 1

Data Source

profiles.xls

PropertyAge = 33

DSRACL 2

Data Source

email.msg

Object2Type = Entity

PropertyAge = 44

DSRACL 2

PropertyName = “James”

DSRACL 1

Data Source

profiles.xls

Alice’s Permissions

ACL 1: read ACL 2: discovery

Page 25: Palantir Access Control

25

Confidentiality Under Discovery (CUD)

Setting below should be indistinguishable to Alice from the same setting with ages reversed

Object1Type = Entity

PropertyName = “John”

DSRACL 1

Data Source

profiles.xls

PropertyAge = 44

DSRACL 2

Data Source

email.msg

Object2Type = Entity

PropertyAge = 33

DSRACL 2

PropertyName = “James”

DSRACL 1

Data Source

profiles.xls

Alice’s Permissions

ACL 1: read ACL 2: discovery

Page 26: Palantir Access Control

26

Object-Load Satisfies CUD

Same results in both cases No information is leaked!

Object1Type = Entity

PropertyName = “John”

DSRACL 1

Data Source

profiles.xls

Object2Type = Entity

PropertyName = “James”

DSRACL 1

Discovery Message

for email.msg

Discovery Message

for email.msg

Page 27: Palantir Access Control

27

Search Satisfies CUD

Search for “Age=33” yields discovery message for email.msg Search for “Age=44” yields the same No information is leaked!

Object1Type = Entity

PropertyName = “John”

DSRACL 1

Data Source

profiles.xls

PropertyAge = 33

DSRACL 2

Data Source

email.msg

Object2Type = Entity

PropertyAge = 44

DSRACL 2

PropertyName = “James”

DSRACL 1

Data Source

profiles.xls

Alice’s Permissions

ACL 1: read ACL 2: discovery

Page 28: Palantir Access Control

28

Conjunctive Searches Do Not Satisfy CUD

Search for “Age=33 AND Name=John” Cannot answer without knowing which age is associated with Object1 No discovery results returned for conjunctive searches

Object1Type = Entity

PropertyName = “John”

DSRACL 1

Data Source

profiles.xls

PropertyAge = 33

DSRACL 2

Data Source

email.msg

Object2Type = Entity

PropertyAge = 44

DSRACL 2

PropertyName = “James”

DSRACL 1

Data Source

profiles.xls

Alice’s Permissions

ACL 1: read ACL 2: discovery

Page 29: Palantir Access Control

29

Conclusion

Security and Data Models Security Guarantees Two applications of our guarantees

– Confidentiality Under Resolution (CUR)– Confidentiality Under Discovery (CUD)

For more details, see the“Palantir Access Control Model” whitepaper

Page 30: Palantir Access Control

© 2008 Palantir Technologies Inc. All rights reserved.

Palantir Access Control

Bob McGrew

Director of Engineering