CrashSafe: a formal model for proving crash-safety of Android applications

Each software application running on Android powered devices consists of application components that communicate with each other to support application’s functionality for enhanced user experience of mobile computing. Application components inside Android system communicate with each other using inter-component communication mechanism based on messages called intents. An android application crashes if it invokes an intent that can not be received by (or resolved to) any application on the device. Application crashes represent a severe fault that relates to compromised users’ experience, consequently resulting in decreased ratings, usage trends and revenues for such applications. To address this issue—by formally proving crash-safety property of Android applications—we have defined a formal model of Android inter-component communication using Coq theorem prover. The mathematical model defined in theorem prover allows one to prove the properties of inter-component communication system and check the correctness of the proof in an automated way. To demonstrate the significance of the formal model developed, we carried proof of crash-safety of Android applications using Coq tool. The proposed solution named CrashSafe supports a formal approach that enables one to (i) check the correctness of inter-component communication in Android systems and (ii) establish a formal foundation for other tools to assess Android applications’ reliability and safety.

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

[2]  Waqar Ahmad,et al.  Inter-app Communication in Android: Developer Challenges , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

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

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

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

[6]  Sahin Albayrak,et al.  Enhancing security of linux-based android devices , 2008 .

[7]  Matthew L. Dering,et al.  Composite Constant Propagation: Application to Android Inter-Component Communication Analysis , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[8]  Muttukrishnan Rajarajan,et al.  Android Security: A Survey of Issues, Malware Penetration, and Defenses , 2015, IEEE Communications Surveys & Tutorials.

[9]  Asad Waqar Malik,et al.  Classification and Mapping of Adaptive Security for Mobile Computing , 2020, IEEE Transactions on Emerging Topics in Computing.

[10]  Christopher Vendome,et al.  CrashScope: A Practical Tool for Automated Testing of Android Applications , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[11]  Jacques Klein,et al.  IccTA: Detecting Inter-Component Privacy Leaks in Android Apps , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[12]  Arthur Charguéraud,et al.  Engineering formal metatheory , 2008, POPL '08.

[13]  Oludare Isaac Abiodun,et al.  Digital Forensics: Review of Issues in Scientific Validation of Digital Evidence , 2018, J. Inf. Process. Syst..

[14]  David A. Wagner,et al.  Reducing attack surfaces for intra-application communication in android , 2012, SPSM '12.

[15]  David A. Wagner,et al.  Analyzing inter-application communication in Android , 2011, MobiSys '11.

[16]  David A. Basin,et al.  The TAMARIN Prover for the Symbolic Analysis of Security Protocols , 2013, CAV.

[17]  John Regehr,et al.  Intent fuzzer: crafting intents of death , 2014, WODA+PERTEA 2014.

[18]  Sankardas Roy,et al.  Amandroid: A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps , 2014, CCS.

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

[20]  Eric Anderson,et al.  Operating systems for mobile computing , 2009 .

[21]  Hui Ye,et al.  DroidFuzzer: Fuzzing the Android Apps with Intent-Filter Tag , 2013, MoMM '13.

[22]  Mahadev Satyanarayanan,et al.  Mobile computing: the next decade , 2010, MCS '10.

[23]  Daewon Kim,et al.  Cloud Computing to Improve JavaScript Processing Efficiency of Mobile Applications , 2017, J. Inf. Process. Syst..

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

[25]  Michele Bugliesi,et al.  Lintent: Towards Security Type-Checking of Android Applications , 2013, FMOODS/FORTE.

[26]  Suman Nath,et al.  Automatic and scalable fault detection for mobile applications , 2014, MobiSys.

[27]  George Kuk,et al.  Why Do Applications Request My Contacts Data? A Large-Scale Study on Openness and Control of User Contacts Permission in Android Mobile Applicaitons Marketplace , 2014 .

[28]  Chonho Lee,et al.  A survey of mobile cloud computing: architecture, applications, and approaches , 2013, Wirel. Commun. Mob. Comput..

[29]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[30]  Matthew H. Wong,et al.  Survey of Existing Tools for Formal Verification , 2014 .

[31]  Jan S. Rellermeyer,et al.  An empirical study of the robustness of Inter-component Communication in Android , 2012, IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2012).