jeremylong / DependencyCheck

OWASP dependency-check is a software composition analysis utility that detects publicly disclosed vulnerabilities in application dependencies.
https://owasp.org/www-project-dependency-check/
Apache License 2.0
6.34k stars 1.27k forks source link

Direct osv.dev and/or GHSA support #6540

Open chadlwilson opened 6 months ago

chadlwilson commented 6 months ago

Is your feature request related to a problem? Please describe.

Currently, the challenges with the NVD program are very much in people's minds (courtesy of @marcelstoer)

As a result of the NVD analysis delays, the utility of ODC for some language ecosystems has decreased very markedly for discovery of new vulnerabilities (for those where it supports only NVD + OSSIndex, especially Java where ODC is one of the few tools that are Gradle/Maven-aware enough to work on transitives without lockfiles (as required by osv-scanner & GitHub; but still uncommon in the Java ecosystem).

While we hope the NVD can get back on its feet, there still seems utility in evaluating how we could expand ODC to complement with alternate sources as risk mitigation, even where they are less "indepedent" than an NVD or OSSIndex analysis, and don't come with a maintainer-independent assessment of the CVSS base score.

6039 has been raised focused on addressing the false positive problem with current CPE heuristics, however I felt it perhaps sensible to have a more "direct" report or opportunity for discussion.

Describe the solution you'd like

Support for use of the osv.dev database via database dumps, otherwise co-erced or interpreted into the ODC formats.

Describe alternatives you've considered

Additional context

Is there perhaps any call-to-action / call-for-help the maintainers would like to communicate to the community? Personally I'm quite conscious that ODC also can feel at times like it might be similar to the NVD in this image, so am unsure how realistic this is.

_I believe courtesy of both xkcd and someone from the NIST Support Open Letter_

marcelstoer commented 6 months ago

I don't want this to turn into a broad "let's use source X" discussion, but I feel that GSD should maybe be added to the list of alternatives.

chadlwilson commented 3 months ago

Related to https://github.com/jeremylong/Open-Vulnerability-Project/issues/70

jeremylong commented 2 months ago

I have been planning to move to a different data source for a while. Doing so would have many benefits. I haven't started this effort as it will be a non-trivial effort.

When selecting a data source the biggest concern is how the local DB can be easily updated. The OSV datadumps don't appear to have any index of what was updated recently - so you just have to download the entire thing when you want to update? Or am I missing something?

If we go with just the straight GHSA, the open-vulnerability-client already has the capability. Plus everything in GHSA has the equivalent of a PURL so there would be way fewer FP.

GSD is interesting, we'd have to basically git pull to update the local files and then process the new/updated items. However, this has the problem that many of the entries have the equivalent of a CPE, not a PURL. As such, we'd still end up with more fuzzy matching that results in FP.