Skip to content

Commit e92f80c

Browse files
david-a-wheelerbalteravishay
authored andcommittedMay 29, 2023
📖 Tweak Best Practices badge description to clarify things (ossf#2907)
* Tweak Best Practices badge description to clarify things Signed-off-by: David A. Wheeler <[email protected]> * Provided clearer message when there's no BP badge detected Signed-off-by: David A. Wheeler <[email protected]> * Remove extra line that shouldn't be there Signed-off-by: David A. Wheeler <[email protected]> --------- Signed-off-by: David A. Wheeler <[email protected]> Signed-off-by: Avishay <[email protected]>
1 parent 3b3b2c2 commit e92f80c

File tree

4 files changed

+20
-53
lines changed

4 files changed

+20
-53
lines changed
 

‎README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ Name | Description | Risk Level | Token Req
438438
[Binary-Artifacts](docs/checks.md#binary-artifacts) | Is the project free of checked-in binaries? | High | PAT, GITHUB_TOKEN | Fully Supported |
439439
[Branch-Protection](docs/checks.md#branch-protection) | Does the project use [Branch Protection](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | High | PAT (`repo` or `repo> public_repo`), GITHUB_TOKEN | Fully Supported | certain settings are only supported with a maintainer PAT
440440
[CI-Tests](docs/checks.md#ci-tests) | Does the project run tests in CI, e.g. [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | Low | PAT, GITHUB_TOKEN | Unsupported
441-
[CII-Best-Practices](docs/checks.md#cii-best-practices) | Does the project have an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org/en)? | Low | PAT, GITHUB_TOKEN | Fully Supported |
441+
[CII-Best-Practices](docs/checks.md#cii-best-practices) | Has the project earned an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org) at the passing, silver, or gold level? | Low | PAT, GITHUB_TOKEN | Fully Supported |
442442
[Code-Review](docs/checks.md#code-review) | Does the project practice code review before code is merged? | High | PAT, GITHUB_TOKEN | Fully Supported |
443443
[Contributors](docs/checks.md#contributors) | Does the project have contributors from at least two different organizations? | Low | PAT, GITHUB_TOKEN | Fully Supported |
444444
[Dangerous-Workflow](docs/checks.md#dangerous-workflow) | Does the project avoid dangerous coding patterns in GitHub Action workflows? | Critical | PAT, GITHUB_TOKEN | Unsupported |

‎checks/evaluation/cii_best_practices.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func CIIBestPractices(name string, _ checker.DetailLogger, r *checker.CIIBestPra
4141
var results checker.CheckResult
4242
switch r.Badge {
4343
case clients.NotFound:
44-
results = checker.CreateMinScoreResult(name, "no badge detected")
44+
results = checker.CreateMinScoreResult(name, "no effort to earn an OpenSSF best practices badge detected")
4545
case clients.InProgress:
4646
msg := fmt.Sprintf("badge detected: %v", r.Badge)
4747
results = checker.CreateResultWithScore(name, msg, inProgressScore)

‎docs/checks.md

+9-26
Original file line numberDiff line numberDiff line change
@@ -158,38 +158,21 @@ If a project's system was not detected and you think it should be, please
158158

159159
Risk: `Low` (possibly not following security best practices)
160160

161-
This check determines whether the project has earned an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org/),
162-
which indicates that the project uses a set of security-focused best development practices for open
161+
This check determines whether the project has earned an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org/) at the passing, silver, or gold level.
162+
The OpenSSF Best Practices badge indicates whether or not that the project uses a set of security-focused best development practices for open
163163
source software. The check uses the URL for the Git repo and the OpenSSF Best Practices badge API.
164164

165165
The OpenSSF Best Practices badge has 3 tiers: passing, silver, and gold. We give
166-
full credit to projects that meet the [gold criteria](https://bestpractices.coreinfrastructure.org/criteria/2), which is a
167-
significant achievement for many projects. Lower scores represent a project that
168-
is at least working to achieve a badge, with increasingly more points awarded as
169-
more criteria are met.
170-
171-
- [gold badge](https://bestpractices.coreinfrastructure.org/en/criteria/2): 10
172-
- [silver badge](https://bestpractices.coreinfrastructure.org/en/criteria/1): 7
173-
- [passing badge](https://bestpractices.coreinfrastructure.org/en/criteria/0): 5
174-
- in progress badge: 2
166+
full credit to projects that meet the [gold criteria](https://bestpractices.coreinfrastructure.org/criteria/2), which is a significant achievement for projects and requires multiple developers in the project.
167+
Lower scores represent a project that has met the silver criteria, met the passing criteria, or is working to achieve the passing badge, with increasingly more points awarded as more criteria are met. Note that even meeting the passing criteria is a significant achievement.
175168

176-
To earn the passing badge, the project MUST:
177-
178-
- publish the process for reporting vulnerabilities on the project site
179-
- provide a working build system that can automatically rebuild the software
180-
from source code (where applicable)
181-
- have a general policy that tests will be added to an automated test suite
182-
when major new functionality is added
183-
- meet various cryptography criteria where applicable
184-
- have at least one primary developer who knows how to design secure software
185-
- have at least one primary developer who knows of common kinds of errors
186-
that lead to vulnerabilities in this kind of software (and at least one
187-
method to counter or mitigate each of them)
188-
- apply at least one static code analysis tool (beyond compiler warnings and
189-
"safe" language modes) to any proposed major production release.
169+
- [gold badge](https://bestpractices.coreinfrastructure.org/criteria/2): 10
170+
- [silver badge](https://bestpractices.coreinfrastructure.org/criteria/1): 7
171+
- [passing badge](https://bestpractices.coreinfrastructure.org/criteria/0): 5
172+
- in progress badge: 2
190173

191174
Some of these criteria overlap with other Scorecard checks.
192-
175+
However, note that in those overlapping cases, Scorecard can only report what it can automatically detect, while the OpenSSF Best Practices badge can report on claims and claim justifications from people (this counters false negatives and positives but has the challenge of requiring additional work from people).
193176

194177
**Remediation steps**
195178
- Sign up for the [OpenSSF Best Practices program](https://bestpractices.coreinfrastructure.org/).

‎docs/checks/internal/checks.yaml

+9-25
Original file line numberDiff line numberDiff line change
@@ -255,37 +255,21 @@ checks:
255255
description: |
256256
Risk: `Low` (possibly not following security best practices)
257257
258-
This check determines whether the project has earned an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org/),
259-
which indicates that the project uses a set of security-focused best development practices for open
258+
This check determines whether the project has earned an [OpenSSF (formerly CII) Best Practices Badge](https://bestpractices.coreinfrastructure.org/) at the passing, silver, or gold level.
259+
The OpenSSF Best Practices badge indicates whether or not that the project uses a set of security-focused best development practices for open
260260
source software. The check uses the URL for the Git repo and the OpenSSF Best Practices badge API.
261261
262262
The OpenSSF Best Practices badge has 3 tiers: passing, silver, and gold. We give
263-
full credit to projects that meet the [gold criteria](https://bestpractices.coreinfrastructure.org/criteria/2), which is a
264-
significant achievement for many projects. Lower scores represent a project that
265-
is at least working to achieve a badge, with increasingly more points awarded as
266-
more criteria are met.
267-
268-
- [gold badge](https://bestpractices.coreinfrastructure.org/en/criteria/2): 10
269-
- [silver badge](https://bestpractices.coreinfrastructure.org/en/criteria/1): 7
270-
- [passing badge](https://bestpractices.coreinfrastructure.org/en/criteria/0): 5
271-
- in progress badge: 2
263+
full credit to projects that meet the [gold criteria](https://bestpractices.coreinfrastructure.org/criteria/2), which is a significant achievement for projects and requires multiple developers in the project.
264+
Lower scores represent a project that has met the silver criteria, met the passing criteria, or is working to achieve the passing badge, with increasingly more points awarded as more criteria are met. Note that even meeting the passing criteria is a significant achievement.
272265
273-
To earn the passing badge, the project MUST:
274-
275-
- publish the process for reporting vulnerabilities on the project site
276-
- provide a working build system that can automatically rebuild the software
277-
from source code (where applicable)
278-
- have a general policy that tests will be added to an automated test suite
279-
when major new functionality is added
280-
- meet various cryptography criteria where applicable
281-
- have at least one primary developer who knows how to design secure software
282-
- have at least one primary developer who knows of common kinds of errors
283-
that lead to vulnerabilities in this kind of software (and at least one
284-
method to counter or mitigate each of them)
285-
- apply at least one static code analysis tool (beyond compiler warnings and
286-
"safe" language modes) to any proposed major production release.
266+
- [gold badge](https://bestpractices.coreinfrastructure.org/criteria/2): 10
267+
- [silver badge](https://bestpractices.coreinfrastructure.org/criteria/1): 7
268+
- [passing badge](https://bestpractices.coreinfrastructure.org/criteria/0): 5
269+
- in progress badge: 2
287270
288271
Some of these criteria overlap with other Scorecard checks.
272+
However, note that in those overlapping cases, Scorecard can only report what it can automatically detect, while the OpenSSF Best Practices badge can report on claims and claim justifications from people (this counters false negatives and positives but has the challenge of requiring additional work from people).
289273
remediation:
290274
- >-
291275
Sign up for the [OpenSSF Best Practices program](https://bestpractices.coreinfrastructure.org/).

0 commit comments

Comments
 (0)