aurasium: practical policy enforcement for android applications by yaoqi usenix security symposium...

28
Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Upload: kamryn-gamlin

Post on 14-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium: Practical Policy Enforcement for Android Applications

By Yaoqi

USENIX Security Symposium 2012

Page 2: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Goal Address the multiple threats posed by

malicious applications on Android

Page 3: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Android Malicious Apps

Page 4: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Introduction to Android

Security FeaturesProcess IsolationLinux user/group permissionApp requests permission to OS functionalities

Most checked in remote end i.e. system services A few (Internet, Camera) checked in Kernel, as

special user group

Page 5: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Introduction to Android

Security Features

Application Code------------------------

ActivityService

Broadcast ReceiverContent Provider

Framework Code

Kernel Boundary

Process Boundarycom.android.demo. app

Binder (IPC)

Telephony MangerLocation MangerActivity ManagerPackage Manager

……

Framework Code

SocketCamera

System Services

Permission Check

Permission Check

Android Runtime (Dalvik VM)

Page 6: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Malicious Android Apps Abuse permissions Access and transmit private data Access to malicious remote servers Application-level privilege escalation Gain root privilege

Page 7: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Alternative Approaches App vetting: Google’s Bouncer

40% decrease in malware Ineffective once App installed on the device

AV products:ScanningHave no visibility into the runtime of an App

Fine grain permissions checkingRequire modifications to the OS

VirtualizationRequire modification to the OS

Page 8: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Related work Existing Work

TaintDroid (OSDI 10)CRePE (ISC 10)AppFence (CCS 11)Quire (USENIX Security 2011)SELinux on AndroidTaming Privilege-Escalation (NDSS 2012)

LimitationsModify OS – requires rooting and flashing

firmware.

Page 9: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Related Approaches

HardwareHardware

Linux kernelLinux kernel

Android MiddlewareAndroid Middleware

Quire SELinux

TainDroid

AppFence

CRePE

Information flowAccess controlCall chain IPC

Page 10: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Solution: Aurasium

HardwareHardware

Linux kernelLinux kernel

Android MiddlewareAndroid Middleware

X

Repackage Apps to intercept all Interactions with the OS

Information flowAccess controlCall chain IPCand many more!X

Page 11: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

Two Problems to Solve Introducing alien code to arbitrary application

packageReliably intercepting application interaction

with the OS

Page 12: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to add code to existing applicationsAndroid application building and packaging

process

Java Source Code

Application Resource

.class files Classes.dex

javac dx

Compiled Resources

AndroidManifest.xml

Application Package (.apk)

aapt

Other Files

Zip & Sign

Page 13: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to add code to existing applicationsapktool

Application Resources

.smali files

Classes.dex

Compiled Resources

Textual AndroidManifest.xml

Application Package

Insert Our Java Code

Other Files

Insert Metadata

Insert Our Native Library

apktoolSecuredApplication

apktool

Page 14: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to InterceptA closer look at app process

Application Code

Framework Code - Java

Kernel

Framework Code - Native (C++)

Java Native Interface

libdvm.so libandroid_runtime.so libbinder.so …….

libm.so libstdc++.solibc.so

Page 15: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to InterceptExample: Socket Connection

Application Code

Framework - Java

Framework - Native

Java Native Interface

Native Libraries

ApkMonitorActivity.onClick()

HttpURLConnectionImpl.makeConnection()HttpConnection.<init>()Socket.connect()PlainSocketImpl.connect()OSNetworkSystem.connect()

OSNetworkSystem_connect() @ libnativehelper.so

connect() @ libc.so

Page 16: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to Intercept Intercept at lowest boundary – libc.so

Application Code

Framework Code – Native (C++)

Framework Code - JavaJava Native Interface

libdvm.so libandroid_runtime.so libbinder.so …….

libm.so libstdc++.solibc.so

Monitoring Code

Detour

Page 17: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Internals

How to Intercept Key: Dynamically linked shared object file Essence: Redo dynamic linking with pointers to our

detour code.

somelib.so

libc.so

Monitoring Code

X

Page 18: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

What can you do with Aurasium? Total visibility into the interactions of an App

with the OS and other Apps Internet connections

connect()

IPC Binder communications ioctl()

File system manipulations write(), read()

Access to resources Ioctl(), read, write()

Linux system calls fork(), execvp()

Page 19: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Aurasium Overview

How to add code to existing applicationsapktool

Application Resources

.smali files

Classes.dex

Compiled Resources

Textual AndroidManifest.xml

Application Package

Insert Our Java Code

Other Files

Insert Metadata

Insert Our Native Library

apktoolSecuredApplication

apktool

Detour libc calls

Point to Detour Activity

GUI & Policy

Page 20: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Page 21: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Page 22: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Page 23: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Page 24: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Page 25: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Evaluation

Tested on Real-world Apps3491 apps from third-party application store.1260 malware corpus from Android Genome.Results

Repackaging: 3476/1258 succeed (99.6%/99.8%) Failure mode: apktool/baksmali assembly crashes

Device runs Nexus S under Monkey – UI Exerciser in SDK Intercept calls from all of 3189 runnable application.

Page 26: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Limitations

99.9% is not 100% Manual edit of Apps as a workaround Native code can potentially bypass

Aurasium Repackaging time: very slow Security policies defined by developers

Page 27: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

Conclusion

New approach to Android security/privacy Per-app basis, no need to root phone Tested against many real world apps Have certain limitations

Page 28: Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012

The End

Try it out at www.aurasium.com