SMINER: Detecting Unrestricted and Misimplemented Behaviors of Software Systems Based on Unit Test Cases
Source abstract
Abstract
Despite the advances in automated vulnerability detection approaches, security vulnerabilities caused by design flaws in software systems are continuously appearing in real-world systems. Such security design flaws can bring unrestricted and misimplemented behaviors of a system and can lead to fatal vulnerabilities such as remote code execution or sensitive data leakage. Therefore, it is an essential task to discover unrestricted and misimplemented behaviors of a system. However, it is a daunting task for security experts to discover such vulnerabilities in advance because it is time-consuming and error-prone to analyze the whole code in detail. Also, most of the existing vulnerability detection approaches still focus on detecting memory corruption bugs because these bugs are the dominant root cause of software vulnerabilities. This paper proposes SMINER, a novel approach that discovers vulnerabilities caused by unrestricted and misimplemented behaviors. SMINER first collects unit test cases for the target system from the official repository. Next, preprocess the collected code fragments. SMINER uses pre-processed data to show the security policies that can occur on the target system and creates a test case for security policy testing. To demonstrate the effectiveness of SMINER, this paper evaluates SMINER against Robot Operating System (ROS), a real-world system used for intelligent robots in Amazon and controlling satellites in National Aeronautics and Space Administration (NASA). From the evaluation, we discovered two real-world vulnerabilities in ROS.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Advanced Malware Detection Techniques · Software Testing and Debugging Techniques · Software Engineering Research
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (34)
Show source-provided references
1. Directed greybox fuzzing
2. Heartbleed, The Heartbleed Bug, https://heartbleed.com/, 2021.
3. Semfuzz: Semantics-based automatic generation of proof-of-concept exploits
4. One technique is not enough: A comparison of vulnerability discovery techniques
5. Runtime detection of zero-day vulnerability exploits in contemporary software systems
6. NIST, Shellshock vulnerability, https://nvd.nist.gov/vuln/detail/CVE-2014-6271, 2021.
7. REDQUEEN: Fuzzing with input-to-state correspondence
8. Hawkeye: Towards a desired directed grey-box fuzzer
9. An empirical assessment of security risks of global android banking apps
10. Finding architectural flaws using constraints
11. NASA, 2020 CWE top 25 most dangerous software weaknesses, https://www.nasa.gov/viper/lunar-operations, 2021.
12. Anomaly detection in computer networks: A state-of-the-art review
13. CWE. 2020 CWE top 25 most dangerous software weaknesses, https://cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html, 2021.
14. Detecting real faults in the gson library through search-based unit test generation
15. CodeAlchemist: Semantics-aware code generation to find vulnerabilities in JavaScript engines
16. A Type-based formal specification for cryptographic protocols
17. Towards detecting and classifying network intrusion traffic using deep learning frameworks
18. Program-adaptive mutational fuzzing
19. Slowfuzz: Automated domainindependent detection of algorithmic complexity vulnerabilities
20. Neuzz: Efficient fuzzing with neural program smoothing
21. Optimizing seed selection for fuzzing
22. Intriguer: Field-level constraint solving for hybrid fuzzing
23. Dowsing for overflows: A guided fuzzer to find buffer boundary violations
24. IoTFuzzer: Discovering memory corruptions in IoT through appbased fuzzing
25. Matryoshka: Fuzzing deeply nested branches
26. Learning to fuzz ´ from symbolic execution with application to smart contracts
27. Tainting-assisted and context-migrated symbolic execution of android framework for vulnerability discovery and exploit generation10.1109/TMC.2019.2936561 ↗
28. Learning to fuzz from symbolic execution with application to smart contract
29. Detecting cross-site scripting vulnerabilities through automated unit testing
30. Sysevr: A framework for using deep learning to detect software vulnerabilities
31. Automatic testing of program security vulnerabilities
32. O’Kane · A Gentle Introduction to ROS · 2014
33. Symbolic execution with symcc: Don’t interpret, compile!
34. Automated vulnerability detection in source code using deep repr1esentation learning