skip to main content
10.1145/2786805.2786829acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Getting to know you: towards a capability model for Java

Published: 30 August 2015 Publication History

Abstract

Developing software from reusable libraries lets developers face a security dilemma: Either be efficient and reuse libraries as they are or inspect them, know about their resource usage, but possibly miss deadlines as reviews are a time consuming process. In this paper, we propose a novel capability inference mechanism for libraries written in Java. It uses a coarse-grained capability model for system resources that can be presented to developers. We found that the capability inference agrees by 86.81% on expectations towards capabilities that can be derived from project documentation. Moreover, our approach can find capabilities that cannot be discovered using project documentation. It is thus a helpful tool for developers mitigating the aforementioned dilemma.

References

[1]
Secure coding guidelines for java se. http://www.oracle.com/technetwork/java/ seccodeguide-139067.html, 2014.
[2]
A. Bartel, J. Klein, Y. Le Traon, and M. Monperrus. Automatically securing permission-based software by reducing the attack surface: An application to android. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pages 274–277, 2012.
[3]
M. Bland. Finding more than one worm in the Apple. Communications of the ACM, 2014.
[4]
B. W. Boehm. Managing Software Productivity and Reuse. IEEE Computer, 32(9):111–113, 1999.
[5]
J. Cappos, A. Dadgar, J. Rasley, J. Samuel, I. Beschastnikh, C. Barsan, A. Krishnamurthy, and T. Anderson. Retaining sandbox containment despite bugs in privileged memory-safe code. In Proceedings of the 17th ACM Conference on Computer and Communications Security, CCS ’10, 2010.
[6]
W. De Groef, N. Nikiforakis, Y. Younan, and F. Piessens. Jitsec: Just-in-time security for code injection attacks. In Benelux Workshop on Information and System Security (WISSEC 2010).
[7]
Z. Durumeric, J. Kasten, D. Adrian, J. A. Halderman, M. Bailey, F. Li, N. Weaver, J. Amann, J. Beekman, M. Payer, and V. Paxson. The matter of heartbleed. In Proceedings of the 2014 Conference on Internet Measurement Conference, IMC ’14, pages 475–488, New York, NY, USA, 2014. ACM.
[8]
M. Eichberg and B. Hermann. A software product line for static analyses: the OPAL framework. In SOAP ’14: Proceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis, pages 1–6, New York, New York, USA, June 2014. ACM Request Permissions.
[9]
C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for java. 37(5):234–245, 2002.
[10]
A. Forward and T. C. Lethbridge. The relevance of software documentation, tools and technologies: a survey. In Proceedings of the 2002 ACM symposium on Document engineering, pages 26–33. ACM, 2002.
[11]
E. Geay, M. Pistoia, T. Tateishi, B. G. Ryder, and J. Dolby. Modular string-sensitive permission analysis with demand-driven precision. In ICSE ’09: Proceedings of the 2009 IEEE 31st International Conference on Software Engineering, pages 177–187. IEEE Computer Society, May 2009.
[12]
L. Gong. Java security architecture revisited. Communications of the ACM, 54(11), Nov. 2011.
[13]
M. L. Griss. Software Reuse: From Library to Factory. IBM Systems Journal, 32(4):548–566, 1993.
[14]
N. Hardy. The confused deputy:(or why capabilities might have been invented). ACM SIGOPS Operating Systems Review, 22(4):36–38, 1988.
[15]
C. Hawblitzel, C.-C. Chang, G. Czajkowski, D. Hu, and T. von Eicken. Implementing Multiple Protection Domains in Java. USENIX Annual Technical Conference 1998, 1998.
[16]
D. Hovemeyer and W. Pugh. Finding bugs is easy. In OOPSLA ’04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, 2004.
[17]
L. Koved, M. Pistoia, and A. Kershenbaum. Access rights analysis for Java. ACM Sigplan Notices, 37(11):359, Nov. 2002.
[18]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1997.
[19]
F. Maggi, M. Matteucci, and S. Zanero. Detecting Intrusions through System Call Sequence and Argument Analysis. IEEE Transactions on Dependable and Secure Computing, 7(4):381–395, 2008.
[20]
A. Mettler, D. Wagner, and T. Close. Joe-E: A Security-Oriented Subset of Java. NDSS 2010, 2010.
[21]
M. S. Miller. Robust composition: towards a unified approach to access control and concurrency control. 2006.
[22]
J. H. Saltzer and M. D. Schroeder. The protection of information in computer systems. Proceedings of the IEEE, 63(9):1278–1308, 1975.
[23]
J. Siefers, G. Tan, and G. Morrisett. Robusta: Taming the native beast of the jvm. In Proceedings of the 17th ACM Conference on Computer and Communications Security, CCS ’10, pages 201–211, 2010.
[24]
M. Sun and G. Tan. Jvm-portable sandboxing of java’s native libraries. Computer Security–ESORICS 2012, 2012.
[25]
M. Sun and G. Tan. NativeGuard: protecting android applications from third-party native libraries. In WiSec ’14: Proceedings of the 2014 ACM conference on Security and privacy in wireless & mobile networks. ACM Request Permissions, July 2014.
[26]
V. Sundaresan, L. Hendren, C. Razafimahefa, R. Vallée-Rai, P. Lam, E. Gagnon, and C. Godin. Practical virtual method call resolution for java. In Proceedings of the 15th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’00, pages 264–280, New York, NY, USA, 2000. ACM.
[27]
G. Tan, S. Chakradhar, R. Srivaths, and R. D. Wang. Safe java native interface. In In Proceedings of the 2006 IEEE International Symposium on Secure Software Engineering, pages 97–106, 2006.
[28]
G. Tan and J. Croft. An empirical security study of the native code in the jdk. In Proceedings of the 17th Conference on Security Symposium, SS’08, pages 365–377, Berkeley, CA, USA, 2008. USENIX Association.
[29]
E. Tempero, C. Anslow, J. Dietrich, T. Han, J. Li, M. Lumpe, H. Melton, and J. Noble. Qualitas corpus: A curated collection of java code for empirical studies. In 2010 Asia Pacific Software Engineering Conference (APSEC2010), pages 336–345, Dec. 2010.
[30]
J. Vanegue and S. K. Lahiri. Towards Practical Reactive Security Audit Using Extended Static Checkers. In 2013 IEEE Symposium on Security and Privacy (SP) Conference, pages 33–47. IEEE, 2013.
[31]
T. von Eicken, C.-C. Chang, G. Czajkowski, C. Hawblitzel, D. Hu, and D. Spoonhower. J-Kernel: A Capability-Based Operating System for Java. In Computer Aided Verification, pages 369–393. Springer Berlin Heidelberg, Berlin, Heidelberg, 1999.

Cited By

View all
  • (2022)Static data-flow analysis for software product lines in CAutomated Software Engineering10.1007/s10515-022-00333-129:1Online publication date: 25-Mar-2022
  • (2018)Addressing problems with replicability and validity of repository mining studies through a smart data platformEmpirical Software Engineering10.1007/s10664-017-9537-x23:2(1036-1083)Online publication date: 1-Apr-2018
  • (2017)Hermes: assessment and creation of effective test corporaProceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis10.1145/3088515.3088523(43-48)Online publication date: 18-Jun-2017
  • Show More Cited By

Index Terms

  1. Getting to know you: towards a capability model for Java

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2015: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering
    August 2015
    1068 pages
    ISBN:9781450336758
    DOI:10.1145/2786805
    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: 30 August 2015

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. analysis
    2. capability
    3. library
    4. reuse
    5. security

    Qualifiers

    • Research-article

    Conference

    ESEC/FSE'15
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)10
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 27 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Static data-flow analysis for software product lines in CAutomated Software Engineering10.1007/s10515-022-00333-129:1Online publication date: 25-Mar-2022
    • (2018)Addressing problems with replicability and validity of repository mining studies through a smart data platformEmpirical Software Engineering10.1007/s10664-017-9537-x23:2(1036-1083)Online publication date: 1-Apr-2018
    • (2017)Hermes: assessment and creation of effective test corporaProceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis10.1145/3088515.3088523(43-48)Online publication date: 18-Jun-2017
    • (2017)Capabilities for Java: Secure Access to ResourcesProgramming Languages and Systems10.1007/978-3-319-71237-6_4(67-84)Online publication date: 19-Nov-2017
    • (2016)Call graph construction for Java librariesProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950312(474-486)Online publication date: 1-Nov-2016

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media