
OpenSSF Scorecard - Métriques de santé de sécurité pour l'open source
Nous avons créé Scorecard pour aider les mainteneurs de logiciels open source à améliorer leurs bonnes pratiques de sécurité et pour aider les consommateurs d'open source à juger si leurs dépendances sont sûres.
Scorecard est un outil automatisé qui évalue un certain nombre d'heuristiques importantes ("vérifications") liées à la sécurité logicielle et attribue à chaque vérification un score de 0 à 10. Vous pouvez utiliser ces scores pour comprendre les domaines spécifiques à améliorer afin de renforcer la posture de sécurité de votre projet. Vous pouvez également évaluer les risques que les dépendances introduisent et prendre des décisions éclairées quant à l'acceptation de ces risques, l'évaluation de solutions alternatives ou la collaboration avec les mainteneurs pour apporter des améliorations.
L'inspiration pour le logo de Scorecard : "Vous avez réussi ! Tous des D... et un A !"
Automatiser l'analyse et les décisions de confiance concernant la posture de sécurité des projets open source.
Utiliser ces données pour améliorer de manière proactive la posture de sécurité des projets critiques dont le monde dépend.
Servir d'outil de mesure pour les politiques existantes
Si les consommateurs d'OSS exigent certains comportements de leurs dépendances,
Scorecard peut être utilisé pour les mesurer. Avec la version V5, nous considérons
les Résultats Structurés comme un moyen de le faire s'il existe une analyse prise en charge.
Au lieu de se fier à un score agrégé de X/10, ou à un score de Maintenance de
Y/10, un consommateur d'OSS peut vouloir s'assurer que le dépôt dont il dépend
n'est pas archivé (ce qui est couvert par la sonde archived). L'OpenSSF
adopte cette approche avec son propre Référentiel de Sécurité pour les projets.
Être un rapport définitif ou une exigence que tous les projets devraient suivre.
Scorecard n'a pas vocation à être une solution universelle. Chaque étape de la production de nos résultats est subjective : quelles vérifications sont incluses ou exclues, l'importance de chaque vérification, et comment les scores sont calculés. Les vérifications elles-mêmes sont des heuristiques ; il y a des faux positifs et des faux négatifs.
Que ce soit en raison de l'applicabilité, de la faisabilité ou d'une question d'opinion, ce qui est inclus ou exclu des résultats de Scorecard suscite beaucoup de discussions. Il est impossible de créer un Scorecard qui satisfasse tout le monde car différents publics se soucieront de différents sous-ensembles de comportements.
Les scores agrégés en particulier ne disent rien sur les comportements individuels qu'un dépôt a ou n'a pas. De nombreux scores de vérifications sont agrégés en un seul score, et il existe plusieurs façons d'arriver au même score. Ces scores changent à mesure que nous ajoutons de nouvelles heuristiques ou affinons les existantes.
Scorecard a été exécuté sur des milliers de projets pour surveiller et suivre les indicateurs de sécurité. Les projets notables qui utilisent Scorecard incluent :
Pour voir les scores des projets régulièrement analysés par Scorecard, accédez au visualiseur web. Vous pouvez également remplacer le texte générique (plateforme, nom d'utilisateur/organisation et nom du dépôt) dans le lien modèle suivant pour générer un lien Scorecard personnalisé pour un dépôt :
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
Par exemple :
Pour voir les scores des projets non inclus dans le visualiseur web, utilisez l'interface en ligne de commande Scorecard.
Nous effectuons une analyse hebdomadaire Scorecard du million de projets open source les plus critiques jugés par leurs dépendances directes et publions les résultats dans un ensemble de données public BigQuery.
Ces données sont disponibles dans l'ensemble de données public BigQuery
openssf:scorecardcron.scorecard-v2. Les derniers résultats sont disponibles dans la
vue BigQuery openssf:scorecardcron.scorecard-v2_latest.
Vous pouvez interroger les données à l'aide de BigQuery Explorer en allant dans Ajouter des données > Ép inger un projet par nom > 'openssf'.
Par exemple, vous pouvez être intéressé par l'évolution du score d'un projet dans le temps :```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
Vous pouvez extraire les derniers résultats vers Google Cloud Storage au format JSON en utilisant l'outil [`bq`](https://cloud.google.com/bigquery/docs/bq-command-line-tool) :```
# 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
La liste des projets vérifiés est disponible dans le fichier cron/internal/data/projects.csv de ce dépôt. Si vous souhaitez que nous en suivions davantage, n'hésitez pas à envoyer une Pull Request avec d'autres projets. Actuellement, cette liste est dérivée uniquement des projets hébergés sur GitHub. Nous prévoyons de l'étendre dans un avenir proche pour inclure les projets hébergés sur d'autres systèmes de contrôle de version.
La façon la plus simple d'utiliser Scorecard sur vos projets GitHub est d'utiliser Scorecard GitHub Action. L'action s'exécute à chaque modification du dépôt et génère des alertes que les mainteneurs peuvent consulter dans l'onglet Sécurité du dépôt. Pour plus d'informations, consultez les instructions d'installation de Scorecard GitHub Action.
Pour interroger les scores pré-calculés des projets OSS, utilisez l'API REST. Les scores calculés à partir de notre scan hebdomadaire omettent les vérifications CI-Tests, Contributors et Dependency-Update-Tool en raison des coûts d'API associés à leur exécution à grande échelle.
Les résultats de l'API sont mis en cache avec un CDN (grâce à Fastly et à leur programme Fast Forward). Les résultats sont purgés du CDN lorsque de nouveaux résultats sont disponibles, mais si vous constatez des problèmes de données obsolètes, veuillez ouvrir un problème.
Pour permettre à votre projet d'être disponible sur l'API REST, définissez publish_results: true dans le paramètre de Scorecard GitHub Action.
Les données fournies par l'API REST sont sous licence CDLA Permissive 2.0.
Activer publish_results: true dans Scorecard GitHub Actions permet également aux mainteneurs d'afficher un badge Scorecard sur leur dépôt pour montrer leur travail. Ce badge se met également à jour automatiquement à chaque modification du dépôt. Voir plus de détails dans cet article de blog OSSF.
Pour inclure un badge sur le dépôt de votre projet, ajoutez simplement le markdown suivant à votre README:```
### Interface en ligne de commande de Scorecard
Pour exécuter une analyse Scorecard sur des projets que vous ne possédez pas, utilisez l'option d'installation de l'interface en ligne de commande.
#### Prérequis
Plateformes : Actuellement, Scorecard prend en charge les plateformes OSX et Linux. Si vous utilisez un système d'exploitation Windows, vous pouvez rencontrer des problèmes. Les contributions pour la prise en charge de Windows sont les bienvenues.
Langage : Vous devez avoir GoLang installé pour exécuter Scorecard
(https://golang.org/doc/install)
#### Installation
##### Docker
`scorecard` est disponible en tant que conteneur Docker :```shell
docker pull ghcr.io/ossf/scorecard:latest
Pour utiliser une version spécifique de scorecard (par ex., v3.2.1), exécutez :```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### Autonome
Pour installer Scorecard en version autonome :
Consultez notre [page des versions](https://github.com/ossf/scorecard/releases/latest) la plus récente et téléchargez le fichier zip approprié pour votre système d'exploitation.
Ajoutez le binaire à votre répertoire `GOPATH/bin` (utilisez `go env GOPATH` pour identifier votre répertoire si nécessaire).
###### Vérification de la provenance SLSA pour les versions téléchargées
Nous générons des [signatures SLSA3](https://slsa.dev) en utilisant l'outil [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) de l'OpenSSF pendant le processus de publication. Pour vérifier un binaire de version :
1. Installez l'outil de vérification depuis [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. Téléchargez le fichier de signature `attestation.intoto.jsonl` depuis la [page des versions GitHub](https://github.com/GoogleContainerTools/jib/releases/latest).
3. Exécutez le vérificateur :```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHub impose des limites de taux d'API sur les requêtes non authentifiées. Pour éviter ces limites, vous devez authentifier vos requêtes avant d'exécuter Scorecard. Il existe deux façons d'authentifier vos requêtes : soit créer un jeton d'accès personnel GitHub, soit créer une installation d'application GitHub.
public_repo. Définissez le jeton dans une variable d'environnement appelée
GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN ou GH_TOKEN en utilisant les
commandes ci-dessous selon votre plateforme.```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
OR
- [Create a GitHub App Installation](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
pour des quotas de limite de débit plus élevés. Si vous avez une application GitHub installée et un fichier de clé, vous pouvez utiliser les trois variables d'environnement ci-dessous, en suivant les commandes (`set` ou `export`) indiquées ci-dessus pour votre plateforme.```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
Ces variables peuvent être obtenues à partir de la page des paramètres développeur de GitHub.
Scorecard peut être exécuté avec un seul argument, l'URL du dépôt cible :```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 |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
Le GITHUB_AUTH_TOKEN doit être défini sur un token valide.```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
Pour utiliser une version spécifique du scorecard (par exemple, v3.2.1), exécutez :```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
Pour plus de détails sur les raisons d'un échec, utilisez l'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' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
Annotations des mainteneurs permettent aux mainteneurs d'ajouter du contexte à afficher avec les résultats des vérifications Scorecard. Les annotations peuvent fournir aux utilisateurs des informations supplémentaires lorsque Scorecard a une évaluation incomplète des pratiques de sécurité d'un projet. Pour voir les annotations des mainteneurs pour chaque vérification, utilisez l'option --show-annotations.
Pour plus d'informations sur les annotations disponibles ou comment en créer, consultez la documentation de configuration.
Pour exécuter Scorecard sur un dépôt GitLab, vous devez créer un jeton d'accès GitLab avec les autorisations suivantes :
read_apiread_userread_repositoryVous pouvez exécuter Scorecard sur un dépôt GitLab en définissant la variable d'environnement GITLAB_AUTH_TOKEN :```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
Pour un exemple d'utilisation de Scorecard dans GitLab CI/CD, voir [ici](https://gitlab.com/ossf-test/scorecard-pipeline-example).
###### Éditions auto-hébergées
Bien que nous nous concentrions sur le support de GitLab.com, Scorecard fonctionne également avec les installations GitLab auto-hébergées.
Si votre plateforme est hébergée sur un sous-domaine (par ex. `gitlab.foo.com`), Scorecard devrait fonctionner directement.
Si votre plateforme est hébergée sur un slug (par ex. `foo.com/bar/`), vous devrez définir la variable d'environnement `GL_HOST`.```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
Pour utiliser un hôte GitHub Enterprise github.corp.com, utilisez la variable d’environnement 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
##### Utilisation d'un gestionnaire de packages
Pour les projets des écosystèmes `--npm`, `--pypi`, `--rubygems`, ou `--nuget`, vous avez la
possibilité d'exécuter Scorecard via un gestionnaire de packages. Fournissez le nom du package pour
lancer les vérifications sur le code source GitHub correspondant.
Par exemple, `--npm=angular`.
Remarque : Les indicateurs d'écosystème de packages servent uniquement à trouver un dépôt GitHub.
Ces indicateurs ne modifient pas l'évaluation finale des vérifications.
De plus, ces indicateurs ne peuvent pas être utilisés avec `--repo`.
##### Exécution de vérifications spécifiques
Pour exécuter seulement une ou plusieurs vérifications spécifiques, ajoutez l'argument `--checks` avec une liste de noms de vérifications.
Par exemple, `--checks=CI-Tests,Code-Review`.
##### Formatage des résultats
Les formats actuellement pris en charge sont `default` (texte) et `json`.
Ils peuvent être spécifiés avec l'indicateur `--format`. Par exemple, `--format=json`.
## Vérifications
### Vérifications de Scorecard
Les vérifications suivantes sont toutes exécutées par défaut sur le projet cible :
Nom | Description | Niveau de risque | Jeton requis | Support GitLab | Note
--- | --- | --- | --- | --- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | Le projet est-il exempt de binaires inclus dans le dépôt ? | Élevé | PAT, GITHUB_TOKEN | Pris en charge |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | Le projet utilise-t-il la [protection de branche](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | Élevé | PAT (`repo` ou `repo> public_repo`), GITHUB_TOKEN | Pris en charge (voir notes) | Certains paramètres ne sont pris en charge qu'avec un PAT de mainteneur
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | Le projet exécute-t-il des tests en CI, par ex. [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow) ? | Faible | PAT, GITHUB_TOKEN | Pris en charge
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | Le projet a-t-il obtenu un [badge OpenSSF (anciennement CII) Best Practices](https://www.bestpractices.dev) au niveau passing, silver ou gold ? | Faible | PAT, GITHUB_TOKEN | En validation |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | Le projet pratique-t-il la revue de code avant de fusionner le code ? | Élevé | PAT, GITHUB_TOKEN | Pris en charge |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | Le projet a-t-il des contributeurs d'au moins deux organisations différentes ? | Faible | PAT, GITHUB_TOKEN | En validation |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | Le projet évite-t-il les modèles de codage dangereux dans les workflows GitHub Actions ? | Critique | PAT, GITHUB_TOKEN | Non pris en charge |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | Le projet utilise-t-il des outils pour mettre à jour ses dépendances ? | Élevé | PAT, GITHUB_TOKEN | Pris en charge |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | Le projet utilise-t-il des outils de fuzzing, par ex. [OSS-Fuzz](https://github.com/google/oss-fuzz), [QuickCheck](https://hackage.haskell.org/package/QuickCheck) ou [fast-check](https://fast-check.dev/) ? | Moyen | PAT, GITHUB_TOKEN | En validation
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | Le projet déclare-t-il une licence ? | Faible | PAT, GITHUB_TOKEN | En validation |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | Le projet est-il âgé d'au moins 90 jours et maintenu ? | Élevé | PAT, GITHUB_TOKEN | En validation |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | Le projet déclare-t-il et épingle-t-il les [dépendances](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems) ? | Moyen | PAT, GITHUB_TOKEN | En validation |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | Le projet construit-il et publie-t-il des packages officiels depuis CI/CD, par ex. [GitHub Publishing](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages) ? | Moyen | PAT, GITHUB_TOKEN | En validation |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | Le projet utilise-t-il des outils d'analyse statique de code, par ex. [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 (déprécié)](https://lgtm.com), [SonarCloud](https://sonarcloud.io) ? | Moyen | PAT, GITHUB_TOKEN | Non pris en charge |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | Le projet contient-il une [politique de sécurité](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository) ? | Moyen | PAT, GITHUB_TOKEN | En validation |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | Le projet signe-t-il cryptographiquement les [versions](https://wiki.debian.org/Creating%20signed%20GitHub%20releases) ? | Élevé | PAT, GITHUB_TOKEN | En validation |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | Le projet déclare-t-il les jetons de workflow GitHub comme [lecture seule](https://docs.github.com/en/actions/reference/authentication-in-a-workflow) ? | Élevé | PAT, GITHUB_TOKEN | Non pris en charge |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | Le projet a-t-il des vulnérabilités non corrigées ? Utilise le [service OSV](https://osv.dev). | Élevé | PAT, GITHUB_TOKEN | En validation |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | Le webhook défini dans le dépôt a-t-il un jeton configuré pour authentifier l'origine des requêtes ? | Critique | PAT de mainteneur (`admin: repo_hook` ou `admin> read:repo_hook` [doc](https://docs.github.com/en/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) | | EXPÉRIMENTAL
### Documentation détaillée des vérifications
Pour voir les informations détaillées sur chaque vérification, ses critères de notation et les étapes de correction, consultez la [page de documentation des vérifications](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md).
### Guide du débutant pour les vérifications Scorecard
Pour un guide des vérifications à utiliser pour commencer, consultez le [guide du débutant pour les vérifications Scorecard](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md).
## Autres recommandations importantes
### Authentification à deux facteurs (2FA)
L'[authentification à deux facteurs (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) ajoute une couche de sécurité supplémentaire lors de la connexion à des sites web ou applications. La 2FA protège votre compte si votre mot de passe est compromis en exigeant une deuxième forme d'authentification, comme des codes envoyés par SMS ou via une application d'authentification, ou en touchant une clé de sécurité physique.
Nous recommandons vivement d'activer la 2FA sur tous les comptes importants où elle est disponible. La 2FA n'est pas une vérification Scorecard car GitHub et GitLab ne rendent pas publiques les données concernant les comptes utilisateurs. On peut arguer que ces données devraient toujours rester privées, car les comptes sans 2FA sont très vulnérables aux attaques.
Bien qu'il ne s'agisse pas d'une vérification officielle, nous exhortons tous les mainteneurs de projet à activer la 2FA pour protéger leurs projets contre les compromissions.
#### Activer la 2FA
##### Pour les utilisateurs
Suivez les étapes décrites dans [Configurer l'authentification à deux facteurs](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)
Si possible, utilisez soit :
- une clé de sécurité physique (recommandé), comme Titan ou Yubikey
- des codes de récupération, stockés dans un coffre protégé par accès et chiffré
En dernier recours, utilisez SMS. Attention : la 2FA par SMS est vulnérable aux [attaques par échange de carte SIM](https://en.wikipedia.org/wiki/SIM_swap_scam).
##### Pour une organisation
1. [Préparez-vous à exiger la 2FA dans votre organisation](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. [Exigez la 2FA dans votre 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)
## Notation
### Score agrégé
Chaque vérification individuelle renvoie un score de 0 à 10, où 10 représente le meilleur score possible. Scorecard produit également un score agrégé, qui est une moyenne pondérée des vérifications individuelles en fonction du risque.
* Les vérifications de risque “Critique” sont pondérées à 10
* Les vérifications de risque “Élevé” sont pondérées à 7,5
* Les vérifications de risque “Moyen” sont pondérées à 5
* Les vérifications de risque “Faible” sont pondérées à 2,5
Consultez la [liste des vérifications Scorecard actuelles](#vérifications-de-scorecard) pour connaître le niveau de risque de chaque vérification.
## Contribuer
### Signaler des problèmes
Si vous pensez avoir trouvé un bogue, veuillez utiliser le
[système de suivi des problèmes GitHub.](https://github.com/ossf/scorecard/issues) Avant
de soumettre un problème, veuillez rechercher parmi les problèmes existants pour voir si le vôtre est déjà couvert.
### Contribuer à Scorecard
Avant de contribuer, veuillez suivre notre [Code de conduite](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md).
Consultez la documentation [Contribuer](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md) pour des conseils sur la manière de
contribuer au projet.
### Ajouter une vérification Scorecard
Si vous souhaitez ajouter une vérification, veuillez consulter les conseils [ici](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md).
### Se connecter avec la communauté Scorecard
Si vous souhaitez vous impliquer dans la communauté Scorecard ou avez des idées que vous aimeriez
discuter, nous discutons de ce projet dans les
réunions du [Groupe de travail sur les meilleures pratiques OSSF](https://github.com/ossf/wg-best-practices-os-developers).
Artifact | Lien
--- | ---
Forum des développeurs Scorecard | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Forum des annonces Scorecard | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
Visio de la réunion communautaire | [Lien vers la réunion z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
Calendrier des réunions communautaires | **_APAC-friendly_** Toutes les deux semaines le jeudi de 13h00 à 14h00 heure du Pacifique ([Calendrier public OSSF](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>Appel vidéo : [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA-friendly_** Toutes les 4 semaines le lundi de 7h00 à 8h00 heure du Pacifique ([Calendrier public OSSF](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> Appel vidéo : [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
Notes de réunion | [Notes](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Canal Slack | [#scorecard](https://slack.openssf.org/#scorecard)
Les __mainteneurs__ sont listés dans le [fichier CODEOWNERS](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS).
### Signaler un problème de sécurité
Pour signaler un problème de sécurité, veuillez suivre les instructions [ici](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md).
### Rejoindre la réunion du projet Scorecard
#### Zoom
**_APAC-friendly_** Toutes les deux semaines le jeudi de 13h00 à 14h00 heure du Pacifique ([Calendrier public OSSF](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))
Appel vidéo : [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA-friendly_** Toutes les 4 semaines le lundi de 7h00 à 8h00 heure du Pacifique ([Calendrier public OSSF](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))
Appel vidéo : [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### Ordre du jour
Vous pouvez voir [l'ordre du jour et les notes de réunion ici](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing).
## Évolution du nombre d'étoiles au fil du temps
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Voir la [FAQ](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md) pour les réponses aux questions fréquemment posées sur Scorecard.
| Gestionnaire de paquets | Distribution prise en charge | Commande |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| Assistant AUR | Arch Linux | Utilisez votre assistant AUR pour installer scorecard |
| Homebrew | macOS ou Linux | brew install scorecard |