OpenSSF Scorecard - Métricas de saúde de segurança para código aberto

Criámos o Scorecard para ajudar os mantenedores de código aberto a melhorar as suas práticas recomendadas de segurança e para ajudar os consumidores de código aberto a avaliar se as suas dependências são seguras.
O Scorecard é uma ferramenta automatizada que avalia uma série de heurísticas importantes ("verificações") associadas à segurança de software e atribui a cada verificação uma pontuação de 0 a 10. Pode usar estas pontuações para compreender áreas específicas a melhorar, de modo a fortalecer a postura de segurança do seu projeto. Também pode avaliar os riscos que as dependências introduzem e tomar decisões informadas sobre aceitar esses riscos, avaliar soluções alternativas ou trabalhar com os mantenedores para fazer melhorias.
A inspiração para o logótipo do Scorecard: "Passou! Todos D's ... e um A!"
Automatizar a análise e as decisões de confiança sobre a postura de segurança de projetos de código aberto.
Usar estes dados para melhorar proativamente a postura de segurança dos projetos críticos de que o mundo depende.
Servir como ferramenta de medição para políticas existentes
Se os consumidores de OSS exigirem determinados comportamentos das suas dependências,
o Scorecard pode ser usado para os medir. Com o lançamento da V5, vemos
os Resultados Estruturados como uma forma de o fazer se existir uma análise suportada.
Em vez de depender de uma pontuação agregada de X/10, ou de uma pontuação de Mantido de
Y/10, um consumidor de OSS pode querer garantir que o repositório de que depende
não está arquivado (o que é abrangido pela sonda archived). A OpenSSF
adota esta abordagem com a sua própria Baseline de Segurança para projetos.
Ser um relatório definitivo ou requisito que todos os projetos devem seguir.
O Scorecard não pretende ser uma solução única para todos. Cada passo da criação dos nossos resultados é opinativo: quais verificações são incluídas ou excluídas, a importância de cada verificação e como as pontuações são calculadas. As próprias verificações são heurísticas; existem falsos positivos e falsos negativos.
Seja devido à aplicabilidade, à viabilidade ou a uma questão de opinião, o que é incluído ou excluído dos resultados do Scorecard gera muita discussão. É impossível criar um Scorecard que satisfaça todos, porque diferentes públicos se importarão com diferentes subconjuntos de comportamento.
As pontuações agregadas, em particular, não dizem nada sobre quais comportamentos individuais um repositório está ou não a realizar. Muitas pontuações de verificação são agregadas numa única pontuação, e há várias formas de chegar à mesma pontuação. Estas pontuações mudam à medida que adicionamos novas heurísticas ou refinamos as existentes.
O Scorecard foi executado em milhares de projetos para monitorizar e acompanhar métricas de segurança. Projetos proeminentes que usam o Scorecard incluem:
Para ver as pontuações de projetos regularmente analisados pelo Scorecard, navegue até ao visualizador web. Também pode substituir o texto do espaço reservado (plataforma, utilizador/org e nome do repositório) no seguinte link de modelo para gerar um link Scorecard personalizado para um repositório:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
Por exemplo:
Para ver as pontuações de projetos não incluídos no visualizador web, use a CLI do Scorecard.
Executamos uma análise semanal do Scorecard nos 1 milhão de projetos de código aberto mais críticos julgados pelas suas dependências diretas e publicamos os resultados num conjunto de dados público do BigQuery.
Estes dados estão disponíveis no conjunto de dados público do BigQuery
openssf:scorecardcron.scorecard-v2. Os resultados mais recentes estão disponíveis na
vista do BigQuery openssf:scorecardcron.scorecard-v2_latest.
Pode consultar os dados usando o BigQuery Explorer navegando para Adicionar Dados > Marcar um projeto por nome > 'openssf'.
Por exemplo, pode estar interessado em como a pontuação de um projeto mudou ao longo do tempo:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
Você pode extrair os resultados mais recentes para o armazenamento do Google Cloud em formato JSON usando a ferramenta [`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
A lista de projetos verificados está disponível no
cron/internal/data/projects.csv
arquivo neste repositório. Se desejar que rastreemos mais, fique à vontade para
enviar um Pull Request com outros. Atualmente, esta lista é derivada de projetos
hospedados APENAS no GitHub. Planejamos expandi-la em um futuro próximo para incluir
projetos hospedados em outros sistemas de controle de versão.
A maneira mais fácil de usar o Scorecard em projetos do GitHub que você possui é com a Scorecard GitHub Action. A Action é executada em qualquer alteração no repositório e emite alertas que os mantenedores podem visualizar na aba Security do repositório. Para mais informações, consulte o guia de instalação da Scorecard GitHub Action.
Para consultar pontuações pré-calculadas de projetos OSS, use a REST API.
As pontuações calculadas a partir da nossa varredura semanal omitem as verificações CI-Tests,
Contributors e Dependency-Update-Tool devido aos custos de API
associados à sua execução em escala.
Os resultados da API são armazenados em cache com uma CDN (agradecimentos à Fastly e seu programa Fast Forward). Os resultados são removidos da CDN quando novos resultados estão disponíveis, mas se você notar problemas com dados desatualizados, abra um issue.
Para habilitar seu projeto a ficar disponível na REST API, defina
publish_results: true
na configuração da Scorecard GitHub Action.
Os dados fornecidos pela REST API estão licenciados sob a CDLA Permissive 2.0.
Habilitar publish_results: true
na Scorecard GitHub Action também permite que os mantenedores exibam um selo Scorecard em seu repositório para mostrar seu
trabalho árduo. Este selo também é atualizado automaticamente a cada alteração feita no repositório. Veja mais detalhes em este post do blog da OSSF.
Para incluir um selo no repositório do seu projeto, basta adicionar o seguinte markdown ao seu README:```
### Interface de Linha de Comando do Scorecard
Para executar uma verificação do Scorecard em projetos que você não possui, use a opção de instalação da interface de linha de comando.
#### Pré-requisitos
Plataformas: Atualmente, o Scorecard suporta as plataformas OSX e Linux. Se você estiver usando um sistema operacional Windows, poderá enfrentar problemas. Contribuições para oferecer suporte ao Windows são bem-vindas.
Linguagem: Você deve ter o GoLang instalado para executar o Scorecard (https://golang.org/doc/install)
#### Instalação
##### Docker
`scorecard` está disponível como um contêiner Docker:```shell
docker pull ghcr.io/ossf/scorecard:latest
Para usar uma versão específica do scorecard (por exemplo, v3.2.1), execute:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### Independente
Para instalar o Scorecard como uma ferramenta independente:
Visite nossa última [página de lançamentos](https://github.com/ossf/scorecard/releases/latest) e baixe o arquivo zip correto para seu sistema operacional.
Adicione o binário ao diretório `GOPATH/bin` (use `go env GOPATH` para identificar seu diretório, se necessário).
###### Verificando a proveniência SLSA para lançamentos baixados
Nós geramos [assinaturas SLSA3](https://slsa.dev) usando o [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) da OpenSSF durante o processo de lançamento. Para verificar um binário de lançamento:
1. Instale a ferramenta de verificação de [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. Baixe o arquivo de assinatura `attestation.intoto.jsonl` da [página de lançamentos do GitHub](https://github.com/GoogleContainerTools/jib/releases/latest).
3. Execute o verificador:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
| Gerenciador de Pacotes | Distribuição Suportada | Comando |
|---|---|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| AUR helper | Arch Linux | Use seu AUR helper para instalar scorecard |
| Homebrew | macOS ou Linux | brew install scorecard |
O GitHub impõe limites de taxa da API em requisições não autenticadas. Para evitar esses limites, você deve autenticar suas requisições antes de executar o Scorecard. Existem duas formas de autenticar suas requisições: criar um token de acesso pessoal do GitHub ou criar uma instalação do GitHub App.
public_repo. Defina o token em uma variável de ambiente chamada
GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN ou GH_TOKEN usando os
comandos abaixo de acordo com sua plataforma.```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
OU
- [Crie uma Instalação do GitHub App](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
para cotas de limite de taxa mais altas. Se você tem um GitHub App instalado e um arquivo
de chave, você pode usar as três variáveis de ambiente abaixo, seguindo os
comandos (`set` ou `export`) mostrados acima para sua plataforma.```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
Essas variáveis podem ser obtidas na página de configurações do desenvolvedor do GitHub.
O Scorecard pode ser executado usando apenas um argumento, a URL do repositório alvo:```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 |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
O GITHUB_AUTH_TOKEN deve ser definido para um token válido.```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
Para usar uma versão específica do scorecard (ex.: v3.2.1), execute:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
Para mais detalhes sobre por que uma verificação falha, use a opção --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' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
Anotações dos Mantenedores permitem que mantenedores adicionem contexto para exibir junto aos resultados das verificações do Scorecard. As anotações podem fornecer informações adicionais aos usuários quando o Scorecard tem uma avaliação incompleta das práticas de segurança de um projeto. Para ver as anotações dos mantenedores para cada verificação, use a opção --show-annotations.
Para mais informações sobre anotações disponíveis ou como fazer anotações, veja a documentação de configuração.
Para executar o Scorecard em um repositório do GitLab, você deve criar um Token de Acesso do GitLab com as seguintes permissões:
read_apiread_userread_repositoryVocê pode executar o Scorecard em um repositório do GitLab definindo a variável de ambiente GITLAB_AUTH_TOKEN:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
###### Edições Auto-hospedadas
Embora foquemos no suporte ao GitLab.com, o Scorecard também funciona com instalações auto-hospedadas do GitLab.
Se sua plataforma estiver hospedada em um subdomínio (ex.: `gitlab.foo.com`), o Scorecard deve funcionar imediatamente.
Se sua plataforma estiver hospedada em algum slug (ex.: `foo.com/bar/`), você precisará definir a variável de ambiente `GL_HOST`.```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
Para usar um host GitHub Enterprise github.corp.com, use a variável de ambiente 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
##### Usando um gerenciador de pacotes
Para projetos nos ecossistemas `--npm`, `--pypi`, `--rubygems` ou `--nuget`, você tem a
opção de executar o Scorecard usando um gerenciador de pacotes. Forneça o nome do pacote para
executar as verificações no código-fonte GitHub correspondente.
Por exemplo, `--npm=angular`.
Nota: As flags de ecossistema de pacotes servem apenas para encontrar um repositório GitHub.
Essas flags não alteram a avaliação final das verificações.
Além disso, as flags não podem ser usadas com `--repo`.
##### Executando verificações específicas
Para executar apenas verificações específicas, adicione o argumento `--checks` com uma lista de nomes
de verificações.
Por exemplo, `--checks=CI-Tests,Code-Review`.
##### Formatando os resultados
Os formatos atualmente suportados são `default` (texto) e `json`.
Eles podem ser especificados com a flag `--format`. Por exemplo, `--format=json`.
## Verificações
### Verificações do Scorecard
As seguintes verificações são todas executadas contra o projeto alvo por padrão:
Nome | Descrição | Nível de Risco | Token Necessário | Suporte GitLab | Nota
----------- | ----------------------------------------- | ---------- | --------------- | -------------- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/main/docs/checks.md#binary-artifacts) | O projeto está livre de binários versionados? | Alto | PAT, GITHUB_TOKEN | Suportado |
[Branch-Protection](https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection) | O projeto usa [Proteção de Branch](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | Alto | PAT (nível `repo` ou `repo> public_repo`), GITHUB_TOKEN | Suportado (ver notas) | Certas configurações são suportadas apenas com um PAT de mantenedor
[CI-Tests](https://github.com/ossf/scorecard/blob/main/docs/checks.md#ci-tests) | O projeto executa testes em CI, ex. [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | Baixo | PAT, GITHUB_TOKEN | Suportado
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/main/docs/checks.md#cii-best-practices) | O projeto conquistou um [OpenSSF (antigo CII) Best Practices Badge](https://www.bestpractices.dev) nos níveis passing, silver ou gold? | Baixo | PAT, GITHUB_TOKEN | Validando |
[Code-Review](https://github.com/ossf/scorecard/blob/main/docs/checks.md#code-review) | O projeto pratica revisão de código antes da mesclagem? | Alto | PAT, GITHUB_TOKEN | Suportado |
[Contributors](https://github.com/ossf/scorecard/blob/main/docs/checks.md#contributors) | O projeto tem contribuidores de pelo menos duas organizações diferentes? | Baixo | PAT, GITHUB_TOKEN | Validando |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dangerous-workflow) | O projeto evita padrões de codificação perigosos em fluxos de trabalho do GitHub Actions? | Crítico | PAT, GITHUB_TOKEN | Não suportado |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool) | O projeto usa ferramentas para ajudar a atualizar suas dependências? | Alto | PAT, GITHUB_TOKEN | Suportado |
[Fuzzing](https://github.com/ossf/scorecard/blob/main/docs/checks.md#fuzzing) | O projeto usa ferramentas de fuzzing, ex. [OSS-Fuzz](https://github.com/google/oss-fuzz), [QuickCheck](https://hackage.haskell.org/package/QuickCheck) ou [fast-check](https://fast-check.dev/)? | Médio | PAT, GITHUB_TOKEN | Validando
[License](https://github.com/ossf/scorecard/blob/main/docs/checks.md#license) | O projeto declara uma licença? | Baixo | PAT, GITHUB_TOKEN | Validando |
[Maintained](https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained) | O projeto tem pelo menos 90 dias de existência e é mantido? | Alto | PAT, GITHUB_TOKEN | Validando |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies) | O projeto declara e fixa [dependências](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)? | Médio | PAT, GITHUB_TOKEN | Validando |
[Packaging](https://github.com/ossf/scorecard/blob/main/docs/checks.md#packaging) | O projeto constrói e publica pacotes oficiais a partir de CI/CD, ex. [GitHub Publishing](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages) ? | Médio | PAT, GITHUB_TOKEN | Validando |
[SAST](https://github.com/ossf/scorecard/blob/main/docs/checks.md#sast) | O projeto usa ferramentas de análise estática de código, 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 (obsoleto)](https://lgtm.com), [SonarCloud](https://sonarcloud.io)? | Médio | PAT, GITHUB_TOKEN | Não suportado |
[Security-Policy](https://github.com/ossf/scorecard/blob/main/docs/checks.md#security-policy) | O projeto contém uma [política de segurança](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository)? | Médio | PAT, GITHUB_TOKEN | Validando |
[Signed-Releases](https://github.com/ossf/scorecard/blob/main/docs/checks.md#signed-releases) | O projeto [assina criptograficamente os lançamentos](https://wiki.debian.org/Creating%20signed%20GitHub%20releases)? | Alto | PAT, GITHUB_TOKEN | Validando |
[Token-Permissions](https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions) | O projeto declara tokens de fluxo de trabalho do GitHub como [somente leitura](https://docs.github.com/en/actions/reference/authentication-in-a-workflow)? | Alto | PAT, GITHUB_TOKEN | Não suportado |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/main/docs/checks.md#vulnerabilities) | O projeto possui vulnerabilidades não corrigidas? Usa o [serviço OSV](https://osv.dev). | Alto | PAT, GITHUB_TOKEN | Validando |
[Webhooks](https://github.com/ossf/scorecard/blob/main/docs/checks.md#webhooks) | O webhook definido no repositório possui um token configurado para autenticar as origens das requisições? | Crítico | PAT de mantenedor (`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) | | EXPERIMENTAL
### Documentação Detalhada das Verificações
Para ver informações detalhadas sobre cada verificação, seus critérios de pontuação e
etapas de correção, consulte a [página de documentação das verificações](https://github.com/ossf/scorecard/blob/main/docs/checks.md).
### Guia para Iniciantes nas Verificações do Scorecard
Para um guia sobre as verificações que você deve usar ao começar, veja o [guia para iniciantes nas verificações do scorecard](https://github.com/ossf/scorecard/blob/main/docs/beginner-checks.md).
## Outras Recomendações Importantes
### Autenticação de Dois Fatores (2FA)
A [Autenticação de Dois Fatores (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) adiciona uma camada extra de segurança ao fazer login em sites ou aplicativos. A 2FA protege sua conta se sua senha for comprometida, exigindo uma segunda forma de autenticação, como códigos enviados por SMS ou aplicativo autenticador, ou tocar em uma chave de segurança física.
Recomendamos fortemente que você ative a 2FA em todas as contas importantes onde ela estiver disponível. A 2FA não é uma verificação do Scorecard porque o GitHub e o GitLab não disponibilizam esses dados sobre contas de usuários publicamente. Pode-se argumentar que esses dados devem sempre permanecer privados, já que contas sem 2FA são tão vulneráveis a ataques.
Embora não seja uma verificação oficial, exortamos todos os mantenedores de projetos a ativar a 2FA para proteger seus projetos contra comprometimento.
#### Ativando a 2FA
##### Para usuários
Siga as etapas descritas em [Configurando a autenticação de dois fatores](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)
Se possível, use:
- chave de segurança física (preferencial), como Titan ou Yubikey
- códigos de recuperação, armazenados em um cofre protegido por acesso e criptografado
Como última opção, use SMS. Cuidado: a 2FA via SMS é vulnerável a [ataque de troca de SIM](https://en.wikipedia.org/wiki/SIM_swap_scam).
##### Para uma organização
1. [Prepare-se para exigir 2FA em sua organização](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. [Exija 2FA em sua organização](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## Pontuação
### Pontuação Agregada
Cada verificação individual retorna uma pontuação de 0 a 10, sendo 10 a melhor pontuação
possível. O Scorecard também produz uma pontuação agregada, que é uma
média ponderada baseada no peso das verificações individuais, ponderadas pelo risco.
* Verificações de risco “Crítico” têm peso 10
* Verificações de risco “Alto” têm peso 7,5
* Verificações de risco “Médio” têm peso 5
* Verificações de risco “Baixo” têm peso 2,5
Veja a [lista de verificações atuais do Scorecard](#scorecard-checks) para o nível de risco de cada verificação.
## Contribua
### Reporte Problemas
Se você tiver o que parece ser um bug, use o
[sistema de rastreamento de issues do GitHub.](https://github.com/ossf/scorecard/issues) Antes
de abrir uma issue, pesquise nas issues existentes para ver se sua issue já está
coberta.
### Contribua com o Scorecard
Antes de contribuir, siga nosso [Código de Conduta](https://github.com/ossf/scorecard/blob/main/CODE_OF_CONDUCT.md).
Veja a documentação de [Contribuição](https://github.com/ossf/scorecard/blob/main/CONTRIBUTING.md) para obter orientação sobre como
contribuir com o projeto.
### Adicionando uma Verificação ao Scorecard
Se você quiser adicionar uma verificação, veja a orientação [aqui](https://github.com/ossf/scorecard/blob/main/checks/write.md).
### Conecte-se com a Comunidade do Scorecard
Se você quiser se envolver na comunidade do Scorecard ou tiver ideias que gostaria
de discutir, conversamos sobre este projeto nas reuniões do
[OSSF Best Practices Working Group](https://github.com/ossf/wg-best-practices-os-developers).
Artefato | Link
----------------------------- | ----
Fórum de Desenvolvimento do Scorecard | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Fórum de Anúncios do Scorecard | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
VC da Reunião da Comunidade | [Link para reunião z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
Calendário da Reunião da Comunidade | **_APAC-friendly_** Quinzenalmente às quintas-feiras das 13:00 às 14:00 Horário do Pacífico ([Calendário Público 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>Chamada de Vídeo: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA-friendly_** A cada 4 segundas-feiras das 7:00 às 8:00 Horário do Pacífico ([Calendário Público 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> Chamada de Vídeo: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
Notas da Reunião | [Notas](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Canal do Slack | [#scorecard](https://slack.openssf.org/#scorecard)
__Mantenedores__ estão listados no [arquivo CODEOWNERS](https://github.com/ossf/scorecard/blob/main/.github/CODEOWNERS).
### Relate um Problema de Segurança
Para relatar um problema de segurança, siga as instruções [aqui](https://github.com/ossf/scorecard/blob/main/SECURITY.md).
### Junte-se à Reunião do Projeto Scorecard
#### Zoom
**_APAC-friendly_** Quinzenalmente às quintas-feiras das 13:00 às 14:00 Horário do Pacífico ([Calendário Público 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))
Chamada de Vídeo: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA-friendly_** A cada 4 segundas-feiras das 7:00 às 8:00 Horário do Pacífico ([Calendário Público 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))
Chamada de Vídeo: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### Pauta
Você pode ver a [pauta e as notas da reunião aqui](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing).
## Estrelas ao longo do tempo
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Veja o [FAQ](https://github.com/ossf/scorecard/blob/main/docs/faq.md) para respostas às Perguntas Frequentes sobre o Scorecard.