-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce VEX Analysis Capability to DejaCode #15
Comments
@DennisClark Is it a must for every Product Package that has a vulnerability to have a VEX? ( should the admin create a vex or Is vex automatically created when there is a vulnerability related to this package ) |
@ziadhany Good question and good idea! In principle, there ought to be a VEX for each Product Package that has a vulnerability, so creating one automatically when the product package is originally created is a good idea, as long as the user has the ability to list, review, edit, and possibly delete VEXs. |
@DennisClark should we use a multiple choice field instead of free text for ( the main problem is that it is difficult to map our vex to CycloneDX vex using a text field
https://github.com/CycloneDX/bom-examples/blob/master/VEX/vex.json#L83 :
|
@ziadhany sorry for the delay in responding to your questions. |
@ziadhany multiple choice is best where appropriate, using the values defined by CycloneDX. |
We have (at least) 2 use cases then:
|
https://github.com/CycloneDX/bom-examples/tree/master/VEX#bom-with-embedded-vex from @DennisClark we need to do this further as far as the generated SBOM and not as a separate process or document |
Implemented in #187 Introduce a new VulnerabilityAnalysis model based on CycloneDX spec: https://cyclonedx.org/docs/1.6/json/#vulnerabilities_items_analysis |
Introduce VEX Support to DejaCode
Here are a few suggested details (subject to improvement upon review):
A VEX (Vulnerability Exploitability Exchange) is an assertion about the status of a vulnerability in specific products.
In DejaCode a VEX exists only in the context of a Product. Our first implementation of VEX support will apply to Product Packages Vulnerabilities
The standard VEX Status can be as defined for the “state” field in the CDX VEX spec
https://cyclonedx.org/docs/1.6/json/#vulnerabilities_items_analysis
DejaCode should support this VEX Status list. To avoid adding too much complexity to the data model, this could simply be coded into DejaCode, rather than creating a new VEX Status code table.
Given that a Product Package can have more than one vulnerability (VCID) and that a vulnerability can apply to more than one Product Package, it is probably best to consider defining each VEX in DejaCode as relating to a Product Package Vulnerability. Consider an on-demand process (button or command) in DejaCode that collects all the Vulnerabilities currently associated with Product Packages and creates or refreshes a list that we can call “Product VEX List” (working title) and presents them on a new tab (“VEX List”) of the Product User View.
The “logical” key of a Product VEX List is Product+VCID+PackageID (or perhaps Product+PackageID+VCID), and the presentation should be in that order, with one row for each Product VEX. Supporting data elements should include:
DejaCode Processing:
From the Product VEX list, ability to open a Product VEX detail form that includes the various VEX fields discussed above.
From the Product VEX list, provide a navigation link to the Product Package details.
Provide full support for Product VEX in Reporting.
Provide full support for Product VEX in the DejaCode API.
(future) Generate DejaCode Notifications when a Product VEX is created and when the VEX Status is modified. Provide a link to the Product VEX from the Notification.
Some useful files, background, and links:
See the example VEX at
There is a descriptive overview of the CycloneDX approach to VEX here
DejaCode supports SBOM with or without VEX, as well as VEX documents.
After we finish CycloneDX:
The CSAF standard format, recommended by the CycloneDX team, is described here:
https://www.oasis-open.org/2022/11/28/common-security-advisory-framework-version-2-0-oasis-standard-is-now-published/
The CSAF also provides a downloadable package of the spec here:
https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.zip
The most useful file in that package for us is probably csaf_json_schema.json
Additional guidelines from CISA 2023-11-06 attached.
When-to-Issue-a-VEX-508c.pdf.zip
Interesting commentary from Tom Alrich attached.
When will there be VEX tools.pdf
The text was updated successfully, but these errors were encountered: