Aurasium: Practical Policy Enforcement for Android Applications

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Dynamic Analysis of Windows Phone 7 apps Behrang Fouladi, SensePost.
Syracuse University, New York, USA
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Presented By Abhishek Singh Computer Science Department Kent state University WILLIAM ENCK, MACHIGAR ONGTANG, AND PATRICK MCDANIEL.
Android architecture overview
Aurasium: Practical Policy Enforcement for Android Applications By Yaoqi USENIX Security Symposium 2012.
Policy Weaving for Mobile Devices Drew Davidson. Smartphone security is critical – 1200 to 1400 US Army troops to be equipped with Android smartphones.
Implementation of an Android Phone Based Video Streamer 2010 IEEE/ACM International Conference on Green Computing and Communications 2010 IEEE/ACM International.
Aurasium: Practical Policy Enforcement for Android Applications R. Xu, H. Saidi and R. Anderson Presented By: Rajat Khandelwal – 2009CS10209 Parikshit.
Aurasium: Practical Policy Enforcement for Android Applications R. Xu, H. Saidi and R. Anderson.
Mobile Application Development
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
WebQuilt and Mobile Devices: A Web Usability Testing and Analysis Tool for the Mobile Internet Tara Matthews Seattle University April 5, 2001 Faculty Mentor:
Android Security Enforcement and Refinement. Android Applications --- Example Example of location-sensitive social networking application for mobile phones.
Case study 2 Android – Mobile OS.
CS 153 Design of Operating Systems Spring 2015 Lecture 24: Android OS.
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
Android Introduction Platform Overview.
A METHODOLOGY FOR EMPIRICAL ANALYSIS OF PERMISSION-BASED SECURITY MODELS AND ITS APPLICATION TO ANDROID.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Introduction to Android Swapnil Pathak Advanced Malware Analysis Training Series.
Detecting and Preventing Privilege- Escalation on Android Jiaojiao Fu 1.
Authors: William Enck The Pennsylvania State University Peter Gilbert Duke University Byung-Gon Chun Intel Labs Landon P. Cox Duke University Jaeyeon Jung.
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
Presented by: Kushal Mehta University of Central Florida Michael Spreitzenbarth, Felix Freiling Friedrich-Alexander- University Erlangen, Germany michael.spreitzenbart,
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
APKInspector -Static Analysis of Android Applications Student: Yuan Tian Mentor: Cong Zheng Backup Mentor: Anthony Kara Jianwei 08/22/2012.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Monitoring Malware at Runtime. From Last Lecture Malware authors use advanced coding for avoiding detection AnserverBot is a very sophisticate piece of.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Virtual Machine Security Systems Presented by Long Song 08/01/2013 Xin Zhao, Kevin Borders, Atul Prakash.
University of Central Florida TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones Written by Enck, Gilbert,
AppShield: A Virtual File System in Enterprise Mobility Management Zhengyang Qu 1 Northwestern University, IL, US,
Android Security Auditing Slides and projects at samsclass.info.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
Android Security Extensions. Android Security Model Main objective is simplicity Users should not be bothered Does the user care? Most do not care…until.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
Wireless and Mobile Security
Dilip Dwarakanath.  The topic I’m about to present was taken from a paper titled “Apple iOS 4 Security Evaluation” written by Dino A Dai Zovi.  Dino.
Dynamic Vetting Android Applications for Privilege-escalation Risks Jiaojiao Fu 1.
VMM Based Rootkit Detection on Android
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
By: Collin Molnar. Overview  Intro to Android  Security basics  Android architecture  Application isolation  Application permissions  Physical access.
DeepDroid Dynamically Enforcing Enterprise Policy Manwoong (Andy) Choi
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
COMPSCI 702 DeepDroid Dynamically Enforcing Enterprise Policy on Android Devices Presenter: Jie Yuan (Jeff)
ANDROID ACCESS CONTROL Presented by: Justin Williams Masters of Computer Science Candidate.
Module 51 (Mobile Device Fundamentals - Android)
Android Mobile Application Development
Containers as a Service with Docker to Extend an Open Platform
Android Development.
Understanding Android Security
Boxify: Full-fledged App Sandboxing for Stock Android
Android System Security
Android Runtime – Dalvik VM
Chapter 2: Operating-System Structures
TaintART: A Practical Multi-level Information-Flow Tracking System for Android RunTime Sadiq Basha.
CMPE419 Mobile Application Development
Mobile Pen Testing w/ drozer
Suwen Zhu, Long Lu, Kapil Singh
Application Framework
Understanding Android Security
Android Platform, Android App Basic Components
Presentation transcript:

Aurasium: Practical Policy Enforcement for Android Applications Rubin Xu University of Cambridge Hassen Saidi SRI International Ross Anderson University of Cambridge USENIX Security Symposium 2012

Goal Address the multiple threats posed by malicious applications on Android

Android Malicious Apps

Introduction to Android Security Features Process Isolation Linux user/group permission App 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

Introduction to Android Security Features com.android.demo. app Process Boundary System Services Framework Code Application Code ------------------------ Activity Service Broadcast Receiver Content Provider Framework Code Telephony Manger Location Manger Activity Manager Package Manager …… Android Runtime (Dalvik VM) Permission Check Kernel Boundary Permission Check Socket Camera Binder (IPC)

Malicious Android Apps Abuse permissions: Permissions are granted for as long as an App is installed on a device No restrictions on how often resources and data are accessed Access and transmit private data Access to malicious remote servers application-level privilege escalation Confused deputy attacks Gain root privilege

Alternative Approaches App vetting: Google’s Bouncer 40% decrease in malware Ineffective once App installed on the device AV products: Scanning Have no visibility into the runtime of an App Fine grain permissions checking Require modifications to the OS Virtualization Require modification to the OS

Related work Existing Work Limitations TaintDroid (OSDI 10) CRePE (ISC 10) AppFence (CCS 11) Quire (USENIX Security 2011) SELinux on Android Taming Privilege-Escalation (NDSS 2012) Limitations Modify OS – requires rooting and flashing firmware.

Related Approaches Android Middleware Linux kernel Hardware Quire Information flow Access control Call chain IPC Android Middleware Quire SELinux TainDroid AppFence CRePE Linux kernel Hardware

X X Solution: Aurasium Android Middleware Linux kernel Hardware Repackage Apps to intercept all Interactions with the OS Information flow Access control Call chain IPC and many more! X Android Middleware X Linux kernel Hardware

Aurasium Internals Two Problems to Solve Introducing alien code to arbitrary application package Reliably intercepting application interaction with the OS

Aurasium Internals How to add code to existing applications Android application building and packaging process javac Java Source Code .class files dx Classes.dex Application Resource Zip & Sign Compiled Resources Application Package (.apk) aapt AndroidManifest.xml Other Files

Insert Our Native Library Aurasium Internals How to add code to existing applications apktool .smali files Insert Our Java Code apktool Classes.dex Textual AndroidManifest.xml Insert Metadata Application Package Compiled Resources Secured Application apktool Application Resources Other Files Insert Our Native Library

Enforcing Security & Privacy Policy Aurasium way Per-application basis No need to root phone and flash firmware Almost non-bypassable com.android.demo.SecuredApp Framework Code Application Code ------------------------ Activity Service Broadcast Receiver Content Provider Aurasium Kernel

Framework Code - Native (C++) Aurasium Internals How to Intercept A closer look at app process Application Code Framework Code - Java Java Native Interface Framework Code - Native (C++) libdvm.so libandroid_runtime.so libbinder.so ……. libc.so libm.so libstdc++.so Kernel

Aurasium Internals How to Intercept Example: Socket Connection Application Code ApkMonitorActivity.onClick() HttpURLConnectionImpl.makeConnection() HttpConnection.<init>() Socket.connect() PlainSocketImpl.connect() OSNetworkSystem.connect() OSNetworkSystem_connect() @ libnativehelper.so connect() @ libc.so Framework - Java Java Native Interface Framework - Native Native Libraries

Aurasium Internals How to Intercept Example: Send SMS Framework - Java Application Code ApkMonitorActivity.onClick() SmsManager.sendTextMessage() Isms$Stub$Proxy.sendText() BinderProxy.transact() transact() @ libbinder.so ioctl() @ libc.so Framework - Java Java Native Interface Framework - Native Native Libraries

Framework Code – Native (C++) Aurasium Internals How to Intercept Intercept at lowest boundary – libc.so Application Code Framework Code - Java Java Native Interface Framework Code – Native (C++) libdvm.so libandroid_runtime.so libbinder.so ……. Detour Monitoring Code libc.so libm.so libstdc++.so

Aurasium Internals How to Intercept Look closer at library calls - dynamic linking libbinder.so libc.so Control flow transfer Indirect memory reference

Aurasium Internals X How to Intercept Key: Dynamically linked shared object file Essence: Redo dynamic linking with pointers to our detour code. Monitoring Code somelib.so libc.so X

Aurasium Internals How to Intercept Implemented in native code Almost non-bypassable Java code cannot modify arbitrary memory Java code cannot issue syscall directly Attempts to load native code is monitored dlopen()

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()

Aurasium Internals How to add code to existing applications Inevitably destroy original signature In Android, signature = authorship Individual app not a problem

Insert Our Native Library Aurasium Internals How to add code to existing applications apktool GUI & Policy .smali files Insert Our Java Code apktool Classes.dex Point to Detour Activity Textual AndroidManifest.xml Insert Metadata Application Package Compiled Resources Secured Application apktool Application Resources Other Files Insert Our Native Library Detour libc calls

Evaluation

Evaluation

Evaluation

Evaluation

Evaluation

Evaluation Tested on Real-world Apps 3491 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.

Limitations 99.9% is not 100% Rely on robustness of apktool Manual edit of Apps as a workaround Native code can potentially bypass Aurasium: Already seen examples of native code in the wild that is capable of doing so Some mitigation techniques exist

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

The End Try it out at www.aurasium.com