Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3340495.3342749acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A heuristic fuzz test generator for Java native interface

Published: 26 August 2019 Publication History
  • Get Citation Alerts
  • Abstract

    It is well known that once a Java application uses native C/C++ methods through the Java Native Interface (JNI), any security guarantees provided by Java might be invalidated by the native methods. So any vulnerability in this trusted native code can compromise the security of the Java program. Fuzzing test is an approach to software testing whereby the system being tested is bombarded with inputs generated by another program. When using fuzzer to test JNI programs, how to accurately reach the JNI functions and run through them to find the sensitive system APIs is the pre-condition of the test. In this paper, we present a heuristic fuzz generator method on JNI vulnerability detection based on the branch predication information of program. The result in the experiment shows our method can use less fuzzing times to reach more sensitive windows APIs in Java native code.

    References

    [1]
    Richard McNally, Ken Yiu, Duncan Grove and Damien Gerhardy, Fuzzing: The State of the Art, Technical Note. http://www.dsto.defence.gov.au/publications/scientific.php
    [2]
    Fuzzing. From Wikipedia, the free encyclopedia. https://en.wikipedia.org/wiki/Fuzzing
    [3]
    John Neystadt (February 2008). "Automated Penetration Testing with White-Box Fuzzing". Microsoft. Retrieved 2009-05-14.
    [4]
    Barton Miller (2008). "Preface". In Ari Takanen, Jared DeMott and Charlie Miller, Fuzzing for Software Security Testing and Quality Assurance, ISBN 978-1-59693-214-2
    [5]
    Van-Thuan Pham; Marcel Böhme; Abhik Roychoudhury (2016-09-07). "Model-based whitebox fuzzing for program binaries". Proceedings of Automated Software Engineering (ASE'16).
    [6]
    Patrice Godefroid; Michael Y. Levin; David Molnar (2008-02-08). "Automated Whitebox Fuzz Testing" (PDF). Proceedings of Network and Distributed Systems Symposium (NDSS'08).
    [7]
    Marcel Böhme; Soumya Paul (2015-10-05). "A Probabilistic Analysis of the Efficiency of Automated Software Testing". IEEE Transactions on Software Engineering (TSE).
    [8]
    Nick Stephens; John Grosen; Christopher Salls; Andrew Dutcher; Ruoyu Wang; Jacopo Corbetta; Yan Shoshitaishvili; Christopher Kruegel; Giovanni Vigna (2016-02-24). Driller: Augmenting. Fuzzing Through Selective Symbolic Execution (PDF). Proceedings of Network and Distributed Systems Symposium (NDSS'16).
    [9]
    Marcel Böhme; Van-Thuan Pham; Abhik Roychoudhury (2016-10-28). "Coverage-based Greybox Fuzzing as a Markov Chain". Proceedings of the ACM Conference on Computer and Communications Security (CCS'16).
    [10]
    SCHOENEFELD, M. Denial-of-service holes in JDK 1.3.1 and 1.4.1 01. Retrieved Apr 26th, 2008, from http://www. illegalaccess.org/java/ZipBugs.php, 2003.
    [11]
    Gang Tan, Andrew W. Appel, Srimat Chakradhar, etc. Safe Java Native Interface. IEEE International Symposium on Secure Software Engineering, March 2006.

    Cited By

    View all
    • (2023)Detecting JVM JIT Compiler Bugs via Exploring Two-Dimensional Input SpacesProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00016(43-55)Online publication date: 14-May-2023

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SQUADE 2019: Proceedings of the 2nd ACM SIGSOFT International Workshop on Software Qualities and Their Dependencies
    August 2019
    38 pages
    ISBN:9781450368575
    DOI:10.1145/3340495
    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: 26 August 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Fuzz Test
    2. Java Native Interface
    3. Program Security Test
    4. System API
    5. Test Generator

    Qualifiers

    • Research-article

    Conference

    ESEC/FSE '19
    Sponsor:

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)15
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 28 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Detecting JVM JIT Compiler Bugs via Exploring Two-Dimensional Input SpacesProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00016(43-55)Online publication date: 14-May-2023

    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