Compliance Monitoring of Third-Party Applicatjons in Online Social - - PowerPoint PPT Presentation

compliance monitoring of third party applicatjons in
SMART_READER_LITE
LIVE PREVIEW

Compliance Monitoring of Third-Party Applicatjons in Online Social - - PowerPoint PPT Presentation

Compliance Monitoring of Third-Party Applicatjons in Online Social Networks Florian Kelbert, Imperial College London Alexander Fromm, Technical University of Munich Problem Problem How to ensure that data is used in correspondence with


slide-1
SLIDE 1

Florian Kelbert, Imperial College London Alexander Fromm, Technical University of Munich

Compliance Monitoring of Third-Party Applicatjons in Online Social Networks

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

Problem

slide-7
SLIDE 7

Problem

How to ensure that data is used in correspondence with policies?

slide-8
SLIDE 8

Problem

How to ensure that data is used in correspondence with policies?

slide-9
SLIDE 9

Problem

How to ensure that data is used in correspondence with policies?

slide-10
SLIDE 10

Problem

How to ensure that data is used in correspondence with policies?

slide-11
SLIDE 11

Problem

How to ensure that data is used in correspondence with policies?

slide-12
SLIDE 12

Problem

How to ensure that data is used in correspondence with policies? “You may cache the content for up to 24 hours”

slide-13
SLIDE 13

Problem

How to ensure that data is used in correspondence with policies? “You may cache the content for up to 24 hours” “Only use friend data in the person’s experience in your app”

slide-14
SLIDE 14

Problem

How to ensure that data is used in correspondence with policies? “You may cache the content for up to 24 hours” “Only use friend data in the person’s experience in your app” “You may not disclose confidential information to a third party

without the prior explicit consent of Tumblr.”

slide-15
SLIDE 15

To start with ...

slide-16
SLIDE 16

To start with ...

Social Networks are trusted

slide-17
SLIDE 17

To start with ...

Social Networks are trusted

slide-18
SLIDE 18

To start with ...

Social Networks are trusted Third Party Applications are not

slide-19
SLIDE 19

To start with ...

Social Networks are trusted Third Party Applications are not

Thousands of apps and developers

slide-20
SLIDE 20

Overview

slide-21
SLIDE 21

Overview

OSN Operator (trusted)

User Data

slide-22
SLIDE 22

Overview

OSN Operator (trusted)

User Data

slide-23
SLIDE 23

Overview

OSN Operator (trusted)

Policy Database User Data

  • 1. Policy Provisioning
slide-24
SLIDE 24

Overview

OSN Operator (trusted)

Policy Database User Data

Applications (untrusted)

  • 1. Policy Provisioning
slide-25
SLIDE 25

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted)

slide-26
SLIDE 26

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries

slide-27
SLIDE 27

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

slide-28
SLIDE 28

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request
slide-29
SLIDE 29

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
slide-30
SLIDE 30

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
slide-31
SLIDE 31

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies
slide-32
SLIDE 32

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies

Decision Engine

slide-33
SLIDE 33

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies

Decision Engine

  • 6. deployPolicy
slide-34
SLIDE 34

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies

Decision Engine

  • 6. deployPolicy
  • 7. Request
slide-35
SLIDE 35

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies

Decision Engine

  • 6. deployPolicy
  • 7. Request
  • 8. Response
slide-36
SLIDE 36

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

PaaS / SEE (trusted) Libraries Monitor

  • 2. Request

Coordinator

  • 3. Request
  • 4. getPolicies
  • 5. Policies

Decision Engine

  • 6. deployPolicy
  • 7. Request
  • 8. Response
  • 9. Response
slide-37
SLIDE 37

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

Coordinator Decision Engine PaaS / SEE (trusted) Libraries Monitor

  • 2. Request
  • 5. Policies
  • 3. Request
  • 4. getPolicies
  • 6. deployPolicy
  • 7. Request
  • 8. Response
  • 9. Response
  • 10. Response
slide-38
SLIDE 38

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

Coordinator Decision Engine PaaS / SEE (trusted) Libraries Monitor

  • 2. Request
  • 5. Policies
  • 3. Request
  • 4. getPolicies
  • 6. deployPolicy
  • 7. Request
  • 8. Response
  • 9. Response
  • 10. Response

Continuous policy evaluation

slide-39
SLIDE 39

Some details follow ...

slide-40
SLIDE 40

Some details follow ...

Policy Provisioning

slide-41
SLIDE 41

Some details follow ...

Policy Provisioning

slide-42
SLIDE 42

Some details follow ...

Policy Provisioning

slide-43
SLIDE 43

Policy Provisioning

slide-44
SLIDE 44

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

slide-45
SLIDE 45

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

slide-46
SLIDE 46

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

slide-47
SLIDE 47

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

slide-48
SLIDE 48

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event: Condition: Action:

slide-49
SLIDE 49

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event:

process(data)

Condition: Action:

slide-50
SLIDE 50

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event:

process(data)

