investigating user privacy in android ad libraries · analyze popular android ad libraries for...

Post on 08-Oct-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Investigating User Privacy in Android Ad Libraries

Ryan Stevens, Clint Gibler, Jon Crussell, Jeremy EricksonHao Chen

UC Davis Computer Security Lab

1

Motivation

2

Motivation

?

3

Motivation

✓Previous work has focused on thetrustworthiness of application code:• TaintDroid - Enck, “OSDI 2010”

• AndroidLeaks - Gibler, “Trust 2012”

4

Motivation

? But what about ad code?

5

Goals

• Identify unique privacy concerns in Android app advertising

• Discover privacy threats resulting from these concerns

• Analyze popular Android ad libraries for these threats

• Propose guidelines to alleviate these threats

6

Goals

• Identify unique privacy concerns in Android app advertising

• Discover privacy threats resulting from these concerns

• Analyze popular Android ad libraries for these threats

• Propose guidelines to alleviate these threats

6

Goals

• Identify unique privacy concerns in Android app advertising

• Discover privacy threats resulting from these concerns

• Analyze popular Android ad libraries for these threats

• Propose guidelines to alleviate these threats

6

Goals

• Identify unique privacy concerns in Android app advertising

• Discover privacy threats resulting from these concerns

• Analyze popular Android ad libraries for these threats

• Propose guidelines to alleviate these threats

6

Goals

• Identify unique privacy concerns in Android app advertising

• Discover privacy threats resulting from these concerns

• Analyze popular Android ad libraries for these threats

• Propose guidelines to alleviate these threats

6

Permissions

• Specified by the application

• Allows the app to access privileged device functionality

• Examples of permissions are:• internet• access fine location• access network state

7

Permissions

• Specified by the application

• Allows the app to access privileged device functionality

• Examples of permissions are:• internet• access fine location• access network state

7

Permissions

• Specified by the application

• Allows the app to access privileged device functionality

• Examples of permissions are:• internet

• access fine location• access network state

7

Permissions

• Specified by the application

• Allows the app to access privileged device functionality

• Examples of permissions are:• internet• access fine location

• access network state

7

Permissions

• Specified by the application

• Allows the app to access privileged device functionality

• Examples of permissions are:• internet• access fine location• access network state

7

Application Advertising

App APK

Ad Library

SDK

8

Application Advertising

App APK

Ad Library

SDK

Ad Server

Ad Request

9

Application Advertising

App APK

Ad Library

SDK

Ad Server

Ad Request

Advertisement

10

Threat Model

InternetProfile Data

(Device ID, GPS,

phone type...)Device

Ad Provider

11

Threat Model - Unscrupulous Ad Provider

InternetProfile Data

(Device ID, GPS,

phone type...)Device

Ad Provider

12

Threat Model - Network Snooper

InternetProfile Data

(Device ID, GPS,

phone type...)

Ad Provider

Network Snooper

Device

13

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code• No same origin policy

2. Greater access to detailed user data• SMS, calendar, etc.

3. More persistent user identifiers• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

14

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code• No same origin policy

2. Greater access to detailed user data• SMS, calendar, etc.

3. More persistent user identifiers• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

14

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code• No same origin policy

2. Greater access to detailed user data• SMS, calendar, etc.

3. More persistent user identifiers• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

14

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code• No same origin policy

2. Greater access to detailed user data• SMS, calendar, etc.

3. More persistent user identifiers• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

14

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code

• No same origin policy

2. Greater access to detailed user data

• SMS, calendar, etc.

3. More persistent user identifiers

• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

15

Undocumented Permissions

Required

Optional

Ad Provider Documentation

* Stowaway

16

Undocumented Permissions

Required

Optional

Ad Provider Documentation

All Permissions

Ad Provider

SDK

Stowaway*

* A.P. Felt et al. Android Permissions Demystified. “CCS 2011”

17

Undocumented Permissions

Required

Optional

Ad Provider Documentation

All Permissions Undocumented

Ad Provider

SDK

Stowaway*

– =

* A.P. Felt et al. Android Permissions Demystified. “CCS 2011”

18

Undocumented Permissions

Ad Library (version) INTERNET

ACCESS

NET

STATE

READ

PHONE

STATE

ACCESS

LOCATIO

N

CAMERA

READ

CALENDAR

WRIT

ECALENDAR

READ

