Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2660267.2660343acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
research-article

Collaborative Verification of Information Flow for a High-Assurance App Store

Published: 03 November 2014 Publication History

Abstract

Current app stores distribute some malware to unsuspecting users, even though the app approval process may be costly and time-consuming. High-integrity app stores must provide stronger guarantees that their apps are not malicious. We propose a verification model for use in such app stores to guarantee that the apps are free of malicious information flows. In our model, the software vendor and the app store auditor collaborate -- each does tasks that are easy for her/him, reducing overall verification cost. The software vendor provides a behavioral specification of information flow (at a finer granularity than used by current app stores) and source code annotated with information-flow type qualifiers. A flow-sensitive, context-sensitive information-flow type system checks the information flow type qualifiers in the source code and proves that only information flows in the specification can occur at run time. The app store auditor uses the vendor-provided source code to manually verify declassifications.
We have implemented the information-flow type system for Android apps written in Java, and we evaluated both its effectiveness at detecting information-flow violations and its usability in practice. In an adversarial Red Team evaluation, we analyzed 72 apps (576,000 LOC) for malware. The 57 Trojans among these had been written specifically to defeat a malware analysis such as ours. Nonetheless, our information-flow type system was effective: it detected 96% of malware whose malicious behavior was related to information flow and 82% of all malware. In addition to the adversarial evaluation, we evaluated the practicality of using the collaborative model. The programmer annotation burden is low: 6 annotations per 100 LOC. Every sound analysis requires a human to review potential false alarms, and in our experiments, this took 30 minutes per 1,000 LOC for an auditor unfamiliar with the app.

References

[1]
Y. Agarwal and M. Hall. ProtectMyPrivacy: Detecting and mitigating privacy leaks on iOS devices using crowdsourcing. In MobiSys, pages 97--110, 2013.
[2]
O. Arden, M. D. George, J. Liu, K. Vikram, A. Askarov, and A. C. Myers. Sharing mobile code securely with information flow control. In IEEE S&P, 2012.
[3]
S. Arzt, S. Rasthofer, C. Fritz, E. Bodden, A. Bartel, J. Klein, Y. Le Traon, D. Octeau, and P. McDaniel. FlowDroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In PLDI, pages 259--269, 2014.
[4]
K. W. Y. Au, Y. F. Zhou, Z. Huang, and D. Lie. PScout: Analyzing the Android permission specification. In CCS,pages 217--228, 2012.
[5]
A. Banerjee, D. A. Naumann, and S. Rosenberg. Expressive declassification policies and modular static enforcement. In IEEE S&P, 2008.
[6]
C. Bonnington. First instance of iOS app store malware detected, removed, 2012. http://www.wired.com/gadgetlab/2012/07/firstios-malware-found/.
[7]
F. P. Brooks, Jr. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, Boston, MA, USA, 1975.
[8]
E. Chin, A. P. Felt, K. Greenwood, and D. Wagner. Analyzing inter-application communication in Android. In MobiSys, pages 239--252, 2011.
[9]
S. Chong, K. Vikram, and A. C. Myers. SIF: Enforcing confidentiality and integrity in web applications. In USENIX Security, 2007.
[10]
D. E. Denning. A lattice model of secure information flow.CACM, 19(5):236--243, 1976.
[11]
D. E. Denning and P. J. Denning. Certification of programs for secure information flow. CACM, 20(7):504--513, 1977.
[12]
W. Dietl, S. Dietzel, M. D. Ernst, K. Mu¸slu, and T. Schiller. Building and using pluggable type-checkers. In ICSE, pages 681--690, 2011.
[13]
M. Egele, C. Kruegel, E. Kirdaz, and G. Vigna. PiOS: Detecting privacy leaks in iOS applications. In NDSS, 2011.
[14]
W. Enck, P. Gilbert, B.-G. 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 OSDI, 2010.
[15]
K. Engelhardt, R. van der Meyden, and C. Zhang. Intransitive noninterference in nondeterministic systems. In CCS, 2012.
[16]
A. P. Felt, E. Chin, S. Hanna, D. Song, and D. Wagner. Android permissions demystified. In CCS, pages 627--638, 2011.
[17]
A. P. Felt, M. Finifter, E. Chin, S. Hanna, and D. Wagner. A survey of mobile malware in the wild. In SPSM, 2011.
[18]
E. Ferrari, P. Samarati, E. Bertino, and S. Jajodia. Providing flexibility in information flow control for object-oriented systems. In IEEE S&P, pages 130--140, 1997.
[19]
C. Gibler, J. Crussell, J. Erickson, and H. Chen. AndroidLeaks: Automatically detecting potential privacy leaks in Android applications on a large scale. In TRUST, pages 291--307, 2012.
[20]
A. Gorla, I. Tavecchia, F. Gross, and A. Zeller. Checking app behavior against app descriptions. In ICSE, pages 1025--1035, 2014.
[21]
M. Grace, Y. Zhou, Z. Wang, and X. Jiang. Systematic detection of capability leaks in stock Android smartphones. In NDSS, 2012.
[22]
M. Grace, Y. Zhou, Q. Zhang, S. Zou, and X. Jiang. RiskRanker: Scalable and accurate zero-day Android malware detection. In MobiSys, pages 281--294, 2012.
[23]
A. Greenberg. iPhone security bug lets innocent-looking apps go bad. http://www.forbes.com/sites/andygreenberg/2011/11/07/iphone-security-bug-lets-innocentlooking-apps-go-bad/, 2011.
[24]
A. Guha, M. Fredrikson, B. Livshits, and N. Swamy. Verified security for browser extensions. In IEEE S&P, 2011.
[25]
C. Hammer, J. Krinke, and G. Snelting. Information flow control for java based on path conditions in dependence graphs. In ISSSE, pages 87--96, 2006.
[26]
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 CCS, pages 639--652, 2011.
[27]
Y.-W. Huang, F. Yu, C. Hang, C.-H. Tsai, D.-T. Lee, and S.-Y. Kuo. Securing web application code by static analysis and runtime protection. In WWW, pages 40--52, 2004.
[28]
M. Isaac. Android malware found in angry birds add-on apps. http://www.wired.com/2011/06/android-malwareangry-birds/, 2011.
[29]
C. Jones. The Economics of Software Quality. Addison-Wesley, 2011.
[30]
M. G. Kang, S. McCamant, P. Poosankam, and D. Song. DTA++: Dynamic taint analysis with targeted control-flow propagation. In NDSS, 2011.
[31]
M. Kassner. Google Play: Android's Bouncer can be pwned. http://www.techrepublic.com/blog/it-security/- google-play-androids-bouncer-can-be-pwned/, 2012.
[32]
C. Kitching and L. McVoy. BK2CVS problem. http://lkml.indiana.edu/hypermail/linux/kernel/ 0311.0/0635.html, 2003.
[33]
D. Kravets. Android market apps hit with malware. http://www.wired.com/2011/03/android-malware-2/, 2011.
[34]
B. S. Lerner, L. Elberty, N. Poole, and S. Krishnamurthi. Verifying web browser extensions? compliance with private-browsing mode. In ESORICS, 2013.
[35]
B. S. Lerner, L. Elberty, N. Poole, and S. Krishnamurthi. Verifying web browser extensions? compliance with private-browsing mode. Technical Report CS-13-02, Brown University, 2013.
[36]
P. Li and S. Zdancewic. Encoding information flow in Haskell. In CSFW, pages 16--27, 2006.
[37]
L. Liu, X. Zhang, G. Yan, and S. Chen. Chrome extensions: Threat analysis and countermeasures. In NDSS, 2012.
[38]
C. Mann and A. Starostin. A framework for static detection of privacy leaks in Android applications. In SAC, pages 1457--1462, 2012.
[39]
W. Masri, A. Podgurski, and D. Leon. Detecting and debugging insecure information flows. In ISSRE, pages 198--209, 2004.
[40]
S. McConnell. Software Estimation: Demystifying the Black Art. Microsoft Press, 2006.
[41]
A. Milanova and W. Huang. Composing polymorphic information flow systems with reference immutability. In FTfJP, pages 5:1--5:7, 2013.
[42]
A. C. Myers. JFlow: Practical mostly-static information flow control. In POPL, pages 228--241, 1999.
[43]
A. C. Myers, L. Zheng, S. Zdancewic, S. Chong, and N. Nystrom. Jif: Java + information flow. http://www.cs.cornell.edu/jif.
[44]
D. A. Naumann. From coupling relations to mated invariants for checking information flow. In ESORICS, 2006.
[45]
M. Ongtang, S. McLaughlin, W. Enck, and P. McDaniel. Semantically rich application-centric security in Android. In ACSAC, pages 340--349, Dec., 2009.
[46]
R. Pandita, X. Xiao, W. Yang, W. Enck, and T. Xie. WHYPER: Towards automating risk assessment of mobile applications. In USENIX Security, pages 527--542, 2013.
[47]
N. J. Peroco and S. Schulte. Adventures in BouncerLand. In Black Hat USA, 2012.
[48]
F. Pottier and V. Simonet. Information flow inference for ML. In POPL, pages 319--330, 2002.
[49]
F. Rashid. Android malware makes up this week's dangerous apps list. https://www.appthority.com/news/androidmalware- makes-up-this-weeks-dangerous-apps-list, 2013.
[50]
S. Rasthofer, S. Arzt, and E. Bodden. A machine-learning approach for classifying and categorizing android sources and sinks. In NDSS, 2014.
[51]
A. Sabelfeld and A. C. Myers. Language-based information-flow security. J. Sel. Areas in Commun., 21(1):5--19, 2003.
[52]
R. Schouwenberg. Malware in the amazon app store. https://www.securelist.com/en/blog/208194054/Malware_in_the_Amazon_App_Store, 2012.
[53]
S. Smith and M. Thober. Refactoring programs to secure information flows. In PLAS, pages 75--84, 2006.
[54]
P. Su. Broken Windows theory. http://blogs.msdn.com/b/philipsu/archive/2006/06/14/631438.aspx, 2006.
[55]
Q. Sun, A. Banerjee, and D. A. Naumann. Modular and constraint-based information flow inference for an object-oriented language. In SAS, 2004.
[56]
T. Terauchi and A. Aiken. Secure information flow as a safety problem. In SAS, pages 352--367, 2005.
[57]
T. Vidas, N. Christin, and L. Cranor. Curbing Android permission creep. In W2SP, 2011.
[58]
D. Volpano, G. Smith, and C. Irvine. A sound type system for secure flow analysis. Journal of Computer Security, 4(3):167--187, 1996.
[59]
T. Wang, K. Lu, L. Lu, S. Chung, and W. Lee. Jekyll on iOS: When benign apps become evil. In USENIX Security, pages 559--572, 2013.
[60]
X. Xiao, N. Tillmann, M. Fähndrich, J. De Halleux, and M. Moskal. User-aware privacy control via extended static-information-flow analysis. In ASE, pages 80--89, 2012.
[61]
R. Xu, H. Saïdi, and R. Anderson. Aurasium: Practical policy enforcement for Android applications. In USENIX Security, 2012.
[62]
L. K. Yan and H. Yin. DroidScope: Seamlessly reconstructing the OS and Dalvik semantic views for dynamic Android malware analysis. In USENIX Security, 2012.
[63]
L. Zheng, S. Chong, A. C. Myers, and S. Zdancewic. Using replication and partitioning to build secure distributed systems. In IEEE S&P, pages 236--250, 2003.
[64]
Y. Zhou and X. Jiang. Dissecting Android malware: Characterization and evolution. In IEEE S&P, 2012.
[65]
Y. Zhou, Z. Wang, W. Zhou, and X. Jiang. Hey, you, get off of my market: Detecting malicious apps in official and alternative Android markets. In NDSS, 2012.

Cited By

View all
  • (2024)Vulnerability Flow Type Systems2024 IEEE Security and Privacy Workshops (SPW)10.1109/SPW63631.2024.00020(157-168)Online publication date: 23-May-2024
  • (2022)ProMalProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510037(1755-1767)Online publication date: 21-May-2022
  • (2021)A permission-dependent type system for secure information flow analysisJournal of Computer Security10.3233/JCS-200036(1-68)Online publication date: 17-Feb-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CCS '14: Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security
November 2014
1592 pages
ISBN:9781450329576
DOI:10.1145/2660267
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 November 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. android security
  2. collaborative verification
  3. information flow
  4. static analysis

Qualifiers

  • Research-article

Funding Sources

Conference

CCS'14
Sponsor:

Acceptance Rates

CCS '14 Paper Acceptance Rate 114 of 585 submissions, 19%;
Overall Acceptance Rate 1,261 of 6,999 submissions, 18%

Upcoming Conference

CCS '24
ACM SIGSAC Conference on Computer and Communications Security
October 14 - 18, 2024
Salt Lake City , UT , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)32
  • Downloads (Last 6 weeks)3
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Vulnerability Flow Type Systems2024 IEEE Security and Privacy Workshops (SPW)10.1109/SPW63631.2024.00020(157-168)Online publication date: 23-May-2024
  • (2022)ProMalProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510037(1755-1767)Online publication date: 21-May-2022
  • (2021)A permission-dependent type system for secure information flow analysisJournal of Computer Security10.3233/JCS-200036(1-68)Online publication date: 17-Feb-2021
  • (2021)Software engineering techniques for statically analyzing mobile apps: research trends, characteristics, and potential for industrial adoptionJournal of Internet Services and Applications10.1186/s13174-021-00134-x12:1Online publication date: 23-Jul-2021
  • (2021)TaintStream: fine-grained taint tracking for big data platforms through dynamic code translationProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468532(806-817)Online publication date: 20-Aug-2021
  • (2021)Compositional Security for Reentrant Applications2021 IEEE Symposium on Security and Privacy (SP)10.1109/SP40001.2021.00084(1249-1267)Online publication date: May-2021
  • (2021)ProMalProceedings of the 43rd International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion52605.2021.00061(144-146)Online publication date: 25-May-2021
  • (2020)A Taxonomy for Security Flaws in Event-Based SystemsApplied Sciences10.3390/app1020733810:20(7338)Online publication date: 20-Oct-2020
  • (2020)FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachabilityProceedings of the ACM on Programming Languages10.1145/34282464:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Nontransitive Security Types for Coarse-grained Information Flow Control2020 IEEE 33rd Computer Security Foundations Symposium (CSF)10.1109/CSF49147.2020.00022(199-213)Online publication date: Jun-2020
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media