Condition: Action:

<inhibit>

slide-51
SLIDE 51

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event:

process(data)

Condition:

not(repmin(24[hours], 1, receive(data)))

Action:

<inhibit>

slide-52
SLIDE 52

Policy Provisioning

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event:

process(data)

Condition:

not(repmin(24[hours], 1, receive(data)))

Action:

<inhibit>

Complex LTL formulas:

  • propositional
  • temporal
  • cardinal
  • spatial

constraints

slide-53
SLIDE 53

Policy Provisioning

Complex LTL formulas:

  • propositional
  • temporal
  • cardinal
  • spatial

constraints

“If you cache data you receive from us, [. . . ] keep it up to date”

“Whenever some data is processed by the application, then it must have been received from the OSN within the last 24 hours”

Event:

process(data)

Condition:

not(repmin(24[hours], 1, receive(data)))

Action:

<inhibit>

slide-54
SLIDE 54

Some details follow ...

Policy Provisioning Application Deployment

slide-55
SLIDE 55

Some details follow ...

Policy Provisioning Application Deployment

slide-56
SLIDE 56

Some details follow ...

Policy Provisioning Application Deployment

slide-57
SLIDE 57

Applicatjon Deployment

slide-58
SLIDE 58

Applicatjon Deployment

Analysis of binary app to find

slide-59
SLIDE 59

Applicatjon Deployment

Analysis of binary app to find

Data sources

e.g., retrieve from OSN

slide-60
SLIDE 60

Applicatjon Deployment

Analysis of binary app to find

Data sources

e.g., retrieve from OSN

Data sinks

e.g., data usage/sharing

slide-61
SLIDE 61

Applicatjon Deployment

Analysis of binary app to find

Data sources

e.g., retrieve from OSN

Data sinks

e.g., data usage/sharing

Dependencies between them

slide-62
SLIDE 62

Applicatjon Deployment

Analysis of binary app to find

Data sources

e.g., retrieve from OSN

Data sinks

e.g., data usage/sharing

Dependencies between them

Instrumentation of sources and sinks for

slide-63
SLIDE 63

Applicatjon Deployment

Analysis of binary app to find

Data sources

e.g., retrieve from OSN

Data sinks

e.g., data usage/sharing

Dependencies between them

Instrumentation of sources and sinks for

Data flow tracking Policy decisions

slide-64
SLIDE 64

Some details follow ...

Policy Provisioning Application Deployment Event signaling for

data flow tracking policy decisions

slide-65
SLIDE 65

Event Signaling

slide-66
SLIDE 66

Event Signaling

Signal invocations of

data sources data sinks

slide-67
SLIDE 67

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

slide-68
SLIDE 68

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

Is data read from source? Is data written to sink?

slide-69
SLIDE 69

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

Is data read from source? Is data written to sink?

i.e., does event of ECA rule match?

}

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

slide-70
SLIDE 70

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

Is data read from source? Is data written to sink?

If Yes: Evaluate condition

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

i.e., does event of ECA rule match?

}

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

slide-71
SLIDE 71

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

Is data read from source? Is data written to sink?

If Yes: Evaluate condition

If True: Apply action

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

i.e., does event of ECA rule match?

}

slide-72
SLIDE 72

Event Signaling

Signal invocations of

data sources data sinks

to decision engine:

Is data read from source? Is data written to sink?

If Yes: Evaluate condition

If True: Apply action

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

i.e., does event of ECA rule match?

}

Event: process(data) Condition: not(repmin(24[hours], 1, receive(data))) Action: <inhibit>

slide-73
SLIDE 73

Overview

OSN Operator (trusted)

Policy Database

PaaS Provider (trusted)

User Data

Applications (untrusted)

  • 1. Policy Provisioning

Coordinator Decision Engine PaaS / SEE (trusted) Libraries Monitor

  • 2. Request
  • 5. Policies
  • 3. Request
  • 4. getPolicies
  • 6. deployPolicy
  • 7. Request
  • 8. Response
  • 9. Response
  • 10. Response

Continuous policy evaluation

slide-74
SLIDE 74

Evaluatjon

slide-75
SLIDE 75

Evaluatjon

Between 15% and 41% performance overhead

slide-76
SLIDE 76

Evaluatjon

Between 15% and 41% performance overhead Depends much on the application and policy

slide-77
SLIDE 77

Evaluatjon

Between 15% and 41% performance overhead Depends much on the application and policy Problem: Real-world apps are not available

slide-78
SLIDE 78

Summary

slide-79
SLIDE 79

Summary

Protection from data misuse is possible

slide-80
SLIDE 80

Summary

Protection from data misuse is possible Critical requirements

slide-81
SLIDE 81

Summary

Protection from data misuse is possible Critical requirements

User awareness

slide-82
SLIDE 82

Summary

Protection from data misuse is possible Critical requirements

User awareness Transparency for all involved parties

slide-83
SLIDE 83

Summary

Protection from data misuse is possible Critical requirements

User awareness Transparency for all involved parties