project_distribution, project_module, project_theme, project_theme_engine should get a new field for security team coverage with values “Covered”, “Not covered”, “Unsupported due to security issue”
- All current projects with at least one stable D7+ release will be moved to “Covered”
- If there is not a stable release, we will email the maintainer when this is rolled out.
- New projects will default to “Not covered”.
- Only “Git vetted” users can mark their own project, not co-maintainers, “Covered”.
- Once a project is marked “Covered”, it can only be changed by Security team members.
- The field can be changed 10 days after the project has been created.
- A message explaining this on the project page, along with an “not shielded” icon. See #2035277: Draft text for security advisory coverage messages.
This project is not covered by security advisory policy.
It may have publicly disclosed vulnerabilities. Use at your own risk! - Update status XML feeds need to include the new status (as a new element so they are backward compatible). #2766491: Update status should indicate whether installed contributed projects receive security coverage
- Update documentation at https://www.drupal.org/security-advisory-policy
Followups
#2825906: Encourage security coverage by emailing maintainers
#2825912: Rename “Git vetted user” role to “Opt into security advisory coverage”
#2825908: Move security team coverage from per-project to per-branch
| Comment | File | Size | Author |
|---|---|---|---|
| #29 | Screen Shot 2017-02-16 at 2.44.48 PM.png | 29.4 KB | drumm |
Comments
Comment #2
drummComment #3
drummComment #4
drummComment #5
mlhess commentedComment #6
drummComment #7
mlhess commentedComment #8
drummComment #9
drummAdding draft from #2035277: Draft text for security advisory coverage messages to the issue summary.
Comment #10
drummComment #11
drummSplitting #2825906: Encourage security coverage by emailing maintainers into a separate issue.
Comment #12
drummWe agreed to a shorter new project waiting period at DrupalCon Dublin.
Comment #13
drummAdding the (currently stub) followup #2825908: Move security team coverage from per-project to per-branch.
Comment #14
drummI think this is enough information to start implementing this.
Comment #15
drummOne more followup, #2825912: Rename “Git vetted user” role to “Opt into security advisory coverage”. Since that involves updating quite a bit of documentation, and is a place to signal changes to the project application process, I’d like to see it taken on with that project.
Comment #16
drummI’m not starting the implementation here soon, just triaging issues.
Comment #17
drummThis should be implemented after #2457643: Only allow releases with security coverage to be recommended.
Comment #18
David_Rothstein commentedBased on discussion in #2035277: Draft text for security advisory coverage messages the text for the first sentence should actually be more like "This project is not covered by the security advisory policy."
Comment #19
hestenetComment #20
drummUpdating to replace team with advisory. Thanks for the reminder David_Rothstein.
I plan to do an initial deployment later this week, just showing the field on project edit.
For the project page, we might want an alternative bit of copy for the "Unsupported due to security issue" state.
Comment #22
drummThe commit above adds the field and logic around the editing form. It contains a few bits of copyediting seen by project maintainers and Security Team members that could use proofreading.
Comment #24
hestenetI think I've pulled out all the relevant bits of language from those commits:
Suggestion: 'Unsupported due to unresolved security issue. What does this mean?' - linking to a page that explains that security coverage is revoked if maintainers fail to cooperate with the security team to resolve security issues in a timely fashion.
Suggestion: 'Read & understand the policy! Once you opt-in your project, you may not opt-out. Only the Security Team will be able to change this.'
Suggestion: Would it be more clear to say 'May opt into security advisory coverage for projects'? many people will have this role, but it almost implies that if you have the role your projects will all be opted in. (especially since that's kinda sorta how the old process worked).
Question: what do we mean by 'notice of discontinuing coverage should be given to users' - do we mean 'When changing this, the security team will require you as a maintainer to notify your users" ? Do we mean that a message will be posted to the update status? I think we should be more clear who's responsible for the communication, whether it is automated or manual, and where it will be made.
Suggestion: none - this looks good.
Suggestion: none - this looks good.
Suggestion: Maaaybe: t('You must be given access to opt into security advisory coverage for your projects. Learn how to apply', ['!url' => url('project/projectapplications')]); -- but it may be fine as is.
Suggestion: Might be nice to give a why? 'New projects must wait 10 days before opting into security advisory coverage, as this is often a period of flux for a new project's codebase. Please take this time to review writing secure code.', ['!url' => url('writing-secure-code')]);
Question: sounds like we mean literally new - but if they're newly promoted they can opt in on day 1?
Leaving on needs review because some security team input would be good.
Comment #25
drummWe haven’t done this process yet, but the general idea is that when a previously-covered project becomes unsupported, there will probably be a public security issue in the long run, if there isn’t one already. This isn’t quite an SA, but the Security Team does have a responsibility to inform users, potentially using all the communication channels like update status and/or an SA or PSA email.
Yes, that’s my understanding from the various meetings, and easy to implement. (We don’t have an easily-accessible project promotion time, other than scrubbing through the project’s revision history.)
The general reason why is that slowing people down hopefully gives them time to improve their project and a chance to consider more things they might not have spotted yet. We might want to link to https://www.drupal.org/node/7765 too.
Comment #26
hestenetAh - that makes sense - in that case I'd suggest the language be more specific if we can be.
Suggestion: "Only Security Team members may change coverage. A security advisory should be posted to notify users that the project is no longer receiving security advisory coverage."
Re: 10 day wait:
Cool - that sounds good to me then - just wanted to clarify
Comment #28
drummCommitted most of hestenet’s suggestions. I did err on the side of vagueness, like “A security advisory
shouldmay be posted” since the policy isn’t set at https://www.drupal.org/security-advisory-policy yet.Comment #29
drummhttps://drumm-drupal.dev.devdrupal.org/project/bad_judgement has the UI on project pages for review.
Comment #32
drummThe first phase has been deployed, the field on editing project. The display on public project pages will come next.
Now is a good time to update the value for special projects like https://www.drupal.org/project/bad_judgement and friends. And update the policy at https://www.drupal.org/security-advisory-policy.
Comment #35
drummThis has been deployed: https://www.drupal.org/project/bad_judgement
There is one last part - putting something in update status XML
Comment #36
drummThe XML is not a small followup, so it gets a fresh issue: #2853696: Add security advisory coverage to update status XML
Comment #38
shrop commenteddrumm mentioned updating docs at https://www.drupal.org/security-advisory-policy. I think part of the update should include some info and/or link to a page discussing the opt-in process. A project maintainer may not realize what the message really means and what options are available. Since the link from the new feature goes to https://www.drupal.org/security-advisory-policy, that could be the place to mention it.
Maybe the info about the opt-in process is out there already and we just need to add a link to https://www.drupal.org/security-advisory-policy?