
OpenSSF Scorecard - Métricas de salud de seguridad para código abierto
Creamos Scorecard para ayudar a los mantenedores de código abierto a mejorar sus buenas prácticas de seguridad y para ayudar a los consumidores de código abierto a juzgar si sus dependencias son seguras.
Scorecard es una herramienta automatizada que evalúa una serie de heurísticas importantes ("verificaciones") asociadas con la seguridad del software y asigna a cada verificación una puntuación de 0 a 10. Puede usar estas puntuaciones para comprender áreas específicas de mejora con el fin de fortalecer la postura de seguridad de su proyecto. También puede evaluar los riesgos que introducen las dependencias y tomar decisiones informadas sobre si aceptar estos riesgos, evaluar soluciones alternativas o trabajar con los mantenedores para realizar mejoras.
La inspiración para el logotipo de Scorecard: "¡Aprobaste! Todo D ... ¡y una A!"
Automatizar el análisis y las decisiones de confianza sobre la postura de seguridad de los proyectos de código abierto.
Usar estos datos para mejorar de forma proactiva la postura de seguridad de los proyectos críticos de los que depende el mundo.
Actuar como herramienta de medición para políticas existentes
Si los consumidores de OSS exigen ciertos comportamientos de sus dependencias,
Scorecard se puede usar para medirlos. Con el lanzamiento de V5, vemos
los Resultados Estructurados como una forma de hacer esto si hay un análisis compatible.
En lugar de depender de una puntuación agregada de X/10, o una puntuación de Mantenimiento de
Y/10, un consumidor de OSS puede querer asegurarse de que el repositorio del que depende
no esté archivado (lo cual cubre el probe archived). La OpenSSF
adopta este enfoque con su propia Línea Base de Seguridad para proyectos.
Ser un informe definitivo o un requisito que todos los proyectos deban seguir.
Scorecard no pretende ser una solución única para todos. Cada paso de la creación de nuestros resultados es opinable: qué verificaciones se incluyen o excluyen, la importancia de cada verificación y cómo se calculan las puntuaciones. Las propias verificaciones son heurísticas; hay falsos positivos y falsos negativos.
Ya sea por aplicabilidad, viabilidad o cuestión de opinión, lo que se incluye o excluye de los resultados de Scorecard genera mucha discusión. Es imposible crear un Scorecard que satisfaga a todos porque diferentes audiencias se preocuparán por diferentes subconjuntos de comportamiento.
Las puntuaciones agregadas en particular no dicen nada sobre qué comportamientos individuales realiza o no un repositorio. Muchas puntuaciones de verificación se agregan en una sola puntuación, y hay múltiples formas de llegar a la misma puntuación. Estas puntuaciones cambian a medida que agregamos nuevas heurísticas o refinamos las existentes.
Scorecard se ha ejecutado en miles de proyectos para monitorear y rastrear métricas de seguridad. Los proyectos destacados que usan Scorecard incluyen:
Para ver las puntuaciones de los proyectos analizados regularmente por Scorecard, navegue al visor web. También puede reemplazar el texto de marcador de posición (plataforma, usuario/org y nombre del repositorio) en el siguiente enlace de plantilla para generar un enlace de Scorecard personalizado para un repositorio:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
Por ejemplo:
Para ver las puntuaciones de proyectos no incluidos en el visor web, use la CLI de Scorecard.
Realizamos un análisis semanal de Scorecard del millón de proyectos de código abierto más críticos según sus dependencias directas y publicamos los resultados en un conjunto de datos público de BigQuery.
Estos datos están disponibles en el conjunto de datos público de BigQuery openssf:scorecardcron.scorecard-v2. Los resultados más recientes están disponibles en la vista de BigQuery openssf:scorecardcron.scorecard-v2_latest.
Puede consultar los datos usando BigQuery Explorer navegando a Agregar datos > Destacar un proyecto por nombre > 'openssf'.
Por ejemplo, puede interesarle cómo ha cambiado la puntuación de un proyecto a lo largo del tiempo:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
Puede extraer los últimos resultados al almacenamiento de Google Cloud en formato JSON usando
la herramienta [`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
The list of projects that are checked is available in the
cron/internal/data/projects.csv
file in this repository. If you would like us to track more, please feel free to
send a Pull Request with others. Currently, this list is derived from projects
hosted on GitHub ONLY. We do plan to expand them in near future to account for
projects hosted on other source control systems.
La forma más fácil de usar Scorecard en proyectos de GitHub que posees es con la Acción de GitHub de Scorecard. La Acción se ejecuta en cualquier cambio del repositorio y emite alertas que los mantenedores pueden ver en la pestaña de Seguridad del repositorio. Para más información, consulta la instrucciones de instalación de la Acción de GitHub de Scorecard.
Para consultar puntuaciones precalculadas de proyectos OSS, usa la API REST.
Las puntuaciones calculadas a partir de nuestro escaneo semanal omiten las comprobaciones
CI-Tests, Contributors y Dependency-Update-Tool debido a los costos de API
asociados con ejecutarlas a gran escala.
Los resultados de la API se almacenan en caché con una CDN (gracias a Fastly y su programa Fast Forward). Los resultados se purgan de la CDN cuando hay nuevos resultados disponibles, pero si notas problemas con datos obsoletos, por favor abre un issue.
Para habilitar que tu proyecto esté disponible en la API REST, establece
publish_results: true
en la configuración de la Acción de GitHub de Scorecard.
Los datos proporcionados por la API REST están licenciados bajo CDLA Permissive 2.0.
Habilitar publish_results: true
en Acciones de GitHub de Scorecard también permite a los mantenedores mostrar una insignia de Scorecard en su repositorio para exhibir su
duro trabajo. Esta insignia también se actualiza automáticamente con cada cambio realizado en el repositorio. Consulta más detalles en esta publicación del blog de OSSF.
Para incluir una insignia en el repositorio de tu proyecto, simplemente agrega el siguiente markdown a tu README:```
### Interfaz de Línea de Comandos de Scorecard
Para ejecutar un análisis de Scorecard en proyectos que no posees, utiliza la opción de instalación de la interfaz de línea de comandos.
#### Requisitos previos
Plataformas: Actualmente, Scorecard admite plataformas OSX y Linux. Si estás usando un sistema operativo Windows, es posible que experimentes problemas. Las contribuciones para brindar soporte a Windows son bienvenidas.
Lenguaje: Debes tener GoLang instalado para ejecutar Scorecard
(https://golang.org/doc/install)
#### Instalación
##### Docker
`scorecard` está disponible como contenedor Docker:```shell
docker pull ghcr.io/ossf/scorecard:latest
Para usar una versión específica de scorecard (por ejemplo, v3.2.1), ejecuta:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### Independiente
Para instalar Scorecard de forma independiente:
Visite nuestra última [página de lanzamientos](https://github.com/ossf/scorecard/releases/latest) y
descargue el archivo zip correcto para su sistema operativo.
Agregue el binario a su directorio `GOPATH/bin` (use `go env GOPATH` para identificar su directorio si es necesario).
###### Verificación de procedencia SLSA para lanzamientos descargados
Generamos [firmas SLSA3](https://slsa.dev) utilizando el [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) de OpenSSF durante el proceso de lanzamiento. Para verificar un binario de lanzamiento:
1. Instale la herramienta de verificación desde [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. Descargue el archivo de firma `attestation.intoto.jsonl` desde la [página de lanzamientos de GitHub](https://github.com/GoogleContainerTools/jib/releases/latest).
3. Ejecute el verificador:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHub impone límites de tasa de API en solicitudes no autenticadas. Para evitar estos límites, debes autenticar tus solicitudes antes de ejecutar Scorecard. Hay dos formas de autenticar tus solicitudes: ya sea crear un token de acceso personal de GitHub o crear una instalación de GitHub App.
public_repo. Establece el token en una variable de entorno llamada
GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN o GH_TOKEN usando los
comandos a continuación según tu plataforma.```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
OR
- [Crear una instalación de GitHub App](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
para obtener cuotas de límite de tasa más altas. Si tienes una GitHub App instalada y un archivo de
clave, puedes usar las tres variables de entorno a continuación, siguiendo los
comandos (`set` o `export`) mostrados arriba para tu plataforma.```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
Estas variables se pueden obtener de la página de configuración de desarrollador de GitHub.
Scorecard puede ejecutarse usando solo un argumento, la URL del repositorio objetivo:```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 |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
El GITHUB_AUTH_TOKEN debe configurarse como un 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 una versión específica de scorecard (por ejemplo, v3.2.1), ejecuta:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
Para obtener más detalles sobre por qué falla una comprobación, use la opción --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' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
Las Anotaciones de Mantenedores permiten a los mantenedores agregar contexto para mostrar junto a los resultados de las comprobaciones de Scorecard. Las anotaciones pueden proporcionar a los usuarios información adicional cuando Scorecard tiene una evaluación incompleta de las prácticas de seguridad de un proyecto. Para ver las anotaciones de los mantenedores para cada comprobación, use la opción --show-annotations.
Para obtener más información sobre las anotaciones disponibles o cómo hacer anotaciones, consulte el documento de configuración.
Para ejecutar Scorecard en un repositorio de GitLab, debe crear un Token de Acceso de GitLab con los siguientes permisos:
read_apiread_userread_repositoryPuede ejecutar Scorecard en un repositorio de GitLab estableciendo la variable de entorno GITLAB_AUTH_TOKEN:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
Para ver un ejemplo del uso de Scorecard en GitLab CI/CD, consulte [aquí](https://gitlab.com/ossf-test/scorecard-pipeline-example).
###### Ediciones autoalojadas
Si bien nos centramos en el soporte de GitLab.com, Scorecard también funciona con instalaciones autoalojadas de GitLab.
Si su plataforma está alojada en un subdominio (por ejemplo, `gitlab.foo.com`), Scorecard debería funcionar sin problemas.
Si su plataforma está alojada en un slug (por ejemplo, `foo.com/bar/`), deberá configurar la variable de entorno `GL_HOST`.```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
Para usar un host de GitHub Enterprise github.corp.com, use la variable de entorno 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 un gestor de paquetes
Para proyectos en los ecosistemas `--npm`, `--pypi`, `--rubygems` o `--nuget`, tienes la
opción de ejecutar Scorecard usando un gestor de paquetes. Proporciona el nombre del
paquete para ejecutar las comprobaciones en el código fuente de GitHub correspondiente.
Por ejemplo, `--npm=angular`.
Nota: Los indicadores de ecosistema de paquetes son solo para encontrar un repositorio de GitHub.
Estos indicadores no cambian la evaluación final de las comprobaciones.
Además, los indicadores no pueden usarse con `--repo`.
##### Ejecutando comprobaciones específicas
Para ejecutar solo comprobaciones específicas, añade el argumento `--checks` con una lista de nombres
de comprobaciones.
Por ejemplo, `--checks=CI-Tests,Code-Review`.
##### Formateo de Resultados
Los formatos actualmente compatibles son `default` (texto) y `json`.
Estos se pueden especificar con el indicador `--format`. Por ejemplo, `--format=json`.
## Comprobaciones
### Comprobaciones de Scorecard
Las siguientes comprobaciones se ejecutan todas contra el proyecto objetivo por defecto:
Nombre | Descripción | Nivel de Riesgo | Token Requerido | Soporte GitLab | Nota
----------- | ----------------------------------------- | ---------- | --------------- | -------------- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | ¿Está el proyecto libre de binarios incorporados? | Alto | PAT, GITHUB_TOKEN | Compatible |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | ¿Utiliza el proyecto [Protección de Ramas](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | Alto | PAT (`repo` o `repo> public_repo`), GITHUB_TOKEN | Compatible (ver notas) | ciertas configuraciones solo son compatibles con un PAT de mantenedor
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | ¿Ejecuta el proyecto pruebas en CI, por ejemplo, [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | Bajo | PAT, GITHUB_TOKEN | Compatible
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | ¿Ha obtenido el proyecto una [Insignia de Mejores Prácticas de OpenSSF (anteriormente CII)](https://www.bestpractices.dev) en los niveles de aprobado, plata u oro? | Bajo | PAT, GITHUB_TOKEN | Validando |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | ¿Practica el proyecto la revisión de código antes de fusionar el código? | Alto | PAT, GITHUB_TOKEN | Compatible |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | ¿Tiene el proyecto contribuyentes de al menos dos organizaciones diferentes? | Bajo | PAT, GITHUB_TOKEN | Validando |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | ¿Evita el proyecto patrones de codificación peligrosos en los flujos de trabajo de GitHub Actions? | Crítico | PAT, GITHUB_TOKEN | No compatible |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | ¿Utiliza el proyecto herramientas para ayudar a actualizar sus dependencias? | Alto | PAT, GITHUB_TOKEN | Compatible |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | ¿Utiliza el proyecto herramientas de fuzzing, por ejemplo, [OSS-Fuzz](https://github.com/google/oss-fuzz), [QuickCheck](https://hackage.haskell.org/package/QuickCheck) o [fast-check](https://fast-check.dev/)? | Medio | PAT, GITHUB_TOKEN | Validando
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | ¿Declara el proyecto una licencia? | Bajo | PAT, GITHUB_TOKEN | Validando |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | ¿Tiene el proyecto al menos 90 días de antigüedad y se mantiene? | Alto | PAT, GITHUB_TOKEN | Validando |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | ¿Declara y fija el proyecto [dependencias](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)? | Medio | PAT, GITHUB_TOKEN | Validando |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | ¿Construye y publica el proyecto paquetes oficiales desde CI/CD, por ejemplo, [Publicación de GitHub](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages) ? | Medio | PAT, GITHUB_TOKEN | Validando |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | ¿Utiliza el proyecto herramientas de análisis estático de código, por ejemplo, [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)? | Medio | PAT, GITHUB_TOKEN | No compatible |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | ¿Contiene el proyecto una [política de seguridad](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository)? | Medio | PAT, GITHUB_TOKEN | Validando |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | ¿Firma criptográficamente el proyecto [lanzamientos](https://wiki.debian.org/Creating%20signed%20GitHub%20releases)? | Alto | PAT, GITHUB_TOKEN | Validando |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | ¿Declara el proyecto los tokens del flujo de trabajo de GitHub como [solo lectura](https://docs.github.com/en/actions/reference/authentication-in-a-workflow)? | Alto | PAT, GITHUB_TOKEN | No compatible |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | ¿Tiene el proyecto vulnerabilidades sin corregir? Utiliza el [servicio OSV](https://osv.dev). | Alto | PAT, GITHUB_TOKEN | Validando |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | ¿Tiene el webhook definido en el repositorio un token configurado para autenticar los orígenes de las solicitudes? | Crítico | PAT de mantenedor (`admin: repo_hook` o `admin> read:repo_hook` [doc](https://docs.github.com/en/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) | | EXPERIMENTAL
### Documentación Detallada de Comprobaciones
Para ver información detallada sobre cada comprobación, sus criterios de puntuación y
pasos de remediación, consulta la [página de documentación de comprobaciones](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md).
### Guía para Principiantes sobre las Comprobaciones de Scorecard
Para una guía sobre las comprobaciones que deberías usar al comenzar, consulta la
[guía para principiantes sobre comprobaciones de scorecard](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md).
## Otras Recomendaciones Importantes
### Autenticación de Dos Factores (2FA)
[Autenticación de Dos Factores (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) añade una capa adicional de seguridad al iniciar sesión en sitios web o aplicaciones. La 2FA protege tu cuenta si tu contraseña se ve comprometida al requerir una segunda forma de autenticación, como códigos enviados por SMS o aplicación de autenticación, o tocando una llave de seguridad física.
Recomendamos encarecidamente que habilites la 2FA en cualquier cuenta importante donde esté disponible. La 2FA no es una comprobación de Scorecard porque GitHub y GitLab no hacen públicos esos datos sobre las cuentas de usuario. Se podría argumentar que estos datos deberían permanecer siempre privados, ya que las cuentas sin 2FA son muy vulnerables a ataques.
Aunque no es una comprobación oficial, instamos a todos los mantenedores de proyectos a habilitar la 2FA para proteger sus proyectos de compromisos.
#### Habilitar la 2FA
##### Para usuarios
Sigue los pasos descritos en [Configurar la autenticación de dos factores](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)
Si es posible, usa cualquiera de los siguientes:
- llave de seguridad física (preferida), como Titan o Yubikey
- códigos de recuperación, almacenados en una bóveda protegida y cifrada
Como última opción, usa SMS. Precaución: la 2FA mediante SMS es vulnerable a [ataque de intercambio de SIM](https://en.wikipedia.org/wiki/SIM_swap_scam).
##### Para una organización
1. [Prepárate para exigir 2FA en tu organización](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. [Exigir 2FA en tu organización](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## Puntuación
### Puntuación Agregada
Cada comprobación individual devuelve una puntuación de 0 a 10, donde 10 representa la mejor
puntuación posible. Scorecard también produce una puntuación agregada, que es un
promedio ponderado de las comprobaciones individuales según el riesgo.
* Las comprobaciones de riesgo “Crítico” tienen un peso de 10
* Las comprobaciones de riesgo “Alto” tienen un peso de 7.5
* Las comprobaciones de riesgo “Medio” tienen un peso de 5
* Las comprobaciones de riesgo “Bajo” tienen un peso de 2.5
Consulta la [lista de comprobaciones actuales de Scorecard](#scorecard-checks) para conocer el nivel de riesgo de cada comprobación.
## Contribuir
### Reportar Problemas
Si tienes lo que parece ser un error, por favor usa el
[sistema de seguimiento de issues de GitHub.](https://github.com/ossf/scorecard/issues) Antes
de reportar un issue, busca entre los existentes para ver si tu problema ya está cubierto.
### Contribuir a Scorecard
Antes de contribuir, por favor sigue nuestro [Código de Conducta](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md).
Consulta la documentación de [Contribuir](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md) para obtener orientación sobre cómo
contribuir al proyecto.
### Añadir una Comprobación de Scorecard
Si deseas añadir una comprobación, consulta la guía [aquí](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md).
### Conéctate con la Comunidad de Scorecard
Si quieres involucrarte en la comunidad de Scorecard o tienes ideas que te gustaría
discutir, hablamos de este proyecto en las reuniones del
[Grupo de Trabajo de Mejores Prácticas de OSSF](https://github.com/ossf/wg-best-practices-os-developers).
Artefacto | Enlace
----------------------------- | ----
Foro de Desarrollo de Scorecard | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Foro de Anuncios de Scorecard | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
VC de Reunión Comunitaria | [Enlace a la reunión de z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
Calendario de Reuniones Comunitarias | **_Amigable para APAC_** Quincenalmente los jueves de 1:00-2:00 PM Pacífico ([Calendario Público de 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>Videollamada: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_Amigable para EMEA_** Cada 4 lunes de 7:00-8:00 AM Pacífico ([Calendario Público de 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> Videollamada: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
Notas de Reunión | [Notas](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Canal de Slack | [#scorecard](https://slack.openssf.org/#scorecard)
__Los mantenedores__ están listados en el [archivo CODEOWNERS](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS).
### Reportar un Problema de Seguridad
Para reportar un problema de seguridad, sigue las instrucciones [aquí](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md).
### Únete a la Reunión del Proyecto Scorecard
#### Zoom
**_Amigable para APAC_** Quincenalmente los jueves de 1:00-2:00 PM Pacífico ([Calendario Público de 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))
Videollamada: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_Amigable para EMEA_** Cada 4 lunes de 7:00-8:00 AM Pacífico ([Calendario Público de 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))
Videollamada: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### Agenda
Puedes ver la [agenda y notas de la reunión aquí](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing).
## Estrellas a lo largo del tiempo
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Consulta las [FAQ](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md) para respuestas a Preguntas Frecuentes sobre Scorecard.
| Gestor de paquetes | Distribución compatible | Comando |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| Ayudante de AUR | Arch Linux | Usa tu gestor de AUR para instalar scorecard |
| Homebrew | macOS o Linux | brew install scorecard |