Proposal:

Provide notices on project pages where none of the commit-enabled maintainers are a Git vetted users.

Proposal:
Once we implement the proposal listed in #2453587: [policy, no patch] Changes to the project application review process, it will be possible for non-vetted users to create full projects and releases. Security coverage will become an opt-in process for project maintainers, so we will need to strongly indicate on project pages whether a project receives coverage from the security team.

Remaining Tasks:

  • Finalize the text for the notification messages.
  • Create and finalize visual mockups of the notification on a project page.
  • Implement the notification message on all affected project pages.

Current Suggested notification wording (up for discussion):
For non-covered projects:
"This project has not opted into coverage from the Security Team.
It may have publicly disclosed vulnerabilities. Use at your own risk!"

For covered projects:
"This project receives coverage from the Drupal Security Team on stable releases.
Look for the shield icon in the release table below"

Visual Mockups

A project without security coverage:

A project with security coverage:

Implementation Details
Implementation would take place in the drupalorg_project submodule within the Drupalorg module.

Comments

jthorson’s picture

Title: Finalize text for 'non-vetted user' and 'no security advisory coverage' messages, to be displayed on project pages. » Finalize text for 'non-vetted user' message, to be displayed on project pages.
Issue summary: View changes
jthorson’s picture

Project: Drupal.org ProjectApps Customizations » Drupal.org customizations
Version: » 7.x-3.x-dev
kattekrab’s picture

Issue summary: View changes
StatusFileSize
new186 bytes
kattekrab’s picture

Issue summary: View changes
StatusFileSize
new177.05 KB
kattekrab’s picture

I had a stab at a mockup and added it to the Issue Summary and I just I took a guess at which page that notification should link to for "more information.

Rationale for placement.

This text is about the maintainers of the project - so it made sense to me to post it under the maintenance status

Another option here might simply be add a new category: "Maintainance status: Actively maintained by novice maintainers"

A third alternative could be in the sidebar. I'll have a go at that next.

jthorson’s picture

Issue summary: View changes
kattekrab’s picture

Issue summary: View changes
StatusFileSize
new165.4 KB
kattekrab’s picture

Issue summary: View changes
StatusFileSize
new157.93 KB

Here's a screengrab with that hacked in via inspect element

Which location works best for this notification?

kattekrab’s picture

Issue summary: View changes
StatusFileSize
new31.52 KB
kattekrab’s picture

Status: Active » Needs review

now - let's get a few more eyeballs here, shall we?

Needs review.

kattekrab’s picture

StatusFileSize
new178.35 KB

Alternative for the Project information section.

It may be easier to insert the notification above the UL rather than in the middle of it.

kattekrab’s picture

David_Rothstein’s picture

Why is this needed at all?

When it was discussed in #2453587: [policy, no patch] Changes to the project application review process as far as I recall it was only in the context of warning people that the project doesn't get security team support, e.g. from that issue summary:

The project page will have a visible indicator that the project is maintained by a non-vetted user, including text that the project is not subject to Security Advisories.

But then we realized that warning about every project that doesn't get security advisories would be better; there is no reason to limit it to non-vetted users.

So what's the reason for wanting to add an additional message?

I think it will be very hard to come up with wording here that doesn't come across like "this person probably writes bad code", which is definitely not the message that should be sent.

drumm’s picture

If we stick with this, I'd expect this to be in the main content area, not the sidebar.

Maybe this should be flipped around to add a positive indication that maintainer(s) are vetted?

catch’s picture

Maybe this should be flipped around to add a positive indication that maintainer(s) are vetted?

That would be better if every vetted git user had actually been vetted, but most of us were grandfathered in from the old 'ask for cvs access in irc and get it' system.

hestenet’s picture

Sitting in a room at NOLA with jthorson talking about this:

Here's some suggested text - with the goal of being more concise and not using too much coded language.

This project is not eligible for stable releases, because the maintainers have not yet been through Drupal.org’s volunteer peer review process.

Per @kattekrab, I think the sidebar under maintainers makes sense. The blue background seems good (although eventually it'd be great to have @DyanneNova take a pass at the whole page).

I'd also suggest that the link to "For more information...." should go on a page that the maintainers see, since that info is more valuable to them than to the user evaluating a project - so something like the create release page.

hestenet’s picture

Added a new issue for providing a message to maintainers about how to become vetted to edit releases: #2721251: Update security advisory policy for project coverage option

hestenet’s picture

kattekrab’s picture

@hestenet - yes to all of that! :)

hestenet’s picture

Title: Finalize text for 'non-vetted user' message, to be displayed on project pages. » Finalize text for 'Project does not have security coverage' message, to be displayed on project pages.
Issue summary: View changes
StatusFileSize
new391.97 KB
new391.35 KB

Per the recent updates to the Project Application Revamp proposal, the kind of messaging we need can be, I think, much clearer.

Because we are now going to separate the ability to make releases from the ability to opt into security coverage, the signal we should send here can be much clearer.

Here are two mock-ups of a project with security coverage, and one without:

The shield icon strongly indicates coverage, and the text next to it can link off to information about the security team.

The shield icon in dotted red draws attention, and the text warns users of the risks of using a project without security coverage.

I am somewhat concerned about how strongly the signal will come through for the visually impaired, so we should take some time to think about these messages with respect to accessibility. Hopefully the text itself will be sufficient for users of a screen reader.

drumm’s picture

For #786702: Add information about releases covered by security advisories to project pages near download table, I over-thought this and coded up checking if there are full releases currently showing on the project page. Turns out that isn’t needed right now. In case it is in the future:

    // Get “Recommended” API compatibilities that can be shown on the project
    // page.
    $query = new EntityFieldQuery();
    $recommended_term_result = $query->entityCondition('entity_type', 'taxonomy_term')
      ->fieldCondition('field_release_recommended', 'value', 1)
      ->execute();
    // Get “Supported” release NIDs in supported branches.
    $recommended_releases = db_query('SELECT recommended_release FROM {project_release_supported_versions} WHERE nid = :nid AND supported = 1 AND tid IN (:tids)', [
      ':nid' => $node->nid,
      ':tids' => array_keys($recommended_term_result['taxonomy_term']),
    ])->fetchCol();
    // Check if those releases have extra versions, like alpha42 or dev.
    $query = new EntityFieldQuery();
    $with_extra_release_count = $query->entityCondition('entity_type', 'node')
      ->entityCondition('bundle', project_release_release_node_types())
      ->propertyCondition('status', 1)
      ->propertyCondition('nid', $recommended_releases)
      ->fieldCondition('field_release_version_extra', 'value', '', '<>')
      ->count()->execute();
    if (count($recommended_releases) - $with_extra_release_count > 0) {
      // If there are full releases, recommended without extra.
      $output['items']['security']['#markup'] = t('yep');
    }
    else {
      // No full releases.
      $output['items']['security']['#markup'] = t('nope');
    }
drumm’s picture

StatusFileSize
new60.93 KB

Here’s my take on the implementation for covered projects:

Screenshot

That text is:

Stable releases receive coverage from the Drupal Security Team.
Look for the shield icon below.

I rewrote the text a bit to be more concise, link to more information (too many links?), and removed mention of the downloads specifically being a table.

killes@www.drop.org’s picture

I would prefer a more conservative wording regarding what the sec team actually does. We don't really "provide coverage".

We get the maintainers to fix issues once somebody else finds them and release advisories.

"providing coverage" would IMO imply that we review all the releases. We don't do that.

mlhess’s picture

I think we need to remove the stable release coverage message if no releases are stable. It should be replaced with a message.

gábor hojtsy’s picture

The problem with saying "coverage" is that https://www.drupal.org/security-advisory-policy the page it links to does not have the word "coverage" at all. So no clear definition for what this word means.

Anonymous’s picture

I agree with #25. I clicked the link to the security advisory policy but didn't gather what "coverage" was, similarly with clicking the link to the security team.

I hadn't seen the text for the opposite/no coverage, that seems to do a better job in the first sentence, however I believe the second sentence "Use at your own risk!" is also applicable to ones with coverage as they're not covered for a number of reasons including but not exclusively security. IMHO I believe it's fine with the first sentence as there's always a risk with changing a system.

