security of mobile applications vitaly shmatikov cs 6431

29
Security of Mobile Applications Vitaly Shmatikov CS 6431

Upload: isabella-dickerson

Post on 21-Dec-2015

231 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Security of Mobile Applications Vitaly Shmatikov CS 6431

Security ofMobile Applications

Vitaly Shmatikov

CS 6431

Page 2: Security of Mobile Applications Vitaly Shmatikov CS 6431

Structure of Android Applications

This is a very brief and incomplete summary• See Enck et al. “Understanding Android Security”

Applications include multiple components• Activities: user interface• Services: background processing• Content providers: data storage• Broadcast receivers for messages from other apps

Intent: primary messaging mechanism for interaction between components

slide 2

Page 3: Security of Mobile Applications Vitaly Shmatikov CS 6431

Explicit Intents

slide 3

YelpMapApp

Name: MapActivity

To: MapActivity

Only the specified destination receives this message

Page 4: Security of Mobile Applications Vitaly Shmatikov CS 6431

Implicit Intents

slide 4

Yelp

MapApp

Handles Action: VIEW

Implicit IntentAction: VIEW

BrowserApp

Handles Action: VIEW

Page 5: Security of Mobile Applications Vitaly Shmatikov CS 6431

Android Security Model

Based on permission labels assigned to applications and components

Every app runs as a separate user• Underlying Unix OS provides system-level

isolation

Reference monitor in Android middleware mediates inter-component communication slide 5

Access permitted if labels assigned to the invoked component are in the collection of invoking component

Page 6: Security of Mobile Applications Vitaly Shmatikov CS 6431

Mandatory Access Control

Permission labels are set (via manifest) when app is installed and cannot be changed

Permission labels only restrict access to components, they do not control information flow – means what?

Apps may contain “private” components that should never be accessed by another app (example?)

If a public component doesn’t have explicit permissions listed, it can be accessed by any app

slide 6

Page 7: Security of Mobile Applications Vitaly Shmatikov CS 6431

System API Access

System functionality (eg, camera, networking) is accessed via Android API, not system components

App must declare the corresponding permission label in its manifest + user must approve at the time of app installation

Signature permissions are used to restrict access only to certain developers• Ex: Only Google apps can directly use telephony

API

slide 7

Page 8: Security of Mobile Applications Vitaly Shmatikov CS 6431

Refinements

Permission labels on broadcast intents• Prevents unauthorized apps from receiving

these intents – why is this important?

Pending intents• Instead of directly performing an action via

intent, create an object that can be passed to another app, thus enabling it to execute the action

• Invocation involves RPC to the original app• Introduces delegation into Android’s MAC system

slide 8

Page 9: Security of Mobile Applications Vitaly Shmatikov CS 6431

Unique Action Strings

slide 9

Common developer pattern

ShowtimeSearch

Results UI

IMDb App Handles Actions:

willUpdateShowtimes,showtimesNoLocationError

Implicit IntentAction: willUpdateShowtimes

Page 10: Security of Mobile Applications Vitaly Shmatikov CS 6431

Eavesdropping

slide 10

[Felt et al. “Analyzing Inter-Application Communication in Android”. Mobisys 2011]

ShowtimeSearch

Malicious Receiver

IMDb App Handles Action:

willUpdateShowtimes,showtimesNoLocationError

Implicit IntentAction: willUpdateShowtimes

Eavesdropping App

Page 11: Security of Mobile Applications Vitaly Shmatikov CS 6431

Intent Spoofing

slide 11

[Felt et al.]

Malicious Componen

t

Results UI

IMDb AppHandles Action:

willUpdateShowtimes,showtimesNoLocationError

Action: showtimesNoLocationError

Malicious Injection App

Also man-in-the-middle

Page 12: Security of Mobile Applications Vitaly Shmatikov CS 6431

System Broadcast

slide 12

[Felt et al.]

Component App 1

Handles Action: BootCompleted

Component App 2

Handles Action: BootCompleted

Component App 3

SystemNotifier

Action:BootCompleted

Event notificationsbroadcast by the system(can’t be spoofed)

Broadcast receivers make components publicly accessible

Page 13: Security of Mobile Applications Vitaly Shmatikov CS 6431

Exploiting Broadcast Receivers

slide 13

[Felt et al.]

Handles Action: BootCompleted

MaliciousComponen

t

Malicious App

Component

App 1

To: App1.Component

Page 14: Security of Mobile Applications Vitaly Shmatikov CS 6431

Real World Example: ICE

slide 14

[Felt et al.]

Allows doctors access to medical information on phonesContains a component that listens for the BootCompleted system broadcast

On receipt of this intent, exits the app and locks the screen

Page 15: Security of Mobile Applications Vitaly Shmatikov CS 6431

Permissions: Not Just Android

slide 15

All mobile OSes, HTML5 apps, browser extensions…

Page 16: Security of Mobile Applications Vitaly Shmatikov CS 6431

Permission Re-Delegation

An application with a permission performs a privileged task on behalf of an application without permission

slide 16

[Felt et al. “Permission Re-Delegation: Attacks and Defenses”. USENIX Security 2011]

API

MalwareSettings

app

TurnOnWifi()

Permission System

turnOnWifi()

API

Permission System

Public service for receiving UI messages

pressButton(0)

MalwareSettings

app

turnOnWifi()

User pressed button

Page 17: Security of Mobile Applications Vitaly Shmatikov CS 6431

Examples of Re-Delegation

Permission re-delegation is an example of a “confused deputy” problem

The “deputy” app may accidentally expose privileged functionality…

… or intentionally expose it, but the attacker invokes it in a surprising context• Example: broadcast receivers in Android

… or intentionally expose it and attempt to reduce the invoker’s authority, but do it incorrectly• Remember postMessage origin checks? slide 17

[Felt et al.]

Page 18: Security of Mobile Applications Vitaly Shmatikov CS 6431

Mobile Apps in Web Languages

slide 18

Page 19: Security of Mobile Applications Vitaly Shmatikov CS 6431

Hybrid App Development

slide 19

Page 20: Security of Mobile Applications Vitaly Shmatikov CS 6431

WebView

Embedded browser in smartphone appsBasic same origin policy inside the browser

+ holes in the browser sandbox allowing Web code to invoke native functionality• Camera, contacts, file system, etc.

Multiple “bridges” between Web and local code• JavaScript interfaces to local objects• Interception of browser events (eg, special

URLs)• Other custom and ad-hoc schemes

slide 20

[Luo et al. “Attacks on WebView in the Android System”. ACSAC 2011]

Page 21: Security of Mobile Applications Vitaly Shmatikov CS 6431

Invoking Java from JavaScript

slide 21

[Luo et al.]

Page 22: Security of Mobile Applications Vitaly Shmatikov CS 6431

Invoking JavaScript from Java

slide 22

[Luo et al.]

Page 23: Security of Mobile Applications Vitaly Shmatikov CS 6431

The Hybrid Security Model

slide 23

Page 24: Security of Mobile Applications Vitaly Shmatikov CS 6431

Attacks from Malicious App

slide 24

[Luo et al.]

JavaScript injectionEvent sniffing and hijacking

Page 25: Security of Mobile Applications Vitaly Shmatikov CS 6431

Attack from Malicious Web Content

slide 25

[Luo et al.]

Page 26: Security of Mobile Applications Vitaly Shmatikov CS 6431

Frame Confusion

slide 26

[Luo et al.]

What is the origin of this JavaScript object?

Page 27: Security of Mobile Applications Vitaly Shmatikov CS 6431

AndroidJava code

It Gets Worse

slide 27

[Luo et al.]

Java Reflection API…accessible from Web side

Page 28: Security of Mobile Applications Vitaly Shmatikov CS 6431

Showing this content is Ok, only native access should be blocked

Simple Fixes Don’t Work

Most hybrid frameworks don’t even attempt to verify whether access request comes from an authorized Web origin

PhoneGap attempts to filter based on developer-provided whitelist

• Mediation either incomplete (does not catch iframe loads) or too strict (prohibits even loading of content from other origins, breaks look-and-feel)

• Incorrect origin checks– Broken regexes bite again – anchoring bugs, etc. slide 28

[Georgiev et al. “Breaking and Fixing Origin-Based Access Control in Hybrid Web/Mobile Application Frameworks”. NDSS 2014]

Page 29: Security of Mobile Applications Vitaly Shmatikov CS 6431

State of the Union

Convergence of Web and mobile programmingComplex, poorly understood software stacks

with badly fitting security policiesNew classes of vulnerabilities

• Worst case: Web advertiser gets to inject arbitrary code into mobile apps running on your phone!%#$!

Evolving defenses• Our capability-based NoFrak defense is being

integrated into PhoneGap, but that’s just the first step…

slide 29