skip to main content
10.1145/3468264.3468561acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article
Public Access

Checking conformance of applications against GUI policies

Published:18 August 2021Publication History

ABSTRACT

A good graphical user interface (GUI) is crucial for an application's usability, so vendors and regulatory agencies increasingly place restrictions on how GUI elements should appear to and interact with users. Motivated by this concern, this paper presents a new technique (based on static analysis) for checking conformance between (Android) applications and GUI policies expressed in a formal specification language. In particular, this paper (1) describes a specification language for formalizing GUI policies, (2) proposes a new program abstraction called an _event-driven layout forest_, and (3) describes a static analysis for constructing this abstraction and checking it against a GUI policy. We have implemented the proposed approach in a tool called Venus, and we evaluate it on 2361 Android applications and 17 policies. Our evaluation shows that Venus can uncover malicious applications that perform ad fraud and identify violations of GUI design guidelines and GDPR laws.

References

  1. Alibaba. 2020. Alibaba UC Market Ads Guide. http://aliapp.open.uc.cn/wiki/?p=140 [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  2. Apple. 2020. iOS Design. https://developer.apple.com/design/tips [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  3. Daniel Arp, Michael Spreitzenbarth, Malte Hubner, Hugo Gascon, Konrad Rieck, and CERT Siemens. 2014. Drebin: Effective and explainable detection of android malware in your pocket.. In Ndss. 14, 23–26. https://doi.org/10.14722/ndss.2014.23247 Google ScholarGoogle ScholarCross RefCross Ref
  4. Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. FlowDroid: Precise Context, Flow, Field, Object-Sensitive and Lifecycle-Aware Taint Analysis for Android Apps. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). Association for Computing Machinery, New York, NY, USA. 259–269. isbn:9781450327848 https://doi.org/10.1145/2594291.2594299 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Kai Chen, Peng Wang, Yeonjoon Lee, XiaoFeng Wang, Nan Zhang, Heqing Huang, Wei Zou, and Peng Liu. 2015. Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale. In Proceedings of the 24th USENIX Conference on Security Symposium (SEC’15). USENIX Association, USA. 659–674. isbn:9781931971232Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Kevin Zhijie Chen, Noah M Johnson, Vijay D’Silva, Shuaifu Dai, Kyle MacNamara, Thomas R Magrino, Edward XueJun Wu, Martin Rinard, and Dawn Xiaodong Song. 2013. Contextual policy enforcement in android applications with permission event graphs.. In NDSS. 234.Google ScholarGoogle Scholar
  7. Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. 238–252. https://doi.org/10.1145/512950.512973 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Feng Dong, Haoyu Wang, Li Li, Yao Guo, Tegawendé F. Bissyandé, Tianming Liu, Guoai Xu, and Jacques Klein. 2018. FraudDroid: Automated Ad Fraud Detection for Android Apps. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018). Association for Computing Machinery, New York, NY, USA. 257–268. isbn:9781450355735 https://doi.org/10.1145/3236024.3236045 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. EU. 2020. Art. 7 GDPR – Conditions for consent. https://gdpr-info.eu/art-7-gdpr/ [Online; accessed 4-Apr-2020].Google ScholarGoogle Scholar
  10. EU. 2020. Article 5: Principles relating to processing of personal data. https://www.privacy-regulation.eu/en/article-5-principles-relating-to-processing-of-personal-data-GDPR.htm [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  11. Yu Feng, Saswat Anand, Isil Dillig, and Alex Aiken. 2014. Apposcopy: Semantics-Based Detection of Android Malware through Static Analysis. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). Association for Computing Machinery, New York, NY, USA. 576–587. isbn:9781450330565 https://doi.org/10.1145/2635868.2635869 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Yu Feng, Osbert Bastani, Ruben Martins, Isil Dillig, and Saswat Anand. 2017. Automatically learning android malware signatures from few samples. In Proceedings of the 2017 Annual Network and Distributed System Security Symposium (NDSS)(San Diego, California, USA.Google ScholarGoogle Scholar
  13. Google. 2018. Android Security & Privacy 2018 Year In Review. https://source.android.com/security/reports/Google_Android_Security_2018_Report_Final.pdf [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  14. Google. 2020. AdMob policies and restrictions. https://support.google.com/admob/answer/6128543?hl=en&ref_topic=2745287&visit_id=637149126866279343-1579955165&rd=1 [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  15. Google. 2020. Android Developer - Design. https://developer.android.com/design [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  16. Google. 2020. Disallowed interstitial implementations. https://support.google.com/admob/answer/6201362?hl=en [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  17. Google. 2020. Guidelines for programmatic native ads using app code. https://support.google.com/admanager/answer/7031536?hl=en [Online; accessed 4-Apr-2020].Google ScholarGoogle Scholar
  18. Google. 2020. Material Design. https://material.io/ [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  19. Google. 2020. Play Store Ads Guide. https://play.google.com/intl/en-GB_ALL/about/monetization-ads/ads/ [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  20. Google. 2020. Requesting Consent from European Users. https://developers.google.com/admob/android/eu-consent [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  21. Google. 2020. The type system. https://material.io/design/typography/the-type-system.html [Online; accessed 4-Apr-2020].Google ScholarGoogle Scholar
  22. Michael I Gordon, Deokhwan Kim, Jeff H Perkins, Limei Gilham, Nguyen Nguyen, and Martin C Rinard. 2015. Information flow analysis of android applications in droidsafe. In NDSS. 15, 110. https://doi.org/10.14722/ndss.2015.23089 Google ScholarGoogle ScholarCross RefCross Ref
  23. Neville Grech and Yannis Smaragdakis. 2017. P/Taint: Unified Points-to and Taint Analysis. Proc. ACM Program. Lang., 1, OOPSLA (2017), Article 102, Oct., 28 pages. https://doi.org/10.1145/3133926 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Peter J Huber. 1972. The 1972 wald lecture robust statistics: A review. The Annals of Mathematical Statistics, 43, 4 (1972), 1041–1067.Google ScholarGoogle ScholarCross RefCross Ref
  25. Konstantin Kuznetsov, Vitalii Avdiienko, Alessandra Gorla, and Andreas Zeller. 2018. Analyzing the User Interface of Android Apps. In Proceedings of the 5th International Conference on Mobile Software Engineering and Systems (MOBILESoft ’18). Association for Computing Machinery, New York, NY, USA. 84–87. isbn:9781450357128 https://doi.org/10.1145/3197231.3197232 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Sungho Lee, Julian Dolby, and Sukyoung Ryu. 2016. HybriDroid: Static Analysis Framework for Android Hybrid Applications. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016). Association for Computing Machinery, New York, NY, USA. 250–261. isbn:9781450338455 https://doi.org/10.1145/2970276.2970368 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ondřej Lhoták and Laurie Hendren. 2003. Scaling Java points-to analysis using S park. In International Conference on Compiler Construction. 153–169.Google ScholarGoogle ScholarCross RefCross Ref
  28. Li Li, Alexandre Bartel, Tegawendé F Bissyandé, Jacques Klein, Yves Le Traon, Steven Arzt, Siegfried Rasthofer, Eric Bodden, Damien Octeau, and Patrick McDaniel. 2015. Iccta: Detecting inter-component privacy leaks in android apps. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering. 1, 280–291. https://doi.org/10.1109/ICSE.2015.48 Google ScholarGoogle ScholarCross RefCross Ref
  29. Chafik Meniar, Florence Opalvens, and Sylvain Hallé. 2017. Runtime Verification of User Interface Guidelines in Mobile Devices. In International Conference on Runtime Verification. 410–415. https://doi.org/10.1007/978-3-319-67531-2_27 Google ScholarGoogle ScholarCross RefCross Ref
  30. Ali Mesbah and Shabnam Mirshokraie. 2012. Automated analysis of CSS rules to support style maintenance. In 2012 34th International Conference on Software Engineering (ICSE). 408–418. https://doi.org/10.1109/ICSE.2012.6227174 Google ScholarGoogle ScholarCross RefCross Ref
  31. Ramon E Moore. 1966. Interval analysis. 4, Prentice-Hall Englewood Cliffs.Google ScholarGoogle Scholar
  32. Kevin Moran, Boyang Li, Carlos Bernal-Cárdenas, Dan Jelf, and Denys Poshyvanyk. 2018. Automated Reporting of GUI Design Violations for Mobile Apps. In Proceedings of the 40th International Conference on Software Engineering (ICSE ’18). Association for Computing Machinery, New York, NY, USA. 165–175. isbn:9781450356381 https://doi.org/10.1145/3180155.3180246 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Tuan Anh Nguyen and Christoph Csallner. 2015. Reverse Engineering Mobile Application User Interfaces with REMAUI. In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE ’15). IEEE Press, 248–259. isbn:9781509000241 https://doi.org/10.1109/ASE.2015.32 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Damien Octeau, Daniel Luchaup, Matthew Dering, Somesh Jha, and Patrick McDaniel. 2015. Composite constant propagation: Application to android inter-component communication analysis. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering. 1, 77–88. https://doi.org/10.1109/ICSE.2015.30 Google ScholarGoogle ScholarCross RefCross Ref
  35. Rohan Padhye and Uday P. Khedker. 2013. Interprocedural Data Flow Analysis in Soot Using Value Contexts. In Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program Analysis (SOAP ’13). Association for Computing Machinery, New York, NY, USA. 31–36. isbn:9781450322010 https://doi.org/10.1145/2487568.2487569 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Pavel Panchekha, Adam Timothy Geller, Shoaib Kamil, Michael Ernst, Zachary Tatlock, and Emina Torlak. 2020. The Cassius Framework. https://cassius.uwplse.org/ [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  37. Pavel Panchekha and Emina Torlak. 2016. Automated Reasoning for Web Page Layout. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). Association for Computing Machinery, New York, NY, USA. 181–194. isbn:9781450344449 https://doi.org/10.1145/2983990.2984010 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Raghavendra Satish Peri. 2021. 18 Free Mobile Accessibility Testing Tools. https://www.digitala11y.com/free-mobile-accessibility-testing-tools/ [Online; accessed 13-Feb-2021].Google ScholarGoogle Scholar
  39. PRESTO. 2017. GATOR: Program Analysis Toolkit For \Android\. 12 pages. http://web.cse.ohio-state.edu/presto/software/gator/Google ScholarGoogle Scholar
  40. Atanas Rountev and Dacong Yan. 2014. Static Reference Analysis for GUI Objects in Android Software. In Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO ’14). Association for Computing Machinery, New York, NY, USA. 143–153. isbn:9781450326704 https://doi.org/10.1145/2581122.2544159 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Soufflé Developers. 2020. Soufflé - Datalog. https://souffle-lang.github.io/datalog [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  42. Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 2010. Soot: A Java bytecode optimization framework. In CASCON First Decade High Impact Papers. 214–224.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. VirusTotal. 2020. VirusTotal. https://www.virustotal.com/ [Online; accessed 13-Mar-2020].Google ScholarGoogle Scholar
  44. W3C. 2021. Web Accessibility Evaluation Tools List. https://www.w3.org/WAI/ER/tools/ [Online; accessed 13-Feb-2021].Google ScholarGoogle Scholar
  45. Guangliang Yang and Jeff Huang. 2018. Automated generation of event-oriented exploits in android hybrid apps. In Proc. of the Network and Distributed System Security Symposium (NDSS’18). https://doi.org/10.14722/ndss.2018.23241 Google ScholarGoogle ScholarCross RefCross Ref
  46. Shengqian Yang, Haowei Wu, Hailong Zhang, Yan Wang, Chandrasekar Swaminathan, Dacong Yan, and Atanas Rountev. 2018. Static window transition graphs for Android. Automated Software Engineering, 25, 4 (2018), 833–873. https://doi.org/10.1109/ASE.2015.76 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Yifei Zhang, Yulei Sui, and Jingling Xue. 2018. Launch-Mode-Aware Context-Sensitive Activity Transition Analysis. In Proceedings of the 40th International Conference on Software Engineering (ICSE ’18). Association for Computing Machinery, New York, NY, USA. 598–608. isbn:9781450356381 https://doi.org/10.1145/3180155.3180188 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Checking conformance of applications against GUI policies

        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
          ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
          August 2021
          1690 pages
          ISBN:9781450385626
          DOI:10.1145/3468264

          Copyright © 2021 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 ACM 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: 18 August 2021

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate112of543submissions,21%

          Upcoming Conference

          FSE '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader