-
Notifications
You must be signed in to change notification settings - Fork 40
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
Enforce use of affected in csaf_security_advisory
#672
Comments
I am not a big fan of this being enforced. It's easy to perhaps add a catch-all that anything before the fixed version is affected, but then you might also be implicitly including versions that might not be vulnerable because they were released before the vulnerability was introduced into the product. Figuring out the exact ranges of affected versions costs a lot of time in analysis. In a perfect world, we'd have this data already but that's just not the case, especially for older CVEs. It would be a considerable amount of effort to figure out the exact affected versions for CVEs from 2010 and earlier, and I'm not sure it's worth it at this point. Publishing the information on at least fixed versions is still valuable and I would strongly dislike to see us having to remove that information or hobble it somehow (by downgrading the files to a lesser state) just because of this requirement. |
@mprpic Thank you for your input. I see this question between the poles of keeping old data valid and encourage to produce better data for tomorrow. Just listing the fixed versions in security advisories makes matching very hard - how would they know that previous version should be deemed affected? Here is my suggestion: Profile X: Security AdvisoryThis profile SHOULD be used to provide information which is related to vulnerabilities, affected products and corresponding remediations. A CSAF document SHALL fulfill the following requirements to satisfy the profile "Security Advisory":
Profile Z: Historic Security AdvisoryThis profile SHOULD be used to provide information which is related to vulnerabilities and corresponding remediations. A CSAF document SHALL fulfill the following requirements to satisfy the profile "Historic Security Advisory":
Also a reference between the two profiles could be feasible: Profile X: Security AdvisoryThis profile SHOULD be used to provide information which is related to vulnerabilities, affected products and corresponding remediations. A CSAF document SHALL fulfill the following requirements to satisfy the profile "Security Advisory":
This would allow to keep historic security advisories labeled as "security advisories" and improve the situation for matching (as the requirement in the "Security Advisory" profile allows customers to request better data). |
(warning: mostly subjective opinions ahead 😉) By enforcing this in the standard, you're not encouraging, you're mandating 🙂 Also, marking something as "historic" makes it sound like it should be (or will soon be) deprecated, which, considering the majority of vendors out there aren't publishing version ranges and distinguish between affected and fixed, would make most advisories published today historic. Don't get me wrong, I'm all for improving the publishing of data that can lead to better automation, but it needs to happen via examples and real use cases, and needs to happen gradually. Most of the software industry (outside of security teams) doesn't currently see the value in diligently keeping track of this data so that it can be shared externally. Forcing them to do it won't explain the "why". Could this instead be turned into a specific Role? Meaning if you meet certain requirements of providing complete affectedness data, you can claim a Role of "Complete Data Provider" or something similar? In fact, the CVE Program is having a similar discussion about measuring the quality of CVE records to ensure they all contain at least one valid reference, CVSS metrics, a vulnerability type (via CWE, for example), and component identifiers (CPE being discussed). CSAF could adopt a similar approach and simply reward publishers that provide complete data with elevated status. |
I think we are on the same page but it looks like I did a bad job in explaining why I think this should be done exactly this way. I'll try to provide more details: Objectives:
I think the suggestion takes all of that into account:
I hope this makes it clearer, why I suggest this way. |
Don't we already have very similar requirements in the |
So if you want, we could change all the ones that just provide fixed product into |
Well, the security advisory profile merely states that you must have a non-empty |
If understood you correctly, it should look like this: Profile Z: Legacy Security AdvisoryThis profile SHOULD be used to provide information which is related to vulnerabilities and corresponding remediations. A CSAF document SHALL fulfill the following requirements to satisfy the profile "Legacy Security Advisory":
Also a reference between the two profiles could be feasible: Profile X: Security AdvisoryThis profile SHOULD be used to provide information which is related to vulnerabilities, affected products and corresponding remediations. A CSAF document SHALL fulfill the following requirements to satisfy the profile "Security Advisory":
Correct? |
Yes, the data requirements look right, except I'd prefer the names to be |
For reasons of pushing best practices, I think Profile Z should have a different name and Profile X should continue to use the |
Then maybe call the "legacy" one I personally would appreciate a name that doesn't portray a significant amount of development effort to publish CSAF security advisories to suddenly be considered "legacy" or "outdated" just because the rules changed around publishing certain fields :-) |
This issue has been futher discussed during the 2024-12-18 TC meeting and a call for action has been issued to continue the discussion and finalize in the January TC meeting. |
Some additional comments:
|
The motion to "Enforce the use of affected in We will proceed with the profile name of: |
What affect, if any, will this have on CSAF profile 4? |
The current (CSAF 2.0) profile "Security Advisory" will be renamed "Deprecated Security Advisory". A new (CSAF 2.1) profile "Security Advisory" will be introduced that contains the restriction. I hope that answers your question. |
Thank you Thomas. That answers my question. So CSAF 2.1 will continue to have a "Security Advisory" artifact with additional restrictions to ensure automated matching of SBOM components. That looks like a good enhancement/improvement to me. Thank you. |
Currently, we only enforce that a
csaf_security_advisory
has at least oneproduct_status
. That allows the production of CSAF security advisories with all products in statusfixed
. One might implicit assume that previous versions are affected. However, that is terrible for automated matching:If the advisory tells that Product A in version 4.2 is fixed and I have Product A but version 4.1 - the matcher can't tell me that I have an issue. Also, fixed products can't have remediations as they are fixed.
The easiest transition rule (CSAF 2.0=> CSAF 2.1) would be:
csaf_base
orThe text was updated successfully, but these errors were encountered: