skip to main content
10.1145/2814270.2814296acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

ShamDroid: gracefully degrading functionality in the presence of limited resource access

Published:23 October 2015Publication History

ABSTRACT

Given a program whose functionality depends on access to certain external resources, we investigate the question of how to gracefully degrade functionality when a subset of those resources is unavailable. The concrete setting motivating this problem statement is mobile applications, which rely on contextual data (e.g., device identifiers, user location and contacts, etc.) to fulfill their functionality. In particular, we focus on the Android platform, which mediates access to resources via an installation-time permission model. On the one hand, granting an app the permission to access a resource (e.g., the device ID) entails privacy threats (e.g., releasing the device ID to advertising servers). On the other hand, denying access to a resource could render the app useless (e.g., if inability to read the device ID is treated as an error state). Our goal is to specialize an existing Android app in such a way that it is disabled from accessing certain sensitive resources (or contextual data) as specified by the user, while still being able to execute functionality that does not depend on those resources. We present ShamDroid, a program transformation algorithm, based on specialized forms of program slicing, backwards static analysis and constraint solving, that enables the use of Android apps with partial permissions. We rigorously state the guarantees provided by ShamDroid w.r.t. functionality maximization. We provide an evaluation over the top 500 Google Play apps and report on an extensive comparative evaluation of ShamDroid against three other state-of-the-art solutions (APM, XPrivacy, and Google App Ops) that mediate resource access at the system (rather than app) level. ShamDroid performs better than all of these tools by a significant margin, leading to abnormal behavior in only 1 out of 27 apps we manually investigated, compared to the other solutions, which cause crashes and abnormalities in 9 or more of the apps. This demonstrates the importance of performing app-sensitive mocking.