"It may have publicly disclosed vulnerabilities. Use at your own risk!"

For the ones with coverage, a simple explanation of "coverage" is needed, something like:

"If a vulnerability is discovered by the Drupal Security Team it is included in our security advisory policy"

To me, there should be no emphasis on implying the code is secure in any way whatsoever, at the moment it seems to me that it does.

podarok’s picture

I'm not sure if anybody missed this on purpose, but, need to put my 5 cents here

After having a conversation with Steve https://twitter.com/stevepurkiss/status/770920061192273921

The main concern is that you are creating a "Security coverage" for software. But software is not vulnerable. This is a main issue of shifting point of view. We see the same in Gun Control around the world. The guns are not violent, the people do.
The same rule works about a software. And I'm relying here not only on gun control, but on code review process from our company.
By blaming(or making it starred with some nice "It is secured" badge) software we are loosing the main point - bugs and security issues introduced by people.
And only by marking that, somehow, for example - just put the number of security issues to the profile of the guy - and all should be fine.
Otherwise we'll get a risk of corruption, lack of responsibility ( we have now security team, that cares about, why bother? )

I know, there are a lot of cultural differences, but playing with security and removing personal responsibility is wrong.
I'm from Ukraine, I know what I'm saying...

Anonymous’s picture

I disagree with #27 for all sorts of reasons however I shall stick on-topic, and that's what text should be put on projects which do not have coverage from the security team.

On the other topics of it being about people and adding to their profiles and guns, well that's an entirely different topic, if anyone can point as to where these could be / are being discussed that would be good, personally I think it is about the code and for a whole load of reasons we shouldn't be targeting individuals because of some insecure code they may or may have not written.

When it comes to marketing speak, it is all nice to have comforting icons, my fear is out there in userland everyone has a different idea of what 'security' means so this text needs to be clear, and even though I've used Drupal for nigh on 13 years I found it difficult to understand what it meant at a glance, and that's what an icon / graphical representation is intended to do.

So I stick to my suggestion that any indication of secure code needs to be carefully looked at in case it gives the wrong idea, as the repercussions could be, well, a big PITA!

killes@www.drop.org’s picture

@25 "If a vulnerability is discovered by the Drupal Security Team it is included in our security advisory policy"

This is just the wording I would want to avoid, since it IMO implies that the team is actively searching for vulnerabilities. It is not and people need apparently to understand that better.

Anonymous’s picture

@29 my words were just a suggestion, so sounds like we need to elaborate on how a vulnerability would be discovered by the DST.

I will have a look again, as I understand it they deal with being notified of security issues, so perhaps it needs to say

If our security team is notified of a security issue affecting this project and upon investigation it is found to be a valid one then it is included in our security advisories

Perhaps something a little more succinct, but needs to be truth-full.

Anonymous’s picture

...although saying it's not about the people, looking back over the comments in this issue I do a bit like the idea from @kattekrab in #5 re maintenance status, I don't think that's too overly critical to say the level of maintenance of a project:

Another option here might simply be add a new category: "Maintainance status: Actively maintained by novice maintainers"

but presumably that's for another issue too...

podarok’s picture

re #28

I apologise if my wording is not quite well, I'm looking mostly from marketing and big picture points of view....

> for a whole load of reasons
by hiding those reasons we can head to the community where authority means more than a real security and quality. In some cases this could be fine, but I'm worrying about long term...

> a big PITA!
thanks for that.

> When it comes to marketing speak, it is all nice to have comforting icons,

If this is topic is about marketing, than would be awesome if the resulting message and look is also reviewed by the technical guys. Because all these nice and pretty-kitty icons over 80+ modules that I'm maintaining right show totally wrong story.
Nobody contacted me about review process,
The modules are not secure, period. The only icon that could be set there is - reviewed by security team XX days ago.

re #29
> This is just the wording I would want to avoid, since it IMO implies that the team is actively searching for vulnerabilities. It is not and people need apparently to understand that better.

Agree with this ^^^

Anonymous’s picture

