A programming model and framework for comprehensive dynamic analysis on Android

The multi-process architecture of Android applications combined with the lack of suitable APIs make dynamic program analysis (DPA) on Android challenging and unduly difficult. Existing analysis tools and frameworks are tailored mainly to the needs of security-related analyses and are not flexible enough to support the development of generic DPA tools. In this paper we present a framework that, besides providing the fundamental support for the development of DPA tools for Android, enables development of cross-platform analyses that can be applied to applications targeting the Android and Java platforms. The framework provides a convenient high-level programming model, flexible instrumentation support, and strong isolation of the base program from the analysis. To boost developer productivity, the framework retains Java as the main development language, while seamless integration with the platform overcomes the recurring obstacles hindering development of DPA tools for Android. We evaluate the framework on two diverse case studies, demonstrating key concepts, the flexibility of the framework, and analysis portability.

[1]  Ahmad-Reza Sadeghi,et al.  Towards Taming Privilege-Escalation Attacks on Android , 2012, NDSS.

[2]  Wenliang Du,et al.  On the effectiveness of API-level access control using bytecode rewriting in Android , 2013, ASIA CCS '13.

[3]  Seungyeop Han,et al.  These aren't the droids you're looking for: retrofitting android to protect data from imperious applications , 2011, CCS '11.

[4]  Jacques Klein,et al.  Improving Privacy on Android Smartphones Through In-Vivo Bytecode Instrumentation , 2012, ArXiv.

[5]  Shashi Shekhar,et al.  QUIRE: Lightweight Provenance for Smart Phone Operating Systems , 2011, USENIX Security Symposium.

[6]  Heng Yin,et al.  DroidScope: Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis , 2012, USENIX Security Symposium.

[7]  Luo Xu Min,et al.  Runtime-Based Behavior Dynamic Analysis System for Android Malware Detection , 2013 .

[8]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[9]  Walter Binder,et al.  DiSL: a domain-specific language for bytecode instrumentation , 2012, AOSD.

[10]  Jacques Klein,et al.  Effective Inter-Component Communication Mapping in Android: An Essential Step Towards Holistic Security Analysis , 2013, USENIX Security Symposium.

[11]  Hao Chen,et al.  I-ARM-Droid : A Rewriting Framework for In-App Reference Monitors for Android Applications , 2012 .

[12]  Steve Hanna,et al.  Android permissions demystified , 2011, CCS '11.

[13]  Soo-Mook Moon,et al.  Evaluation of Android Dalvik virtual machine , 2012, JTRES '12.

[14]  Somesh Jha,et al.  Retargeting Android applications to Java bytecode , 2012, SIGSOFT FSE.

[15]  Walter Binder,et al.  ShadowVM: robust and comprehensive dynamic program analysis for the java platform , 2014 .

[16]  Petr Tuma,et al.  Enabling Modularity and Re-use in Dynamic Program Analysis Tools for the Java Virtual Machine , 2013, ECOOP.

[17]  Walter Binder,et al.  Polymorphic bytecode instrumentation , 2011, AOSD '11.

[18]  Walter Binder,et al.  The JVM is not observable enough (and what to do about it) , 2012, VMIL '12.

[19]  Ahmad-Reza Sadeghi,et al.  Practical and lightweight domain isolation on Android , 2011, SPSM '11.

[20]  Ondrej Lhoták,et al.  The Soot framework for Java program analysis: a retrospective , 2011 .

[21]  Jacques Klein,et al.  Dexpler: converting Android Dalvik bytecode to Jimple for static analysis with Soot , 2012, SOAP '12.

[22]  Jacques Klein,et al.  Effective inter-component communication mapping in Android with Epicc: an essential step towards holistic security analysis , 2013 .

[23]  Samuel Z. Guyer,et al.  Elephant tracks: portable production of complete and precise gc traces , 2013, ISMM '13.

[24]  Jacques Klein,et al.  FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps , 2014, PLDI.

[25]  Byung-Gon Chun,et al.  TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones , 2010, OSDI.

[26]  Eric Bodden,et al.  Instrumenting Android and Java Applications as Easy as abc , 2013, RV.