A Match Made in Heaven? Matching Test Cases and Vulnerabilities With the VUTECO Approach
Journal:
arXiv
Published Date:
Feb 5, 2025
Abstract
Software vulnerabilities are commonly detected via static analysis,
penetration testing, and fuzzing. They can also be found by running unit tests
- so-called vulnerability-witnessing tests - that stimulate the
security-sensitive behavior with crafted inputs. Developing such tests is
difficult and time-consuming; thus, automated data-driven approaches could help
developers intercept vulnerabilities earlier. However, training and validating
such approaches require a lot of data, which is currently scarce. This paper
introduces VUTECO, a deep learning-based approach for collecting instances of
vulnerability-witnessing tests from Java repositories. VUTECO carries out two
tasks: (1) the "Finding" task to determine whether a test case is
security-related, and (2) the "Matching" task to relate a test case to the
exact vulnerability it is witnessing. VUTECO successfully addresses the Finding
task, achieving perfect precision and 0.83 F0.5 score on validated test cases
in VUL4J and returning 102 out of 145 (70%) correct security-related test cases
from 244 open-source Java projects. Despite showing sufficiently good
performance for the Matching task - i.e., 0.86 precision and 0.68 F0.5 score -
VUTECO failed to retrieve any valid match in the wild. Nevertheless, we
observed that in almost all of the matches, the test case was still
security-related despite being matched to the wrong vulnerability. In the end,
VUTECO can help find vulnerability-witnessing tests, though the matching with
the right vulnerability is yet to be solved; the findings obtained lay the
stepping stone for future research on the matter.