
OpenSSF Scorecard - Sicherheits-Gesundheitsmetriken für Open Source
Wir haben Scorecard entwickelt, um Open-Source-Maintainern zu helfen, ihre Sicherheitspraktiken zu verbessern, und um Open-Source-Nutzern zu helfen, zu beurteilen, ob ihre Abhängigkeiten sicher sind.
Scorecard ist ein automatisiertes Tool, das eine Reihe wichtiger Heuristiken ("Prüfungen") im Zusammenhang mit Softwaresicherheit bewertet und jeder Prüfung eine Punktzahl von 0-10 zuweist. Sie können diese Punktzahlen nutzen, um spezifische Bereiche zu identifizieren, die verbessert werden müssen, um die Sicherheitslage Ihres Projekts zu stärken. Sie können auch die Risiken bewerten, die Abhängigkeiten mit sich bringen, und fundierte Entscheidungen treffen, ob Sie diese Risiken akzeptieren, alternative Lösungen evaluieren oder mit den Maintainern zusammenarbeiten, um Verbesserungen zu erzielen.
Die Inspiration für das Logo von Scorecard: "You passed! All D's ... and an A!"
Analyse und Vertrauensentscheidungen über die Sicherheitslage von Open-Source-Projekten automatisieren.
Diese Daten nutzen, um proaktiv die Sicherheitslage der kritischen Projekte zu verbessern, von denen die Welt abhängt.
Als Messinstrument für bestehende Richtlinien dienen
Wenn OSS-Konsumenten bestimmte Verhaltensweisen von ihren Abhängigkeiten verlangen, kann Scorecard verwendet werden, um diese zu messen. Mit der V5-Version sehen wir strukturierte Ergebnisse als eine Möglichkeit, dies zu tun, wenn es eine unterstützte Analyse gibt. Anstatt sich auf eine Gesamtpunktzahl von X/10 oder einen Maintained-Score von Y/10 zu verlassen, möchte ein OSS-Konsument möglicherweise sicherstellen, dass das Repository, von dem er abhängt, nicht archiviert ist (was durch die archived-Sonde abgedeckt wird). Die OpenSSF verfolgt diesen Ansatz mit ihrer eigenen Sicherheitsbasislinie für Projekte.
Ein endgültiger Bericht oder eine Anforderung zu sein, der alle Projekte folgen sollten.
Scorecard ist nicht als Allheilmittel gedacht. Jeder Schritt zur Erstellung unserer Ergebnisse ist subjektiv: welche Prüfungen ein- oder ausgeschlossen werden, die Bedeutung jeder Prüfung und wie die Punktzahlen berechnet werden. Die Prüfungen selbst sind Heuristiken; es gibt False Positives und False Negatives.
Ob aufgrund der Anwendbarkeit, der Machbarkeit oder einer Meinungsverschiedenheit, was in die Scorecard-Ergebnisse aufgenommen oder ausgeschlossen wird, führt zu vielen Diskussionen. Es ist unmöglich, eine Scorecard zu erstellen, die alle zufriedenstellt, da verschiedene Zielgruppen sich für unterschiedliche Teilbereiche des Verhaltens interessieren.
Aggregierte Punktzahlen sagen insbesondere nichts darüber aus, welche einzelnen Verhaltensweisen ein Repository zeigt oder nicht zeigt. Viele Prüfungspunktzahlen werden zu einer einzigen Punktzahl aggregiert, und es gibt mehrere Wege, um zu derselben Punktzahl zu gelangen. Diese Punktzahlen ändern sich, wenn wir neue Heuristiken hinzufügen oder bestehende verfeinern.
Scorecard wurde auf Tausenden von Projekten ausgeführt, um Sicherheitsmetriken zu überwachen und zu verfolgen. Bekannte Projekte, die Scorecard verwenden, sind:
Um die Punktzahlen für Projekte zu sehen, die regelmäßig von Scorecard gescannt werden, navigieren Sie zum Web-Viewer. Sie können auch den Platzhaltertext (Plattform, Benutzer/Org und Repository-Name) im folgenden Vorlagen-Link ersetzen, um einen benutzerdefinierten Scorecard-Link für ein Repository zu generieren:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
Zum Beispiel:
Um Punktzahlen für Projekte anzuzeigen, die nicht im Web-Viewer enthalten sind, verwenden Sie die Scorecard CLI.
Wir führen wöchentlich einen Scorecard-Scan der 1 Million kritischsten Open-Source-Projekte durch, bewertet nach ihren direkten Abhängigkeiten, und veröffentlichen die Ergebnisse in einem BigQuery-öffentlichen Datensatz.
Diese Daten sind im öffentlichen BigQuery-Datensatz openssf:scorecardcron.scorecard-v2 verfügbar. Die neuesten Ergebnisse sind in der BigQuery-Ansicht openssf:scorecardcron.scorecard-v2_latest verfügbar.
Sie können die Daten mit dem BigQuery Explorer abfragen, indem Sie zu Daten hinzufügen > Ein Projekt nach Namen mit einem Stern markieren > 'openssf' navigieren.
Sie könnten zum Beispiel daran interessiert sein, wie sich die Punktzahl eines Projekts im Laufe der Zeit verändert hat:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
Sie können die neuesten Ergebnisse im JSON-Format in den Google Cloud-Speicher extrahieren, indem Sie das [`bq`](https://cloud.google.com/bigquery/docs/bq-command-line-tool) Tool verwenden:```
# Get the latest PARTITION_ID
bq query --nouse_legacy_sql 'SELECT partition_id FROM
openssf.scorecardcron.INFORMATION_SCHEMA.PARTITIONS WHERE table_name="scorecard-v2"
AND partition_id!="__NULL__" ORDER BY partition_id DESC
LIMIT 1'
# Extract to GCS
bq extract --destination_format=NEWLINE_DELIMITED_JSON
'openssf:scorecardcron.scorecard-v2$<partition_id>' gs://bucket-name/filename-*.json
Die Liste der Projekte, die überprüft werden, ist in der Datei
cron/internal/data/projects.csv
in diesem Repository verfügbar. Wenn Sie möchten, dass wir weitere Projekte verfolgen, senden Sie uns bitte
einen Pull Request mit anderen. Derzeit basiert diese Liste ausschließlich auf Projekten,
die auf GitHub gehostet werden. Wir planen, sie in naher Zukunft zu erweitern, um
Projekte zu berücksichtigen, die auf anderen Versionskontrollsystemen gehostet werden.
Der einfachste Weg, Scorecard für eigene GitHub-Projekte zu verwenden, ist die Scorecard GitHub Action. Die Aktion wird bei jeder Repository-Änderung ausgeführt und gibt Warnmeldungen aus, die Maintainer im Security-Tab des Repositorys einsehen können. Weitere Informationen finden Sie in den Installationsanweisungen der Scorecard GitHub Action.
Um vorberechnete Bewertungen von OSS-Projekten abzufragen, verwenden Sie die REST API.
Bewertungen aus unserem wöchentlichen Scan lassen die Überprüfungen CI-Tests,
Contributors und Dependency-Update-Tool aus, aufgrund der API-Kosten,
die mit dem Betrieb in großem Maßstab verbunden sind.
API-Ergebnisse werden mit einem CDN zwischengespeichert (dank Fastly und ihrem Fast Forward-Programm). Ergebnisse werden aus dem CDN entfernt, sobald neue Ergebnisse verfügbar sind. Falls Sie Probleme mit veralteten Daten bemerken, eröffnen Sie bitte ein Issue.
Um Ihr Projekt für die REST API verfügbar zu machen, setzen Sie
publish_results: true
in der Scorecard GitHub Action-Einstellung.
Die von der REST API bereitgestellten Daten sind unter der CDLA Permissive 2.0-Lizenz lizenziert.
Die Aktivierung von publish_results: true
in Scorecard GitHub Actions ermöglicht es Maintainern außerdem, ein Scorecard-Badge auf ihrem Repository anzuzeigen, um ihre harte
Arbeit zu präsentieren. Dieses Badge wird automatisch bei jeder Änderung des Repositorys aktualisiert. Weitere Details finden Sie in diesem OSSF-Blogbeitrag.
Um ein Badge in das Repository Ihres Projekts aufzunehmen, fügen Sie einfach den folgenden Markdown-Code in Ihre README ein:```
### Scorecard Kommandozeilenschnittstelle
Um einen Scorecard-Scan für Projekte durchzuführen, die Sie nicht selbst besitzen, verwenden Sie die Installationsoption der Kommandozeilenschnittstelle.
#### Voraussetzungen
Plattformen: Derzeit unterstützt Scorecard die Plattformen OSX und Linux. Wenn Sie ein Windows-Betriebssystem verwenden, können Probleme auftreten. Beiträge zur Unterstützung von Windows sind willkommen.
Sprache: Sie müssen GoLang installiert haben, um Scorecard auszuführen (https://golang.org/doc/install)
#### Installation
##### Docker
`scorecard` ist als Docker-Container verfügbar:```shell
docker pull ghcr.io/ossf/scorecard:latest
Um eine bestimmte Scorecard-Version zu verwenden (z.B. v3.2.1), führen Sie aus:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### Eigenständig
Um Scorecard eigenständig zu installieren:
Besuchen Sie unsere neueste [Release-Seite](https://github.com/ossf/scorecard/releases/latest) und
laden Sie die richtige ZIP-Datei für Ihr Betriebssystem herunter.
Fügen Sie die Binärdatei zu Ihrem `GOPATH/bin`-Verzeichnis hinzu (verwenden Sie `go env GOPATH`, um Ihr Verzeichnis bei Bedarf zu identifizieren).
###### Überprüfung der SLSA-Provenienz für heruntergeladene Releases
Wir generieren [SLSA3-Signaturen](https://slsa.dev) unter Verwendung des [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) der OpenSSF während des Release-Prozesses. Um eine Release-Binärdatei zu überprüfen:
1. Installieren Sie das Überprüfungstool von [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. Laden Sie die Signaturdatei `attestation.intoto.jsonl` von der [GitHub-Releases-Seite](https://github.com/GoogleContainerTools/jib/releases/latest) herunter.
3. Führen Sie den Verifizierer aus:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHub erzwingt API-Ratenbegrenzungen für nicht authentifizierte Anfragen. Um diese Begrenzungen zu vermeiden, müssen Sie Ihre Anfragen authentifizieren, bevor Sie Scorecard ausführen. Es gibt zwei Möglichkeiten, Ihre Anfragen zu authentifizieren: entweder erstellen Sie ein persönliches Zugriffstoken (Personal Access Token) für GitHub, oder Sie erstellen eine GitHub App-Installation.
public_repo zu wählen. Setzen Sie das Token in einer Umgebungsvariable namens
GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN oder GH_TOKEN mit den
unten stehenden Befehlen entsprechend Ihrer Plattform.```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
ODER
- [Create a GitHub App Installation](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
für höhere Ratenbegrenzungskontingente. Wenn Sie eine installierte GitHub-App und eine
Schlüsseldatei haben, können Sie die drei unten stehenden Umgebungsvariablen verwenden, indem Sie die
oben für Ihre Plattform gezeigten Befehle (`set` oder `export`) befolgen.```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
Diese Variablen können auf der GitHub-Seite [Entwicklereinstellungen] (https://github.com/settings/apps) bezogen werden.
Scorecard kann mit nur einem Argument ausgeführt werden, der URL des Ziel-Repositorys:```shell scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e
```shell
Starting [CII-Best-Practices]
Starting [Fuzzing]
Starting [Pinned-Dependencies]
Starting [CI-Tests]
Starting [Maintained]
Starting [Packaging]
Starting [SAST]
Starting [Dependency-Update-Tool]
Starting [Token-Permissions]
Starting [Security-Policy]
Starting [Signed-Releases]
Starting [Binary-Artifacts]
Starting [Branch-Protection]
Starting [Code-Review]
Starting [Contributors]
Starting [Vulnerabilities]
Finished [CI-Tests]
Finished [Maintained]
Finished [Packaging]
Finished [SAST]
Finished [Signed-Releases]
Finished [Binary-Artifacts]
Finished [Branch-Protection]
Finished [Code-Review]
Finished [Contributors]
Finished [Dependency-Update-Tool]
Finished [Token-Permissions]
Finished [Security-Policy]
Finished [Vulnerabilities]
Finished [CII-Best-Practices]
Finished [Fuzzing]
Finished [Pinned-Dependencies]
RESULTS
-------
Aggregate score: 7.9 / 10
Check scores:
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Binary-Artifacts | no binaries found in the repo | github.com/ossf/scorecard/blob/main/docs/checks.md#binary-artifacts |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | |
| | | release branches | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | CI-Tests | no pull request found | github.com/ossf/scorecard/blob/main/docs/checks.md#ci-tests |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | CII-Best-Practices | no badge found | github.com/ossf/scorecard/blob/main/docs/checks.md#cii-best-practices |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Code-Review | branch protection for default | github.com/ossf/scorecard/blob/main/docs/checks.md#code-review |
| | | branch is enabled | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Contributors | 0 different companies found -- | github.com/ossf/scorecard/blob/main/docs/checks.md#contributors |
| | | score normalized to 0 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Dependency-Update-Tool | no update tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Fuzzing | project is not fuzzed in | github.com/ossf/scorecard/blob/main/docs/checks.md#fuzzing |
| | | OSS-Fuzz | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 1 / 10 | Maintained | 2 commit(s) found in the last | github.com/ossf/scorecard/blob/main/docs/checks.md#maintained |
| | | 90 days -- score normalized to | |
| | | 1 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Packaging | no published package detected | github.com/ossf/scorecard/blob/main/docs/checks.md#packaging |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 8 / 10 | Pinned-Dependencies | unpinned dependencies detected | github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies |
| | | -- score normalized to 8 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | SAST | no SAST tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#sast |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Security-Policy | security policy file not | github.com/ossf/scorecard/blob/main/docs/checks.md#security-policy |
| | | detected | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Signed-Releases | no releases found | github.com/ossf/scorecard/blob/main/docs/checks.md#signed-releases |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Token-Permissions | tokens are read-only in GitHub | github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions |
| | | workflows | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Vulnerabilities | no vulnerabilities detected | github.com/ossf/scorecard/blob/main/docs/checks.md#vulnerabilities |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
Das GITHUB_AUTH_TOKEN muss auf einen gültigen Token gesetzt werden.```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
Um eine bestimmte Version der Scorecard zu verwenden (z.B. v3.2.1), führe Folgendes aus:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
Für weitere Details dazu, warum eine Prüfung fehlschlägt, verwenden Sie die Option --show-details:```
./scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e --checks Branch-Protection --show-details
```shell
Starting [Pinned-Dependencies]
Finished [Pinned-Dependencies]
RESULTS
-------
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DETAILS | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | Info: 'force pushes' disabled | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | on branch 'main' Info: 'allow | |
| | | release branches | deletion' disabled on branch | |
| | | | 'main' Info: linear history | |
| | | | enabled on branch 'main' Info: | |
| | | | strict status check enabled | |
| | | | on branch 'main' Warn: status | |
| | | | checks for merging have no | |
| | | | specific status to check on | |
| | | | branch 'main' Info: number | |
| | | | of required reviewers is 2 | |
| | | | on branch 'main' Info: Stale | |
| | | | review dismissal enabled on | |
| | | | branch 'main' Info: Owner | |
| | | | review required on branch | |
| | | | 'main' Info: 'administrator' | |
| | | | PRs need reviews before being | |
| | | | merged on branch 'main' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
Maintainer Annotations ermöglichen es Betreuern, Kontext hinzuzufügen, der neben den Scorecard-Prüfergebnissen angezeigt wird. Anmerkungen können Benutzern zusätzliche Informationen liefern, wenn Scorecard eine unvollständige Bewertung der Sicherheitspraktiken eines Projekts hat. Um die Anmerkungen der Betreuer für jede Prüfung zu sehen, verwenden Sie die Option --show-annotations.
Weitere Informationen zu verfügbaren Anmerkungen oder zur Erstellung von Anmerkungen finden Sie in der Konfigurationsdokumentation.
Um Scorecard in einem GitLab-Repository auszuführen, müssen Sie einen GitLab Access Token mit folgenden Berechtigungen erstellen:
read_apiread_userread_repositorySie können Scorecard in einem GitLab-Repository ausführen, indem Sie die Umgebungsvariable GITLAB_AUTH_TOKEN setzen:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
Für ein Beispiel zur Verwendung von Scorecard in GitLab CI/CD siehe [hier](https://gitlab.com/ossf-test/scorecard-pipeline-example).
###### Selbst gehostete Editionen
Während wir uns auf den GitLab.com-Support konzentrieren, funktioniert Scorecard auch mit selbst gehosteten GitLab-Installationen.
Wenn Ihre Plattform auf einer Subdomain gehostet wird (z. B. `gitlab.foo.com`), sollte Scorecard sofort einsatzbereit sein.
Wenn Ihre Plattform unter einem Pfad gehostet wird (z. B. `foo.com/bar/`), müssen Sie die Umgebungsvariable `GL_HOST` setzen.```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
Um einen GitHub Enterprise Host github.corp.com zu nutzen, verwenden Sie die Umgebungsvariable GH_HOST.```shell
export GH_HOST=github.corp.com export GITHUB_AUTH_TOKEN=token
scorecard --repo=github.corp.com/org/repo
scorecard --repo=org/repo
##### Verwendung eines Paketmanagers
Für Projekte in den Ökosystemen `--npm`, `--pypi`, `--rubygems` oder `--nuget` haben Sie die Möglichkeit, Scorecard mit einem Paketmanager auszuführen. Geben Sie den Paketnamen an, um die Prüfungen auf dem entsprechenden GitHub-Quellcode durchzuführen.
Zum Beispiel `--npm=angular`.
Hinweis: Die Flags für die Paketökosysteme dienen nur dazu, ein GitHub-Repository zu finden. Diese Flags ändern nicht die endgültige Bewertung für die Prüfungen.
Darüber hinaus können die Flags nicht zusammen mit `--repo` verwendet werden.
##### Ausführen bestimmter Prüfungen
Um nur bestimmte Prüfungen auszuführen, fügen Sie das Argument `--checks` mit einer Liste von Prüfungsnamen hinzu.
Zum Beispiel `--checks=CI-Tests,Code-Review`.
##### Formatierung der Ergebnisse
Die derzeit unterstützten Formate sind `default` (Text) und `json`.
Diese können mit dem Flag `--format` angegeben werden. Zum Beispiel `--format=json`.
## Prüfungen
### Scorecard-Prüfungen
Die folgenden Prüfungen werden standardmäßig alle gegen das Zielprojekt ausgeführt:
Name | Beschreibung | Risikostufe | Erforderlicher Token | GitLab-Unterstützung | Hinweis
----------- | ----------------------------------------- | ---------- | --------------- | -------------- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | Ist das Projekt frei von eingecheckten Binärdateien? | Hoch | PAT, GITHUB_TOKEN | Unterstützt |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | Verwendet das Projekt [Branch Protection](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | Hoch | PAT (`repo` oder `repo> public_repo`), GITHUB_TOKEN | Unterstützt (siehe Hinweise) | bestimmte Einstellungen werden nur mit einem Maintainer-PAT unterstützt
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | Führt das Projekt Tests in CI aus, z.B. [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | Niedrig | PAT, GITHUB_TOKEN | Unterstützt
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | Hat das Projekt ein [OpenSSF (ehemals CII) Best Practices Badge](https://www.bestpractices.dev) auf bestandenem, silbernem oder goldenem Niveau erhalten? | Niedrig | PAT, GITHUB_TOKEN | Validierung |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | Führt das Projekt Code-Reviews durch, bevor Code gemerged wird? | Hoch | PAT, GITHUB_TOKEN | Unterstützt |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | Hat das Projekt Mitwirkende aus mindestens zwei verschiedenen Organisationen? | Niedrig | PAT, GITHUB_TOKEN | Validierung |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | Vermeidet das Projekt gefährliche Codierungsmuster in GitHub Action-Workflows? | Kritisch | PAT, GITHUB_TOKEN | Nicht unterstützt |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | Verwendet das Projekt Werkzeuge, um seine Abhängigkeiten zu aktualisieren? | Hoch | PAT, GITHUB_TOKEN | Unterstützt |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | Verwendet das Projekt Fuzzing-Werkzeuge, z.B. [OSS-Fuzz](https://github.com/google/oss-fuzz), [QuickCheck](https://hackage.haskell.org/package/QuickCheck) oder [fast-check](https://fast-check.dev/)? | Mittel | PAT, GITHUB_TOKEN | Validierung
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | Deklariert das Projekt eine Lizenz? | Niedrig | PAT, GITHUB_TOKEN | Validierung |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | Ist das Projekt mindestens 90 Tage alt und wird es gewartet? | Hoch | PAT, GITHUB_TOKEN | Validierung |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | Deklariert und pinnt das Projekt [Abhängigkeiten](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)? | Mittel | PAT, GITHUB_TOKEN | Validierung |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | Baut und veröffentlicht das Projekt offizielle Pakete aus CI/CD, z.B. [GitHub Publishing](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages) ? | Mittel | PAT, GITHUB_TOKEN | Validierung |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | Verwendet das Projekt statische Code-Analyse-Werkzeuge, z.B. [CodeQL](https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository#enabling-code-scanning-using-actions), [LGTM (veraltet)](https://lgtm.com), [SonarCloud](https://sonarcloud.io)? | Mittel | PAT, GITHUB_TOKEN | Nicht unterstützt |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | Enthält das Projekt eine [Sicherheitsrichtlinie](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository)? | Mittel | PAT, GITHUB_TOKEN | Validierung |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | Signiert das Projekt [Veröffentlichungen](https://wiki.debian.org/Creating%20signed%20GitHub%20releases) kryptografisch? | Hoch | PAT, GITHUB_TOKEN | Validierung |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | Deklariert das Projekt GitHub-Workflow-Tokens als [schreibgeschützt](https://docs.github.com/en/actions/reference/authentication-in-a-workflow)? | Hoch | PAT, GITHUB_TOKEN | Nicht unterstützt |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | Hat das Projekt ungepatchte Schwachstellen? Verwendet den [OSV-Dienst](https://osv.dev). | Hoch | PAT, GITHUB_TOKEN | Validierung |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | Hat der im Repository definierte Webhook ein Token zur Authentifizierung der Ursprünge von Anfragen konfiguriert? | Kritisch | Maintainer-PAT (`admin: repo_hook` oder `admin> read:repo_hook` [Dokumentation](https://docs.github.com/en/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) | | EXPERIMENTELL
### Detaillierte Prüfungsdokumentation
Ausführliche Informationen zu jeder Prüfung, ihren Bewertungskriterien und Abhilfemaßnahmen finden Sie auf der [Seite zur Prüfungsdokumentation](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md).
### Einsteigerleitfaden für Scorecard-Prüfungen
Einen Leitfaden zu den Prüfungen, die Sie zu Beginn verwenden sollten, finden Sie im [Einsteigerleitfaden zu Scorecard-Prüfungen](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md).
## Andere wichtige Empfehlungen
### Zwei-Faktor-Authentifizierung (2FA)
[Zwei-Faktor-Authentifizierung (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) fügt eine zusätzliche Sicherheitsebene beim Anmelden auf Websites oder in Apps hinzu. 2FA schützt Ihr Konto, falls Ihr Passwort kompromittiert wird, indem eine zweite Form der Authentifizierung erforderlich ist, z. B. Codes, die per SMS oder über eine Authentifizierungs-App gesendet werden, oder das Berühren eines physischen Sicherheitsschlüssels.
Wir empfehlen dringend, 2FA für alle wichtigen Konten zu aktivieren, bei denen dies verfügbar ist. 2FA ist keine Scorecard-Prüfung, da GitHub und GitLab diese Daten über Benutzerkonten nicht öffentlich machen. Diese Daten sollten unseres Erachtens immer privat bleiben, da Konten ohne 2FA so anfällig für Angriffe sind.
Obwohl es sich nicht um eine offizielle Prüfung handelt, fordern wir alle Projektbetreuer nachdrücklich auf, 2FA zu aktivieren, um ihre Projekte vor Kompromittierung zu schützen.
#### Aktivieren von 2FA
##### Für Benutzer
Befolgen Sie die unter [Konfigurieren der Zwei-Faktor-Authentifizierung](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) beschriebenen Schritte.
Verwenden Sie wenn möglich entweder:
- physischen Sicherheitsschlüssel (bevorzugt), z. B. Titan oder Yubikey
- Wiederherstellungscodes, die in einem zugriffsgeschützten und verschlüsselten Tresor aufbewahrt werden
Als letzte Möglichkeit verwenden Sie SMS. Achtung: 2FA per SMS ist anfällig für [SIM-Swap-Angriffe](https://en.wikipedia.org/wiki/SIM_swap_scam).
##### Für eine Organisation
1. [Bereiten Sie die Verpflichtung zur 2FA in Ihrer Organisation vor](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization)
2. [Verlangen Sie 2FA in Ihrer Organisation](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## Bewertung
### Gesamtpunktzahl
Jede einzelne Prüfung gibt eine Punktzahl von 0 bis 10 zurück, wobei 10 die bestmögliche Punktzahl darstellt. Scorecard erzeugt auch eine Gesamtpunktzahl, die ein gewichteter Durchschnitt der einzelnen nach Risiko gewichteten Prüfungen ist.
* „Kritische“ Risikoprüfungen werden mit 10 gewichtet
* „Hohe“ Risikoprüfungen werden mit 7,5 gewichtet
* „Mittlere“ Risikoprüfungen werden mit 5 gewichtet
* „Niedrige“ Risikoprüfungen werden mit 2,5 gewichtet
Siehe die [Liste der aktuellen Scorecard-Prüfungen](#scorecard-checks) für die Risikostufe jeder Prüfung.
## Mitwirken
### Probleme melden
Wenn Sie ein Problem haben, das wie ein Fehler aussieht, verwenden Sie bitte das [GitHub-Issue-Tracking-System.](https://github.com/ossf/scorecard/issues) Bevor Sie ein Issue einreichen, durchsuchen Sie bitte bestehende Issues, um zu sehen, ob Ihr Issue bereits abgedeckt ist.
### Zu Scorecard beitragen
Bevor Sie einen Beitrag leisten, befolgen Sie bitte unseren [Verhaltenskodex](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md).
Siehe die [Beitragsdokumentation](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md) für Anleitungen zur Mitarbeit am Projekt.
### Hinzufügen einer Scorecard-Prüfung
Wenn Sie eine Prüfung hinzufügen möchten, finden Sie hier eine [Anleitung](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md).
### Verbinden mit der Scorecard-Community
Wenn Sie sich in der Scorecard-Community engagieren oder Ideen besprechen möchten, diskutieren wir dieses Projekt in den Sitzungen der [OSSF Best Practices Working Group](https://github.com/ossf/wg-best-practices-os-developers).
Artefakt | Link
----------------------------- | ----
Scorecard-Entwicklerforum | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Scorecard-Ankündigungsforum | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
Community-Meeting-Videokonferenz | [Link zum z o o m-Meeting](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
Community-Meeting-Kalender | **_APAC-freundlich_** Alle zwei Wochen donnerstags von 13:00–14:00 Uhr Pacific-Zeit ([OSSF-Community-Kalender](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br>Videoanruf: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA-freundlich_** Alle 4 Wochen montags von 7:00–8:00 Uhr Pacific-Zeit ([OSSF-Community-Kalender](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br> Videoanruf: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
Sitzungsnotizen | [Notizen](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Slack-Kanal | [#scorecard](https://slack.openssf.org/#scorecard)
__Betreuer__ sind in der [CODEOWNERS-Datei](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS) aufgeführt.
### Melden eines Sicherheitsproblems
Um ein Sicherheitsproblem zu melden, befolgen Sie bitte die Anweisungen [hier](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md).
### Teilnehmen am Scorecard-Projektmeeting
#### Zoom
**_APAC-freundlich_** Alle zwei Wochen donnerstags von 13:00–14:00 Uhr Pacific-Zeit ([OSSF-Community-Kalender](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
Videoanruf: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA-freundlich_** Alle 4 Wochen montags von 7:00–8:00 Uhr Pacific-Zeit ([OSSF-Community-Kalender](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
Videoanruf: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### Tagesordnung
Sie können die [Tagesordnung und Sitzungsnotizen hier](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing) einsehen.
## Stargazers im Zeitverlauf
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Siehe die [FAQ](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md) für Antworten auf häufig gestellte Fragen zu Scorecard.
| Paketmanager | Unterstützte Distribution | Befehl |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| AUR-Helfer | Arch Linux | Verwenden Sie Ihren AUR-Helfer zur Installation von scorecard |
| Homebrew | macOS oder Linux | brew install scorecard |