References

  1. XPrivacy. http://www.xprivacy.eu/.Google ScholarGoogle Scholar
  2. Advanced permission manager. https://play.google. com/store/apps/details?id=com.gmail. heagoo.pmaster.Google ScholarGoogle Scholar
  3. App ops brings granular permissions control to android 4.3. http://www.xda-developers.com/app-opsbrings-granular-permissions-control-to- android-4-3.Google ScholarGoogle Scholar
  4. Watson libraries for analysis (wala). https://github.com/wala/WALA.Google ScholarGoogle Scholar
  5. Taming information-stealing smartphone applications (on android). In J. McCune, B. Balacheff, A. Perrig, A.-R. Sadeghi, A. Sasse, and Y. Beres, editors, Proceedings of TRUST ’11, pages 93–107. Springer, 2011.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Arzt, S. Rasthofer, C. Fritz, E. Bodden, A. Bartel, J. Klein, Y. L. Traon, D. Octeau, and P. McDaniel. Flowdroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In Proceedings of PLDI ’14, pages 259–269, 2014.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. K. W. Y. Au, Y. F. Zhou, Z. Huang, and D. Lie. PScout: Analyzing the android permission specification. In Proceedings of CCS ’12, pages 217–228. ACM, 2012.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Backes, S. Gerling, C. Hammer, M. Maffei, and P. von Styp-Rekowsky. Appguard–enforcing user requirements on android apps. In Proceedings of TACAS ’13, pages 543–548. Springer, 2013.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. R. Beresford, A. Rice, N. Skehin, and R. Sohan. Mockdroid: trading privacy for application functionality on smartphones. In Proceedings of HotMobile ’11, pages 49–54. ACM, 2011.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Bianchi, J. Corbetta, L. Invernizzi, Y. Fratantonio, C. Kruegel, and G. Vigna. What the App is That? Deception and Countermeasures in the Android User Interface. In Proceedings of the IEEE Symposium on Security and Privacy (S&P), 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Chandra, S. J. Fink, and M. Sridharan. Snugglebug: a powerful approach to weakest preconditions. In Proceedings of PLDI ’09, pages 363–374. ACM, 2009.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Cousot. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theoretical Computer Science, 277(1–2):47–103, 2002.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. L. De Moura and N. Bjørner. Z3: An efficient smt solver. In Proceedings of TACAS ’08, pages 337–340. Springer, 2008.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. W. Dijkstra. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18(8):453– 457, 1975.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Enck, P. Gilbert, B. Chun, L. P. Cox, J. Jung, P. McDaniel, and A. N. Sheth. Taintdroid: an information-flow tracking system for realtime privacy monitoring on smartphones. In Proceedings of OSDI ’10, pages 393–407. USENIX, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. P. Fuchs, A. Chaudhuri, and J. S. Foster. SCanDroid: Automated Security Certification of Android Applications. Technical report, CS-TR-4991, Department of Computer Science, University of Maryland, 20o9.Google ScholarGoogle Scholar
  17. P. Godefroid, N. Klarlund, and K. Sen. Dart: Directed automated random testing. In Proceedings of PLDI ’05, pages 213–223. ACM, 2005.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Groce, S. Chaki, D. Kroening, and O. Strichman. Error explanation with distance metrics. International Journal on Software Tools for Technology Transfer, 8(3):229–247, 2006.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Grove and C. Chambers. A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst., (6), Nov. 2001. ISSN 0164-0925. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. A. R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10):576–580, 1969.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. Hornyack, S. Han, J. Jung, S. Schechter, and D. Wetherall. These aren’t the droids you’re looking for: retrofitting android to protect data from imperious applications. In Proceedings of CCS ’11, pages 639–652. ACM, 2011.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. In Proceedings of PLDI ’88, pages 35–46. ACM, 1988.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Jeon, K. K. Micinski, J. A. Vaughan, A. Fogel, N. Reddy, J. S. Foster, and T. Millstein. Dr. Android and Mr. Hide: Finegrained permissions in android applications. In Proceedings of SPSM ’12, pages 3–14. ACM, 2012.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. C. King. Symbolic execution and program testing. Commun. ACM, 19(7):385–394, July 1976.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. Nieuwenhuis and A. Oliveras. On SAT modulo theories and optimization problems. In Proceedings of SAT ’06, pages 156–169. Springer, 2006.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Pistoia, A. Banerjee, and D. A. Naumann. Beyond stack inspection: A unified access-control and information-flow security model. In Proceedings of the Symposium on Security and Privacy ’07, pages 149–163. IEEE, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of POPL ’95, pages 49–61. ACM, 1995.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. G. Sarwar, O. Mehani, R. Boreli, and M. A. Kâafar. On the effectiveness of dynamic taint analysis for protecting against private information leaks on android-based devices. In Proceedings of SECRYPT ’13, pages 461–468, 2013.Google ScholarGoogle Scholar
  29. M. Sridharan, S. J. Fink, and R. Bodik. Thin slicing. SIGPLAN Not., 42(6):112–122, June 2007.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. N. Tillmann and J. De Halleux. Pex–white box test generation for .net. In Proceedings of TAP ’08, pages 134–153. Springer, 2008.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In Proceedings of OOPSLA, pages 281–293, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. O. Tripp and J. Rubin. A bayesian approach to privacy enforcement in smartphones. In Proceedings of USENIX Security ’14, pages 175–190. USENIX, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. O. Tripp, M. Pistoia, S. J. Fink, M. Sridharan, and O. Weisman. TAJ: effective taint analysis of web applications. In Proceedings of PLDI ’09, pages 87–97. ACM, 2009.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. W. Visser, C. S. Pˇasˇareanu, and S. Khurshid. Test input generation with java pathfinder. In Proceedings of ISSTA ’04, pages 97–107. ACM, 2004.. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. ShamDroid: gracefully degrading functionality in the presence of limited resource access

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
                October 2015
                953 pages
                ISBN:9781450336895
                DOI:10.1145/2814270
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 50, Issue 10
                  OOPSLA '15
                  October 2015
                  953 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2858965
                  • Editor:
                  • Andy Gill
                  Issue’s Table of Contents

                Copyright © 2015 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 23 October 2015

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate268of1,244submissions,22%

                Upcoming Conference

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader