Authors: William Enck & Patrick McDaniel In collaboration with: Duke University and Intel Labs Presentation: Ed Novak 1.

Slides:



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

Introduction.  Professor  Adam Porter 
2014 Network and Distributed System Security Symposium AppSealer: Automatic Generation of Vulnerability-Specific Patches for Preventing Component Hijecking.
Android architecture overview
Mobile Security: Android Amir Houmansadr CS660: Advanced Information Assurance Spring 2015 Content may be borrowed from other resources. See the last slide.
William Enck, Peter Gilbert, Byung-Gon Chun, Landon P
Policy Weaving for Mobile Devices Drew Davidson. Smartphone security is critical – 1200 to 1400 US Army troops to be equipped with Android smartphones.
1 William Enck, Damien Octeau, Patrick McDaniel, Swarat Chaudhuri System and Internet Infrastructure Security Laboratory Department of Computer Science.
Mobile Application Development
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
DYNAMIC DATA TAINTING AND ANALYSIS. Roadmap  Background  TaintDroid  JavaScript  Conclusion.
William Enck, Machigar Ongtang, and Patrick McDaniel.
Android Middleware Bo Pang
Presentation By Deepak Katta
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
Android Introduction Platform Overview.
CS102 Introduction to Computer Programming
A METHODOLOGY FOR EMPIRICAL ANALYSIS OF PERMISSION-BASED SECURITY MODELS AND ITS APPLICATION TO ANDROID.
Lei Wu, Michael Grace, Yajin Zhou, Chiachih Wu, Xuxian Jiang Department of Computer Science North Carolina State University CCS 2013.
Introduction to Android Swapnil Pathak Advanced Malware Analysis Training Series.
TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones Presented By: Steven Zittrower William Enck ( Penn St) (Duke)
TAINTDROID: AN INFORMATION- FLOW TRACKING SYSTEM FOR REAL-TIME PRIVACY MONITORING ON SMARTPHONES Presented by: Mohsin Junaid Date: April-17, 2013.
D2Taint: Differentiated and Dynamic Information Flow Tracking on Smartphones for Numerous Data Sources Boxuan Gu, Xinfeng Li, Gang Li, Adam C. Champion,
Authors: William Enck The Pennsylvania State University Peter Gilbert Duke University Byung-Gon Chun Intel Labs Landon P. Cox Duke University Jaeyeon Jung.
© Keren Kalif Intro to Android Development Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation.
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.
A Presentation Of TaintDroid & Related Topics
University of Central Florida TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones Written by Enck, Gilbert,
Roopa.T PESIT, Bangalore. Source and Credits Dalvik VM, Dan Bornstein Google IO 2008 The Dalvik virtual machine Architecture by David Ehringer.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
AppShield: A Virtual File System in Enterprise Mobility Management Zhengyang Qu 1 Northwestern University, IL, US,
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
A S TUDY OF A NDROID A PPLICATION S ECURITY William Enck, Damien Octeau, Patrick McDaniel, Swarat Chaudhuri System and Internet Infrastructure Security.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Information flow Landon Cox April 1, Information flow Crucial goal of secure system –Prevent inappropriate information flows –Can model “appropriateness”
Analyzing Input Validation vulnerabilities in Android System Services NAMJUN PARK (NPAR350)
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
CopperDroid Logan Horton. Android - Background Android is complicated to analyse due to having 2 places to check for code execution Normally, code is.
INFORMATION-FLOW ANALYSIS OF ANDROID APPLICATIONS IN DROIDSAFE JARED YOUNG.
ANDROID ACCESS CONTROL Presented by: Justin Williams Masters of Computer Science Candidate.
Presented by: Saurabh Kumar Sinha (MRT07UGBIT 186) IT VII Semester, Shobhit University Meerut.
Android Mobile Application Development
Multi-level information - flow tracking system for Android Runtime
Android Application -Architecture.
More Security and Programming Language Work on SmartPhones
Free for All! Assessing User Data Exposure to Advertising Libraries on Android Campbell Foskin.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Security and Programming Language Work on SmartPhones
Visit for more Learning Resources
Dynamic information-flow tracking
Android System Security
CASE STUDY 1: Linux and Android
TaintART: A Practical Multi-level Information-Flow Tracking System for Android RunTime Sadiq Basha.
CMPE419 Mobile Application Development
Mobile Handset Virtual Machine
Realizing Concurrency using Posix Threads (pthreads)
Realizing Concurrency using the thread model
Application Development A Tutorial Driven Course
Realizing Concurrency using Posix Threads (pthreads)
Realizing Concurrency using the thread model
Introduction to Data Structure
Android Introduction Platform Mihail L. Sichitiu.
Realizing Concurrency using Posix Threads (pthreads)
Android Platform, Android App Basic Components
Mobile Programming Dr. Mohsin Ali Memon.
CMPE419 Mobile Application Development
Presentation transcript:

