Skip to content
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

CRAVEX: Vulnerability exploitability: re-rank for product context and policies #102

Closed
pombredanne opened this issue May 8, 2024 · 7 comments
Assignees
Labels
design needed Design details needed to complete the issue vulnerabilities Vulnerability Management

Comments

@pombredanne
Copy link
Member

pombredanne commented May 8, 2024

Re-rank the exploitability scores given the org and local app/product context and policies

@DennisClark
Copy link
Member

not sure I understand what is being re-ranked: specific vulnerabilities? specific packages? the vulnerable packages in a product inventory? (probably the last one i guess)

@DennisClark DennisClark added the vulnerabilities Vulnerability Management label Jun 19, 2024
@DennisClark DennisClark changed the title CRAVEX: Vulnerability exploitability: re-ranking CRAVEX: Vulnerability exploitability: re-rank for product context and policies Jun 24, 2024
@DennisClark DennisClark self-assigned this Jun 24, 2024
@DennisClark DennisClark added the design needed Design details needed to complete the issue label Jun 24, 2024
@pombredanne
Copy link
Member Author

pombredanne commented Nov 28, 2024

Here is my take:

Initial global context

Say we start from a DejaCode products with packages where we have identified known vulnerabilities, and we are getting scoring from VulnerableCode for each of these as they apply to the packages, and this in in abstract of the context of this specific product.

Product-specific context

Now, there are some packages may not be deployed, some may be modified, some may have a specific purpose. The product may be designated as private/internal, public, more or less critical. It may have specific characteristics that matter wrt. vulnerability exploitability: for instance a customer-facing web app, that is internet accessible may have a different profile than a ECU in car, or an embedded device for industrial control or an app on a phone.

Here we should have way to account for the Product-specific context to "re-rank" the exploitability.

For instance, if a package is not deployed in a product, the priority rank or order for this vulnerability in this package in this product should be lowered. If we have ranked list of vulnerabilities then this would move down.

Taking into account policies

It could be that a policy for a product or a global policy demands to address all vulnerabilities with a certain risk, exploitability or risk score threshold. And this could be then be used to change the order of issues.
There is design to do done here of course

@pombredanne
Copy link
Member Author

Here is a more specific design:

  1. A product item (package or component) has a Purpose
    class ProductItemPurpose(
  2. We could add an "exposure factor" field to each Purpose that would be a number between 0 and 10 (or a float between 0 and 1) where NULL/None would mean this is not set
  3. The actual risk inherited from a package vulnerability would be weighted by this exposure factor

As example, if a Product has a Junit package with a vulnerability and the computed vulnerability risk of 9 with a Purpose of test, and that the test purpose has an exposure factor of 0.1, then the re-ranked, re-evaluated risk for this Junit vulnerability in that specific Product would become something like 9 x 0.1 = 0.9... e.g., the purpose of a package in a product boosts or lessens the risk.

@DennisClark
Copy link
Member

DennisClark commented Dec 18, 2024

regarding the suggested design details:

  • I think we should settle on a float between 0.0 and 1.0 for the "exposure factor", which would then become new field in the "Product item purposes" table. I agree that it can default to an empty value, meaning not set.
  • reword the third point to something like "The actual product package risk would be inherited from a package vulnerability risk as weighted by the exposure factor in the context of the package purpose in the product."

@DennisClark
Copy link
Member

DennisClark commented Dec 18, 2024

Suggested help text for "exposure factor"
A number between 0.0 and 1.0 that identifies the vulnerability exposure risk of a package as it is actually used in the context of a product, with 1.0 being the highest exposure risk and 0.0 being no exposure risk at all.

@DennisClark
Copy link
Member

DennisClark commented Dec 19, 2024

The new "weighted" risk score value would replace the current non-factored risk score on the Product Vulnerabilities tab. If there has not been any exposure factor assigned to the corresponding Purpose, the non-factored Package risk is used.

Suggested new help text for the Risk on the Product Vulnerabilities tab:

Risk score from 0.0 to 10.0, with higher values indicating greater vulnerability risk. This score is the maximum of the weighted severity multiplied by exploitability, capped at 10, which is then multiplied by the associated exposure risk factor assigned to the product package purpose (when available).

(and yes, class, there will be a quiz on this soon ...) suggestions to make the definition easier to understand are welcome!

tdruez added a commit that referenced this issue Dec 19, 2024
tdruez added a commit that referenced this issue Dec 20, 2024
tdruez added a commit that referenced this issue Dec 20, 2024
tdruez added a commit that referenced this issue Dec 20, 2024
tdruez added a commit that referenced this issue Dec 20, 2024
tdruez added a commit that referenced this issue Dec 20, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 23, 2024
tdruez added a commit that referenced this issue Dec 24, 2024
tdruez added a commit that referenced this issue Dec 24, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 24, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 24, 2024
tdruez added a commit that referenced this issue Dec 24, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 24, 2024
tdruez added a commit that referenced this issue Dec 24, 2024
tdruez added a commit that referenced this issue Dec 24, 2024
tdruez added a commit that referenced this issue Dec 27, 2024
tdruez added a commit that referenced this issue Dec 27, 2024
tdruez added a commit that referenced this issue Dec 27, 2024
tdruez added a commit that referenced this issue Dec 27, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 27, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 27, 2024
tdruez added a commit that referenced this issue Dec 27, 2024
Signed-off-by: tdruez <[email protected]>
tdruez added a commit that referenced this issue Dec 27, 2024
@tdruez
Copy link
Contributor

tdruez commented Dec 27, 2024

Implemented in #218

  • Add exposure_factor field to the ProductItemPurpose model and a weighted_risk_score
    on the ProductPackage model.
    The weighted_risk_score is computed from the package.risk_score and
    purpose.exposure_factor values.

  • Add the vulnerability icon in Product list view.
    A "Is Vulnerable" filter is also available.
    The count in the Vulnerability tab was improved to include the count of affected
    packages and the count of unique vulnerabilities.
    Note that those count reflect the current risk threshold.

@tdruez tdruez closed this as completed Dec 27, 2024
@pombredanne pombredanne moved this from Done to Validated in 03-CRAVEX Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design needed Design details needed to complete the issue vulnerabilities Vulnerability Management
Projects
Status: Validated
Development

No branches or pull requests

3 participants