So sounds like we're all on the same page then, all we have to do now is work out suitable wording that doesn't imply the code is secure.

I'm not sure if the origins are marketing or not - to me anything graphical is marketing so just called it that :D

Perhaps we do need to spell it out then, although I'm not sure whether or not it would be approved ;)

"This DOES NOT MEAN THE CODE IS SECURE".

Perhaps a bullet list of ticks and crosses saying exactly what this shield does mean.

podarok’s picture

#33 like

Anonymous’s picture

So I had a read through of the two pages linked to from the shield, the most I could gather from these is that a shield means the following in terms of ticks and crosses:

ticks

  • security issues reported to the security team and deemed to need advising publicly for stable releases of supported major branches

crosses

  • development releases (dev, alphaX, betaX, rcX)
  • vulnerabilities requiring advanced permissions

These all need to link to further info about each one, and I'm sure there needs to be more in the list however that's all I could see without reading further than the two URIs linked to from the text by the shield, which is what we are discussing here.

I do think there needs to be some kind of fly-out info bubble / box by the side / middle page / whatever which explains what a shield means, your customers will love you for it in the long run. Looks like module maintainers will do too ;)

mrf’s picture

Newcomers to this issue should also make sure to check out #786702: Add information about releases covered by security advisories to project pages near download table where initial discussions about the best way to word these messages happened.

jthorson’s picture

When discussed at NOLA (and before), the issue with the word coverage was covered in depth. This is what led us to landing on "receive security advisory coverage"; which should be less likely to infer that the project is secure, and explicitly states what *is* covered (i.e. Security Advisories if/when a vulnerability is reported).

killes@www.drop.org’s picture

@jthorson maybe my understanding of the finer points of the meaning of the word "coverage" is simply wrong. ;)

If that's so, a simpler word should be chosen *and/or* the meaning should be explained on the page.

Anonymous’s picture

OK well I had a skim through the 100+ comments of that 6 year old issue but most seemed to be about the reasoning as opposed to the final text, perhaps that was the discussions at NOLA.

Now the shield is out of the echo chamber & in the wild it seems to be an issue certainly as seen here with one maintainer of many modules and me, the generally concerned.

I don't want to be stepping on toes I just think it needs further clarification as I believe it infers security of code.

I guess it's up to those potentially more affected than me to continue, I have other things which need my focus more.

mrf’s picture

To me, this issue and the one I linked to has pointed out a general misunderstanding by the wider Drupal community of what exactly the security team does for contrib. My anecdotal experience has been that only people that have worked with the sec team on an issue in one of their contrib modules really understand the whole process.

This text and the docs it links to are a great opportunity to help educate the rest of the community about what coverage means.

I linked that other issue to show that this has been long-discussed and debated, this issue makes it seem more like it fell from the sky one day without the customary bikeshed.

Anonymous’s picture

Oh, I understand what the security team does. I also understand what they don't do, and I also think those two links go to documents which are not directly explaining what the coverage is, they seem highly technical from the viewpoint of a person like my friend who has just started out using Drupal.

So I guess this issue is furthering the bikeshedding as stuff moves along the chain from creators to users.

For me the shield made me think there was more coverage than there is, hence why it was a surprise. I agree highlighting what the security team do is a Good Thing but think there is a way to go yet which could potentially be solved by highlighting a few key points as opposed to the current two links which seem more of a well didn't you read the terms and conditions well its your fault kinda thing for the unacquainted.

But maybe I'm wrong, I'm willing to accept that if that's the case, I guess only time will tell.

pingwin4eg’s picture

Title: Finalize text for 'Project does not have security coverage' message, to be displayed on project pages. » Finalize text for 'Project have security coverage' message, to be displayed on project pages
Issue tags: +Needs issue summary update

Ok, let's recall the facts.

The security process (in general):

  1. Someone finds the security issue and reports it to the security team.
  2. Security team resolves that issue and posts the advisory.

Conclusions.

The message should be obvious and clear to all-leveled users. Here's an example of the message that mirrors the actual security process:

Reported security issues in releases marked with the shield icon are reviewed and resolved by the Drupal security team.

If you find a security issue in one of these releases you are encouraged to report it directly to the Drupal security team [link].

If you find a security issue in any other release please submit a [public] issue in this project's issue queue [this is only if project has issues enabled].

P.S.: I'm not sure whether the security team reviews the whole project. I always thought that they review only the reported issue, no more. And in that case we cannot display "when" the project was last reviewed by the security team, because it's only one issue.

killes@www.drop.org’s picture

We don't actually resolve the issue. We try to get the maintainer to do that and review the proposed solution.

And yes, we do *not* review the whole project.

We may check whether an issue is applicable to several branches/versions (D7, D8, ...) of a projects.

drumm’s picture

If you find a security issue in any other release please submit a [public] issue in this project's issue queue [this is only if project has issues enabled].

If there is any full release, it is best to report to security.drupal.org. Issues in a non-full release are likely enough to also be in the full releases. Being overly-cautious here is good.

This bit of text doesn’t need to cover reporting issues. There's the “Report a security vulnerability” link in the sidebar and the create issue form also mentions security. This is targeted toward general people building sites.

Adding “security advisory”, like jthorson reminded us of, makes sense to me:

Stable releases receive security advisory coverage from the Drupal Security Team.
Look for the shield icon below.

Sure, “coverage” is still there, but it applies to advisory instead of Team. I probably edited it down a bit too ruthlessly in trying to be more concise.

gábor hojtsy’s picture

Indeed, security advisory coverage aligns much better with what is actually happening vs. security team coverage which is not a term defined outside of this message. At least while coverage is still not defined elsewhere, security advisory is :)

Anonymous’s picture

Indeed in the absence of a quick overview of what it all means for the lesser entrenched this sounds much better. I would just slim down the coverage of the link a little:

Stable releases receive security advisory coverage from the Drupal Security Team.
Look for the shield icon below.

drumm’s picture

Title: Finalize text for 'Project have security coverage' message, to be displayed on project pages » Draft text for security advisory coverage messages

I committed that change to the dev branch, which will be deployed later today.

David_Rothstein’s picture

I suggest tweaking it to something like:

Stable releases are covered by the security advisory policy.
Look for the shield icon below.

or:

Stable releases get security advisories if a vulnerability is found.
Look for the shield icon below.

(These are similar to some of the text we discussed originally at #786702: Add information about releases covered by security advisories to project pages near download table a few years ago.)

I don't see a need to mention "Drupal Security Team" here (and especially not to link to it, since there should really only be one link for the user to focus on). But the page that is linked to (https://www.drupal.org/security-advisory-policy) would definitely benefit from a "What is a security advisory?" paragraph at the top that explains in simple language what a security advisory is and how that relates to the Drupal Security Team.

Also (and as others noted above) the current project page text is unclear in the case where the module has no stable releases at all. It tells you to look for the shield icon below, but there is none below; however there is still a shield icon next to the text you're reading. So overall it's possible to get confused about whether that project is covered by the security policy or not. To improve that (and assuming the big red icon thing from #20 isn't happening), it would be nice if "Look for the shield icon below" were to be replaced with "This project does not have any stable releases" in that scenario. (This could be a separate issue if necessary, since it's more than just a simple text change.)

drumm’s picture

I had a similar thought after I posted my last comment. I committed the first option and will be deploying shortly.

  • drumm committed 7a798b7 on 7.x-3.x
    Issue #2035277 by jthorson: Clarify security coverage message on project...
  • drumm committed f52f5ac on 7.x-3.x
    Issue #2035277 by David_Rothstein: Clarify security coverage message on...
drumm’s picture

Status: Needs review » Fixed

Merging this current draft from the issue summary, with an added link, into #2787165: Add security advisory coverage field to projects

This project has not opted into coverage from the Security Team.
It may have publicly disclosed vulnerabilities. Use at your own risk!

Since the first half of the messaging has been deployed, any further changes can be discussed there.

David_Rothstein’s picture

I took a stab at editing https://www.drupal.org/security-advisory-policy to explain what a security advisory is (as I suggested above in #48).

Here is the change I made: https://www.drupal.org/node/475848/revisions/view/9776727/10218686

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.