CONTACTS

WRIT

ECONTACTS

admob (4.3.1)

r r

inmobi (3.0.1)

r o o x x

millennialmedia (4.5.1)

r r r o

mobclix (3.2.0)

r o r x x x x x x

smaato (2.5.4)

r r r o

R = Required O = Optional X = Undocumented

19

Undocumented Permissions

Ad Library (version) INTERNET

ACCESS

NET

STATE

READ

PHONE

STATE

ACCESS

LOCATIO

N

CAMERA

READ

CALENDAR

WRIT

ECALENDAR

READ

CONTACTS

WRIT

ECONTACTS

admob (4.3.1) r rinmobi (3.0.1) r

o o x x

millennialmedia (4.5.1) r r r

o

mobclix (3.2.0) r

o

r

x x x x x x

smaato (2.5.4) r r r

o

R = Required

O = Optional X = Undocumented

19

Undocumented Permissions

Ad Library (version) INTERNET

ACCESS

NET

STATE

READ

PHONE

STATE

ACCESS

LOCATIO

N

CAMERA

READ

CALENDAR

WRIT

ECALENDAR

READ

CONTACTS

WRIT

ECONTACTS

admob (4.3.1) r rinmobi (3.0.1) r o o

x x

millennialmedia (4.5.1) r r r omobclix (3.2.0) r o r

x x x x x x

smaato (2.5.4) r r r o

R = Required O = Optional

X = Undocumented

19

Undocumented Permissions

Ad Library (version) INTERNET

ACCESS

NET

STATE

READ

PHONE

STATE

ACCESS

LOCATIO

N

CAMERA

READ

CALENDAR

WRIT

ECALENDAR

READ

CONTACTS

WRIT

ECONTACTS

admob (4.3.1) r rinmobi (3.0.1) r o o x x

millennialmedia (4.5.1) r r r omobclix (3.2.0) r o r x x x x x xsmaato (2.5.4) r r r o

R = Required O = Optional X = Undocumented

19

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code

• No same origin policy

2. Greater access to detailed user data

• SMS, calendar, etc.

3. More persistent user identifiers

• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

20

Private Data on the Network

Goal: Discover if private data is sent in ad requests

Method: Observed ad requests from each library in

• Android emulator

• Live traffic

21

Private Data on the Network

Goal: Discover if private data is sent in ad requests

Method: Observed ad requests from each library in

• Android emulator

• Live traffic

21

Private Data on the Network

Ad Library (version) AppPackageName

GPSCoordinates

ConnectionTyp

e

DeviceMake

andModel

WirelessCarrier

Age

Gen

der

Inco

meLevel

Keywords

admob (4.3.1)

a d d d d

inmobi (3.0.1)

a p p a d d d

millennialmedia (4.5.1)

d d d d

mobclix (3.2.0)

p d

smaato (2.5.4)

a p p p d d d d

A = Always automatically P = Automatically, with permissionsD = Developer chosen

22

Private Data on the Network

Ad Library (version) AppPackageName

GPSCoordinates

ConnectionTyp

e

DeviceMake

andModel

WirelessCarrier

Age

Gen

der

Inco

meLevel

Keywords

admob (4.3.1) a

d d d d

inmobi (3.0.1) a

p p

a

d d d

millennialmedia (4.5.1)

d d d d

mobclix (3.2.0)

p d

smaato (2.5.4) a

p p p d d d d

A = Always automatically

P = Automatically, with permissionsD = Developer chosen

22

Private Data on the Network

Ad Library (version) AppPackageName

GPSCoordinates

ConnectionTyp

e

DeviceMake

andModel

WirelessCarrier

Age

Gen

der

Inco

meLevel

Keywords

admob (4.3.1) a

d d d d

inmobi (3.0.1) a p p a

d d d

millennialmedia (4.5.1)

d d d d

mobclix (3.2.0) p

d

smaato (2.5.4) a p p p

d d d d

A = Always automatically P = Automatically, with permissions

D = Developer chosen

22

Private Data on the Network

Ad Library (version) AppPackageName

GPSCoordinates

ConnectionTyp

e

DeviceMake

andModel

WirelessCarrier

Age

Gen

der

Inco

meLevel

Keywords

admob (4.3.1) a d d d dinmobi (3.0.1) a p p a d d d

millennialmedia (4.5.1) d d d dmobclix (3.2.0) p dsmaato (2.5.4) a p p p d d d d

A = Always automatically P = Automatically, with permissionsD = Developer chosen

22

Unique Privacy Concerns in Android App Advertising

1. No privilege separation between app and ad code

• No same origin policy

2. Greater access to detailed user data

• SMS, calendar, etc.

3. More persistent user identifiers

• UDIDs – ANDROID ID, DEVICE ID (IMEI, MEID, ...)• More persistent than Web cookies and IP addresses

23

Tracking Users

Device

App 1

App 2

App 3

24

Tracking Users

SHA-1(UDID)

SHA-1(UDID) Ad Provider

Device

App 1

App 2SHA-1(UDID)App 3

Internet

25

Tracking Users

SHA-1(UDID)

SHA-1(UDID) Ad Provider

Device

App 1

App 2SHA-1(UDID)App 3

Internet

Network Snooper

26

Tracking Users

Device

App 3

App 1

App 2

27

Tracking Users

UDID

MD5(UDID) Ad Provider

2

Device

SHA-1(UDID)App 3

Internet

Ad Provider

1

Ad Provider

3

App 1

App 2

28

Tracking Users

UDID

MD5(UDID) Ad Provider

2

Device

SHA-1(UDID)App 3

Internet

Network Snooper

Ad Provider

1

Ad Provider

3

App 1

App 2

29

Tracking Users

Ad Library (version) DEVICEID

ANDROIDID

md5(ANDROIDID)

sha1(ANDROIDID)

admob (4.3.1) x

inmobi (3.0.1) x x

millenialmedia (4.5.1) x x x

mobclix (3.2.0) x x

smaato (2.5.1) x x

30

Hashing Device Identifiers

Prevent correlating ad requests across multiple ad providers:

hash(ad provider || UDID)

Prevent correlating ad requests across multiple applications:

hash(ad provider || package name || UDID)

31

Hashing Device Identifiers

Prevent correlating ad requests across multiple ad providers:

hash(ad provider || UDID)

Prevent correlating ad requests across multiple applications:

hash(ad provider || package name || UDID)

31

Hashing Device Identifiers

Prevent correlating ad requests across multiple ad providers:

hash(ad provider || UDID)

Prevent correlating ad requests across multiple applications:

hash(ad provider || package name || UDID)

31

Encrypting Ad Requests

Problem: SSL is expensive and allows for less concurrency on theserver

Desirable properties of advertising encryption:

• Low overhead - minimal session state

• Lightweight - preferrably symmetric key

32

Encrypting Ad Requests

Problem: SSL is expensive and allows for less concurrency on theserver

Desirable properties of advertising encryption:

• Low overhead - minimal session state

• Lightweight - preferrably symmetric key

32

Encrypting Ad Requests

Problem: SSL is expensive and allows for less concurrency on theserver

Desirable properties of advertising encryption:

• Low overhead - minimal session state

• Lightweight - preferrably symmetric key

32

Encrypting Ad Requests

Problem: SSL is expensive and allows for less concurrency on theserver

Desirable properties of advertising encryption:

• Low overhead - minimal session state

• Lightweight - preferrably symmetric key

32

Separating Ad and App Code

Splitting library and application code is not trivial in the Androidframework

Potential solutions:

• AdDroid – “Asia CCS 2012”

• AdSplit – “ArXiv preprint 2012”

33

Separating Ad and App Code

Splitting library and application code is not trivial in the Androidframework

Potential solutions:

• AdDroid – “Asia CCS 2012”

• AdSplit – “ArXiv preprint 2012”

33

Separating Ad and App Code

Splitting library and application code is not trivial in the Androidframework

Potential solutions:

• AdDroid – “Asia CCS 2012”

• AdSplit – “ArXiv preprint 2012”

33

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code

• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions

• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data

• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network

• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers

• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time

• Solution: Proper hashing, lightweight encryption

34

Conclusions

1. No privilege separation between app and ad code• Problem: Undocumented permissions• Solution: AdDroid, AdSplit

2. Greater access to detailed user data• Problem: Private user data on network• Solution: Lightweight encryption

3. More persistent user identifiers• Problem: Correlating user profile data over time• Solution: Proper hashing, lightweight encryption

34

Questions/Comments?

Presenter:

Ryan Stevensrcstevens@ucdavis.edu

35

top related