-
Notifications
You must be signed in to change notification settings - Fork 5
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
Draft: OQS security response process #124
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Spencer Wilson <[email protected]>
Signed-off-by: Spencer Wilson <[email protected]>
Signed-off-by: Spencer Wilson <[email protected]>
ffad71c
to
746fb6e
Compare
|
||
COMMENT: | ||
We should confirm that all of the members of the VMT | ||
(1) receive some sort of notification when a GitHub security advisory is filed on any OQS repo and (2) have the necessary permissions to view security advisories. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"any OQS repo" -- No. Suggest to agree on a subset. Ideally only those with a diverse, active contributor base which can play ball, err, handle problems (to stay in the picture, there should be more linebackers for that project than quarterbacks)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We haven't enabled vulnerability reporting on all OQS repositories. So really this can be turned into a point about only turning on security vulnerability reporting on repositories that we have a sufficient base to support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I meant (and probably should have clarified) was that we should make sure we're aware of all vulnerability reports, whichever repo they're filed on. For instance, if we have security advisories enabled for oqs-demos, it's possible we'll receive a report there that is pertinent to liboqs, even though (I imagine) we won't offer any sort of security policy for the demos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, now I get it. Honestly I wasn't aware that security advisories are enabled for all, even ancillary, sub projects... Out of curiosity: When was that decided and how does this fit to this statement
we won't offer any sort of security policy for the demos.
? I would agree to this statement, but then I don't understand this statement now:
it's possible we'll receive a report there that is pertinent to liboqs
AFAIK we didn't enable reporting security issues for demos, right? Just the publication of advisories (which is a weird combination, honestly).
I think this ties to #2 (comment): What is it that @dstebila labels "fully supported" ? Having a security policy and everything as per this conversation that goes with it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly I wasn't aware that security advisories are enabled for all, even ancillary, sub projects... Out of curiosity: When was that decided and how does this fit to this statement
Looking in the Settings tab on Github for oqs-demos, I don't see any option to enable/disable security advisories -- perhaps it's always enabled?
I think this ties to #2 (comment): What is it that @dstebila labels "fully supported" ? Having a security policy and everything as per this conversation that goes with it?
The criteria you stated at the top of #2 defined "Fully supported (at least 2 fully committed maintainers)" which is what I applied. If you want to add having a security policy to that, or other things, I'm open to that, but that probably belongs in the discussion on #2.
Pravek is now the Quarterback for the report. | ||
|
||
COMMENT: | ||
Do we want to commit to a reponse timeline? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. But with the proposed "up next" approach, this cannot be guaranteed, depending on priorities, travel plans or other shenanigans.. I'd thus propose that the rotation changes by time (as and when a person is certain to be responsive) not by event ("up next").
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your point Michael. I think it would be important to make sure the quarterback knows that they're on duty. This could be done by a schedule (say, monthly; with an email coming from me at the start of each month letting them know they're on duty) or it could be that the one of the tasks of the quarterback is to pass the baton to the next quarterback by emailing them once the current quarterback is activated for an issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we go for a time-based rotation, we could do a 5-week cadence and "pass the baton" at TSC meetings (all of the current VMT regularly attends those).
I proposed the "up next" approach mostly to distribute work in the event that we receive two or three reports in a short time span.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also think it should just be a scheduled rotation. While the up-next approach seems nice from a load balancing perspective, I think what would realistically happen is long stretches of time go by with one person designated as the up-next person, and then per this line:
Members of the VMT should inform the team when they will be unresponsive
They would just end up doing more out-of-office bookkeeping to keep the team informed of their availability than actual QBing. Eventually human nature will take over and the person forgets they are up-next entirely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we go for a time-based rotation, we could do a 5-week cadence and "pass the baton" at TSC meetings (all of the current VMT regularly attends those).
This sounds like a good solution to me, it also provides the flexibility to skip a candidate if they are unavailable during the specified time period.
The Quarterback identifies the person or people who are most qualified to assess the report and, if necessary, develop a fix. | ||
The Quarterback provides them with all necessary information. | ||
These domain experts may not be members of the VMT, but they should be people whom the VMT trusts to handle security-related information. | ||
It is possible that the Quarterback will also be the team member who is most qualified to assess the issue. In this case, the Quarterback may request that the "up next" member of the VMT assume the role of Quarterback, allowing the original Quarterback to focus on the technical aspects of the response process. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't that make matters even more complicated? Instead of focusing on the issue, the Quarterback is to be exchanged? To stay in the picture, why shouldn't the QB be allowed to run towards the end zone? Admitted, if there's a strong defense, not advisable -- but for OQS there's hardly anyone on the playing field.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My intention was to potentially speed up the response process by separating management and technical responsibilities, so that the QB doesn't get swamped (especially if we go with a time-based rotation and the same person is handling multiple reports concurrently). Note that it's an optional swap and the original QB would still be involved: they would just be focusing solely on remediation development as opposed to managing the response process.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same thought as just voiced elsewhere: Are we overdoing things here? We have received how many security reports, exactly? We have how many players on the field? My gut feeling is that the work on "security issues" is going to go down from here as more and more serious(ly supported) software packages include PQC and current OQS users with a need for reliable (read: paid-for) software maintenance will accordingly switch over to such packages.
I'd thus suggest to no over-engineer things here: What about adding simple wording like "members of the VMT agree to be available to support each other on short notice if the need arises" for any "unforeseen issue" (like overload or whatever else)?
Whether or not a security release is required is left to the discretion of the VMT. | ||
|
||
COMMENT: | ||
Apart from publishing the security advisory, should we publicize the fix in any other way? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the OQS website we have some text saying that people can email me to request to be added to a security notification list. Is this something we should continue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's a good idea—not everybody uses GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we have some text saying that people can email me to request to be added to a security notification list.
No, the text says that an email should be sent to the same "security@" email address: This warrants two questions: 1) Did you create such list (and do you want to keep maintaining it), @dstebila and 2) should this wording be retained (or a split done into a reporting email address (that all of VMT receives) and a "interested party registration" email list (that only people subscribing to things like GDPR receive)?
not everybody uses GitHub
Agreed. So having such mechanism is "nice and kind" -- but comes at a cost (e.g., documenting it here, on the website and then "living" it)... I'm afraid we're overdoing things here: A company taking money for its software of course does this, but this is a completely non-committal project entirely without funding for people doing actual work or chores like this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we have some text saying that people can email me to request to be added to a security notification list.
No, the text says that an email should be sent to the same "security@" email address: This warrants two questions: 1) Did you create such list (and do you want to keep maintaining it), @dstebila and 2) should this wording be retained (or a split done into a reporting email address (that all of VMT receives) and a "interested party registration" email list (that only people subscribing to things like GDPR receive)?
You're right, not me personally but to security@. Yes, I have been keeping track of such requests and have a textfile on my computer containing about half a dozen addresses. Possibly we could move this over to a mailing list on @lists.pqca.org so that that system manages the subscription and privacy concerns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shall I ask Ry to set up an [email protected] mailing list? And then I can contact all the people who have asked to be added to our list and point them to the new mailing list.
Co-authored-by: Douglas Stebila <[email protected]> Signed-off-by: Spencer Wilson <[email protected]>
Signed-off-by: Spencer Wilson <[email protected]>
| Bug | Let the reporter know this is unwanted behavior but not a security issue, and ask them to refile this as a bug. Close the security issue. | | ||
| Feature request | Let the reporter know this is the intended behavior. If they think this behavior could be improved, they can file a feature request. Close the security issue. | | ||
| Vulnerability | Let the reporter know that you have confirmed this unwanted behavior creates a security issue. Proceed with the process. | | ||
| Out of scope | Let the reporter know that the issue lies in upstream code packaged by OQS. Assist them in refiling the report upstream. See the following section for further actions. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are there other scenarios that would be considered out of scope? For instance, could a vulnerability outside the OQS threat model be classified as such?
Spencer confirmed the report's findings and responded to the reporters on GitHub on 6 November. | ||
The vulnerability was present in upstream code (https://pqc-hqc.org) and pulled into the library via PQClean. | ||
Spencer notified the "main" and "backup" contacts listed on the upstream source's website after coordinating with the reporters. | ||
The only subproject directly affected (by including vulnerable code) was liboqs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know this report is closed and dealt with, but re-reading it makes me wonder: If liboqs
is affected, wouldn't that imply that at least the language wrappers are also affected automatically? Also oqsprovider
makes available HQC code if I'm not mistaken. So in case of a more severe problem with liboqs
what would such problem mean for dependent OQS sub projects? Should that be spelled out somewhere?
Decisions on whether or not to proceed with a possible patch should be made taking into account specifics of the upstream source. | ||
These include responsiveness to vulnerability reports and ability of the upstream maintainers to develop a patch. | ||
It is also important to consider the impact on end-users. | ||
A longer response time can be tolerated for an experimental algorithm than for a standardized or standard-track algorithm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where do we spell out which algorithms fall into which category?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've created open-quantum-safe/liboqs#2045 to track this.
|
||
#### Determining affected subprojects | ||
|
||
Part of the assessment should involve determining which subprojects are affected by the issue and how to fix the vulnerability throughout the OQS suite. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a follow-up to my previous comment: Are all sub projects to be checked or are there some we don't consider (oqs-demos? ci-containers? profiling?). I'd guess that should also be spelled out ahead of time so the responsible committers and maintainers can agree on their involvement (level). And if indeed a vulnerability should be fixed "througout the OQS suite", all steps to do so should be clear -- either in writing for manual execution or as an automation/script.
|
||
Development on the private fork proceeds more or less as on public OQS GitHub repos, with one notable exception: | ||
Due to current limitations on GitHub security advisories, the private fork will not have access to OQS CI. | ||
Therefore, thorough testing of the patch should be performed offline. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. This calls for a script to do that, e.g., executing all CI commands locally (and for all sub projects deemed affected): TBD.
Signed-off-by: Spencer Wilson <[email protected]>
This PR proposes a security response process for OQS. Please read it over and provide feedback. I expect it will undergo a fair bit of revision, but hopefully this gives us a starting point.
I have left a number of comments requesting feedback on specific points throughout the document. These are clearly marked by COMMENT. I'll keep the PR in draft until all of these are removed.
Closes #60.