Authors: William Enck & Patrick McDaniel In collaboration with: Duke University and Intel Labs Presentation: Ed Novak 1

 Introduction  Authors’ Approach and Android Background  TaintDroid Details Taint propagation Sources and Sinks (hooks)  Application Case Study  Evaluation  Discussion / Related Work 2

 Smartphone applications are widely used  Smartphone applications rely on personal data GPS, Accelerometer, Camera, Microphone, Unique IDs  Developers often send user data out  State of the art permission systems do not protect data Permissions requested, but unnecessary Permissions are vague Permissions abused (developers and users) Controls access but not disclosure 3

 Extend Android to track sensitive data in source code  Label (taint) sensitive data (sources) Sensor data Contact list SMS messages  Propagate labels through source code IPC, Native Code, Java byte code (dalvik machine code), files  Identify / Disallow tainted data leaving phone Network interfaces = sinks 4

 Overhead must be minimal Smartphones are resource constrained  Taint tracking must be robust Applications given a lot of access Applications can share info Implicit flows  Static java code analysis is impossible (closed source) 5

After initial marking is finished 6

 Android : C/C++ & Java Taintdroid code is in Android system  Android Apps: Java that runs on the Dalvik VM Taintdroid monitors (during runtime) DEX bytecode / machinecode  Binder IPC (interprocess comm.)  Files (with shared permissions)  Native Code 7

 Method invocations are added to the stack  Method arguments and variables are assigned to registers and placed in stack  The registers only contain primitives and references to objects 8 Arr[1] Arr[0] v1 O[OxFF] arg1 v1 arg2

9

 Interleaved Method Local Variables Method Arguments Class Static Fields Class Instance Fields  One Tag Arrays Strings  Efficiency of locality  Array Tradeoff 10 Arr[1] Arr[0] v1 O[OxFF] arg1 v1 arg2 Arr[1] v1 O[OxFF] arg1 v1 Arg1 taint W/Out TaintDroid V1 taint Arr[0] W/TaintDroid V1 taint Arr Taint O taint

 Variable Level Tracking  Working with DEX (machine / byte code)  Modify DEX interpreter Part of Android Maintain tag state Alter taint tag state based on machine operations Int a = locationAPI.getCoor.getX(); Int b = a; Int c = b + 16; 11

12 Move-op is basic assignment, if B is tainted -> A is tainted Exceptions and returns can be tainted (native methods) C is a byte-code constant Static analysis array static instance return const excep

 Native Code is unmonitored Internal VM Methods  Small Number (185 total) (5 needed taint patching)  Manual taint mapping between input and return val External (JNI) methods  2844 JNI methods in Android  Conservatively taint (return taint = U(arg taints))  This does not cover JNI object state modification 13

 Apps can send messages (Intents) Intents contain payloads U(taint of payloads)  Apps can read/write files Tags are written to extended attributes on write Tags are propagated on read Why not just alter extended attributes?  False positives 14

 Low-Bandwidth Sensors Location, accelerometer Accessed frequently by many different apps Sensor Manager is modified  High-Bandwidth Sensors Microphone, camera Accessed infrequently, usually by 1 app (at a time) Shared via files or buffers  Information Databases SMS messages, contacts Stored in files, managed by a DB Taint all these files 15  Device ID’s  Sim Card, Phone ID  Personally identifiable = sensitive  All accessed through API’s  Network  Taint sink  Modified the Java socket API (which is required for network access)

 Use TaintDroid on 30 popular apps  Apps that access sensitive info and Internet These are taken from a measurement paper 16

17 Phone Information : 21 / 30 apps request the perm. 2 send that info out Phone #, IMSI 15-digit (user on network), ICC-ID (sim card), Device ID : IMEI 9/30 get the IMEI, 7 send this info out (without warning) Location Data : 15 / 30 apps send location data to advertisers

 Overhead independent of number of tainted items, every variable has taint tag  1) Applications are waiting  2) Heavyweight operations are native  5 Macro Benchmarks (each run 50 times) 1. App Load Time63ms vs Create Address Book Entry348ms vs Read Address Book Entry101ms vs Phone Call96ms vs Take Picture1718ms

19

20 Wrote a service and client (service exposes setAccount, getAccount) Have client call service’s methods (IPC) 10,000 x’s Time : How long it took to complete 10,000 calls of both methods Memory : How large all of the messages were combined

 Approach Limitations Implicit flows are completely vulnerable  Implementation Limitations “direct” versions of some calls  Taint Source Limitations The IMSI string is actually a combination IMSI parts are used by Android -> taint explosion 21

 Prevent Access to Sensitive Data Kirin, Saint, Security-by-Contract 2 Projects that provide visual clues to users  Process Level Tainting Asbestos, HiStar, Flume, DEFCon, PRECIP,  Tools that find leaks Privacy Oracle, TightLip  Language Based Flow Security Jif, Slam, Laminar  Dynamic Taint Analysis 22

 Smartphones -> Ubiquitous  Smartphones contain sensitive information which is accessible by apps  The current systems are not clear on how sensitive information is used / spread  TaintDroid tracks tainted (sensitive) data during runtime through 4 levels of propagation Message, Variable, Method, Storage  TaintDroid has already been used to find applications misusing sensitive information  TaintDroid has minimal overhead 23

 Google can just inspect application source code and behavior upon submit 24