The Transitivity of Trust Problem in the Interaction of Android Applications

Mobile phones have developed into complex platforms with large numbers of installed applications and a wide range of sensitive data. Application security policies limit the permissions of each installed application. As applications may interact, restricting single applications may create a false sense of security for the end users while data may still leave the mobile phone through other applications. Instead, the information flow needs to be policed for the composite system of applications in a transparent and usable manner. In this paper, we propose to employ static analysis based on the software architecture and focused data flow analysis to scalably detect information flows between components. Specifically, we aim to reveal transitivity of trust problems in multi-component mobile platforms. We demonstrate the feasibility of our approach with Android applications, although the generalization of the analysis to similar composition-based architectures, such as Service-oriented Architecture, can also be explored in the future.

[1]  Andrew C. Myers,et al.  Language-based information-flow security , 2003, IEEE J. Sel. Areas Commun..

[2]  Xinwen Zhang,et al.  Apex: extending Android permission model and enforcement with user-defined runtime constraints , 2010, ASIACCS '10.

[3]  Jacob West,et al.  Secure Programming with Static Analysis , 2007 .

[4]  Alan H. Karp,et al.  Solving the Transitive Access Problem for the Services Oriented Architecture , 2010, 2010 International Conference on Availability, Reliability and Security.

[5]  Benjamin Livshits,et al.  Vulnerabilities in Java Applications with Static Analysis , 2005 .

[6]  Gary McGraw,et al.  Software Security: Building Security In , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[7]  Rainer Koschke,et al.  Analyzing xfig using the Bauhaus tool , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[8]  Erhard Plödereder,et al.  Bauhaus - A Tool Suite for Program Analysis and Reverse Engineering , 2006, Ada-Europe.

[9]  Ross J. Anderson Security engineering - a guide to building dependable distributed systems (2. ed.) , 2001 .

[10]  Patrick D. McDaniel,et al.  Understanding Android Security , 2009, IEEE Security & Privacy Magazine.

[11]  Brian Chess,et al.  Improving computer security using extended static checking , 2002, Proceedings 2002 IEEE Symposium on Security and Privacy.

[12]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[13]  Ondrej Lhoták,et al.  Scaling Java Points-to Analysis Using SPARK , 2003, CC.

[14]  Karsten Sohr,et al.  Idea: Towards Architecture-Centric Security Analysis of Software , 2010, ESSoS.

[15]  Frank Piessens,et al.  A taxonomy of causes of software vulnerabilities in Internet software , 2002 .

[16]  Andrew C. Myers,et al.  Jif: java information flow , 1999 .

[17]  Yuval Elovici,et al.  Google Android: A Comprehensive Security Assessment , 2010, IEEE Security & Privacy.

[18]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[19]  Michael Franz,et al.  Fine-Grained Information Flow Analysis and Enforcement in a Java Virtual Machine , 2007, Twenty-Third Annual Computer Security Applications Conference (ACSAC 2007).

[20]  Yuval Elovici,et al.  Securing Android-Powered Mobile Devices Using SELinux , 2010, IEEE Security & Privacy.

[21]  Gary McGraw,et al.  Securing Java: getting down to business with mobile code , 1999 .

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

[23]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[24]  Christian Hammer Experiences with PDG-Based IFC , 2010, ESSoS.

[25]  Li Yong-quan Android Activity Lifecycle , 2013 .

[26]  Laurie J. Hendren,et al.  Towards Dynamic Interprocedural Analysis in JVMs , 2004, Virtual Machine Research and Technology Symposium.

[27]  Patrick D. McDaniel,et al.  Semantically rich application-centric security in Android , 2012 .

[28]  William Enck,et al.  Mitigating Android Software Misuse Before It Happens , 2008 .

[29]  Avik Chaudhuri,et al.  Language-based security on Android , 2009, PLAS '09.

[30]  Laurie Hendren,et al.  Soot: a Java bytecode optimization framework , 2010, CASCON.

[31]  Andrew C. Myers,et al.  JFlow: practical mostly-static information flow control , 1999, POPL '99.

[32]  Dawson R. Engler,et al.  Using programmer-written compiler extensions to catch security holes , 2002, Proceedings 2002 IEEE Symposium on Security and Privacy.

[33]  David A. Wagner,et al.  MOPS: an infrastructure for examining security properties of software , 2002, CCS '02.