
OpenSSF Scorecard - Metriche di salute della sicurezza per l'Open Source
Abbiamo creato Scorecard per aiutare i manutentori di open source a migliorare le loro buone pratiche di sicurezza e per aiutare i consumatori di open source a giudicare se le loro dipendenze sono sicure.
Scorecard è uno strumento automatizzato che valuta una serie di importanti euristiche ("checks") associate alla sicurezza del software e assegna a ciascun check un punteggio da 0 a 10. Puoi usare questi punteggi per capire in quali aree specifiche migliorare al fine di rafforzare la postura di sicurezza del tuo progetto. Puoi anche valutare i rischi introdotti dalle dipendenze e prendere decisioni consapevoli sull'accettazione di questi rischi, valutando soluzioni alternative o lavorando con i manutentori per apportare miglioramenti.
L'ispirazione per il logo di Scorecard: "You passed! All D's ... and an A!"
Automatizzare le analisi e le decisioni di fiducia sulla postura di sicurezza dei progetti open source.
Utilizzare questi dati per migliorare proattivamente la postura di sicurezza dei progetti critici da cui il mondo dipende.
Fungere da strumento di misura per le politiche esistenti
Se i consumatori di OSS richiedono determinati comportamenti dalle loro dipendenze,
Scorecard può essere utilizzato per misurarli. Con il rilascio V5, vediamo i
Structured Results come un modo per farlo se esiste un'analisi supportata.
Invece di basarsi su un punteggio aggregato di X/10 o su un punteggio Maintained di
Y/10, un consumatore di OSS potrebbe voler assicurarsi che il repository da cui dipende
non sia archiviato (cosa coperta dalla probe archived). OpenSSF
adotta questo approccio con il suo Security Baseline per i progetti.
Essere un report definitivo o un requisito che tutti i progetti dovrebbero seguire.
Scorecard non è inteso come una soluzione valida per tutti. Ogni passo nella creazione dei nostri risultati è opinabile: quali check includere o escludere, l'importanza di ciascun check e come vengono calcolati i punteggi. Gli stessi check sono euristiche; ci sono falsi positivi e falsi negativi.
Che sia per applicabilità, fattibilità o questione di opinione, ciò che è incluso o escluso dai risultati di Scorecard porta a molte discussioni. È impossibile creare una Scorecard che soddisfi tutti perché diversi pubblici si preoccuperanno di diversi sottoinsiemi di comportamento.
I punteggi aggregati in particolare non dicono nulla su quali singoli comportamenti un repository sta o non sta adottando. Molti punteggi dei check sono aggregati in un unico punteggio e ci sono molti modi per arrivare allo stesso punteggio. Questi punteggi cambiano man mano che aggiungiamo nuove euristiche o perfezioniamo quelle esistenti.
Scorecard è stato eseguito su migliaia di progetti per monitorare e tracciare le metriche di sicurezza. Tra i progetti di rilievo che utilizzano Scorecard ci sono:
Per vedere i punteggi dei progetti scansionati regolarmente da Scorecard, vai al webviewer. Puoi anche sostituire il testo segnaposto (piattaforma, utente/org e nome del repository) nel seguente link template per generare un link Scorecard personalizzato per un repository:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
Per esempio:
Per vedere i punteggi di progetti non inclusi nel webviewer, utilizza la CLI di Scorecard.
Eseguiamo una scansione settimanale di Scorecard sul milione di progetti open source più critici giudicati dalle loro dipendenze dirette e pubblichiamo i risultati in un set di dati pubblico di BigQuery.
Questi dati sono disponibili nel set di dati pubblico di BigQuery
openssf:scorecardcron.scorecard-v2. I risultati più recenti sono disponibili nella
vista BigQuery openssf:scorecardcron.scorecard-v2_latest.
Puoi interrogare i dati utilizzando BigQuery Explorer navigando su Add Data > Star a project by name > 'openssf'.
Ad esempio, potresti essere interessato a come il punteggio di un progetto è cambiato nel tempo:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
Puoi estrarre i risultati più recenti in Google Cloud storage in formato JSON utilizzando lo strumento [`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
L'elenco dei progetti che vengono controllati è disponibile nel file
cron/internal/data/projects.csv
in questo repository. Se desideri che monitoriamo altri progetti, invia pure una
Pull Request con altri. Attualmente, questo elenco deriva solo da progetti
ospitati su GitHub. Prevediamo di espanderlo in futuro per includere
progetti ospitati su altri sistemi di controllo versione.
Il modo più semplice per usare Scorecard su progetti GitHub che possiedi è con la Scorecard GitHub Action. L'Action viene eseguita su ogni modifica del repository e genera avvisi che i manutentori possono visualizzare nella scheda Sicurezza del repository. Per maggiori informazioni, consulta le istruzioni di installazione della Scorecard GitHub Action.
Per interrogare i punteggi precalcolati dei progetti OSS, usa la REST API.
I punteggi calcolati dalla nostra scansione settimanale omettono i controlli CI-Tests,
Contributors e Dependency-Update-Tool a causa dei costi API
associati all'esecuzione su larga scala.
I risultati delle API sono memorizzati nella cache tramite una CDN (grazie a Fastly e al loro programma Fast Forward). I risultati vengono eliminati dalla CDN quando sono disponibili nuovi risultati, ma se noti problemi con dati obsoleti, apri un issue.
Per abilitare il tuo progetto sulla REST API, imposta
publish_results: true
nelle impostazioni della Scorecard GitHub Action.
I dati forniti dalla REST API sono concessi in licenza sotto CDLA Permissive 2.0.
Abilitando publish_results: true
in Scorecard GitHub Actions si permette inoltre ai manutentori di visualizzare un badge Scorecard sul proprio repository per mostrare il loro
duro lavoro. Questo badge si aggiorna automaticamente a ogni modifica del repository. Maggiori dettagli su questo post del blog OSSF.
Per includere un badge nel repository del tuo progetto, aggiungi semplicemente il seguente markdown al tuo README:```
### Interfaccia a riga di comando di Scorecard
Per eseguire una scansione di Scorecard su progetti che non possiedi, utilizza l'opzione di installazione tramite interfaccia a riga di comando.
#### Prerequisiti
Piattaforme: Attualmente, Scorecard supporta le piattaforme OSX e Linux. Se stai utilizzando un sistema operativo Windows potresti riscontrare problemi. Contributi per supportare Windows sono benvenuti.
Linguaggio: È necessario avere GoLang installato per eseguire Scorecard
(https://golang.org/doc/install)
#### Installazione
##### Docker
`scorecard` è disponibile come container Docker:```shell
docker pull ghcr.io/ossf/scorecard:latest
Per usare una versione specifica di scorecard (ad esempio, v3.2.1), esegui:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### Standalone
Per installare Scorecard come standalone:
Visita la nostra ultima [pagina delle release](https://github.com/ossf/scorecard/releases/latest) e scarica il file zip corretto per il tuo sistema operativo.
Aggiungi il binario alla tua directory `GOPATH/bin` (usa `go env GOPATH` per identificare la tua directory se necessario).
###### Verifica della provenienza SLSA per le release scaricate
Generiamo [firme SLSA3](https://slsa.dev) utilizzando [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) di OpenSSF durante il processo di rilascio. Per verificare un binario di una release:
1. Installa lo strumento di verifica da [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. Scarica il file della firma `attestation.intoto.jsonl` dalla [pagina delle release di GitHub](https://github.com/GoogleContainerTools/jib/releases/latest).
3. Esegui il verificatore:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHub impone limiti di frequenza API sulle richieste non autenticate. Per evitare questi limiti, devi autenticare le tue richieste prima di eseguire Scorecard. Ci sono due modi per autenticare le tue richieste: creare un token di accesso personale GitHub, oppure creare un'installazione di GitHub App.
public_repo.
Imposta il token in una variabile d'ambiente chiamata
GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN o GH_TOKEN usando i
comandi qui sotto in base alla tua piattaforma.```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
OPPURE
- [Crea un'installazione di GitHub App](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
per quote di limite di velocità più elevate. Se hai un'App GitHub installata e un file di chiave,
puoi utilizzare le tre variabili d'ambiente sottostanti, seguendo i
comandi (`set` o `export`) mostrati sopra per la tua piattaforma.```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
Queste variabili possono essere ottenute dalla pagina GitHub impostazioni sviluppatore pagina.
Scorecard può essere eseguito con un solo argomento, l'URL del repository di destinazione:```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 |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
Il GITHUB_AUTH_TOKEN deve essere impostato su un token valido.```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
Per utilizzare una versione specifica di scorecard (ad es., v3.2.1), esegui:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
Per maggiori dettagli sul motivo per cui un controllo fallisce, usa l'opzione --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' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
Annotazioni dei manutentori consentono ai manutentori di aggiungere contesto da visualizzare insieme ai risultati dei controlli di Scorecard. Le annotazioni possono fornire agli utenti informazioni aggiuntive quando Scorecard ha una valutazione incompleta delle pratiche di sicurezza di un progetto. Per vedere le annotazioni dei manutentori per ogni controllo, usa l'opzione --show-annotations.
Per maggiori informazioni sulle annotazioni disponibili o su come crearle, consulta la documentazione di configurazione.
Per eseguire Scorecard su un repository GitLab, devi creare un GitLab Access Token con i seguenti permessi:
read_apiread_userread_repositoryPuoi eseguire Scorecard su un repository GitLab impostando la variabile d'ambiente GITLAB_AUTH_TOKEN:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
Per un esempio di utilizzo di Scorecard in GitLab CI/CD, vedi [qui](https://gitlab.com/ossf-test/scorecard-pipeline-example).
###### Edizioni self-hosted
Mentre ci concentriamo sul supporto di GitLab.com, Scorecard funziona anche con installazioni GitLab self-hosted.
Se la tua piattaforma è ospitata su un sottodominio (es. `gitlab.foo.com`), Scorecard dovrebbe funzionare senza bisogno di configurazioni aggiuntive.
Se la tua piattaforma è ospitata su un percorso (es. `foo.com/bar/`), dovrai impostare la variabile d'ambiente `GL_HOST`.```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
Per utilizzare un host GitHub Enterprise github.corp.com, utilizza la variabile d'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
##### Utilizzando un gestore di pacchetti
Per i progetti negli ecosistemi `--npm`, `--pypi`, `--rubygems`, o `--nuget`, hai la
possibilità di eseguire Scorecard tramite un gestore di pacchetti. Fornisci il nome del pacchetto per
eseguire i controlli sul corrispondente codice sorgente di GitHub.
Ad esempio, `--npm=angular`.
Nota: I flag dell'ecosistema del pacchetto servono solo per trovare un repository GitHub.
Questi flag non modificano la valutazione finale per i controlli.
Inoltre, i flag non possono essere utilizzati con `--repo`.
##### Esecuzione di controlli specifici
Per eseguire solo uno o più controlli specifici, aggiungi l'argomento `--checks` con un elenco di nomi
di controlli.
Ad esempio, `--checks=CI-Tests,Code-Review`.
##### Formattazione dei risultati
I formati attualmente supportati sono `default` (testo) e `json`.
Possono essere specificati con il flag `--format`. Ad esempio, `--format=json`.
## Controlli
### Controlli di Scorecard
I seguenti controlli vengono eseguiti di default sul progetto target:
Nome | Descrizione | Livello di Rischio | Token Richiesto | Supporto GitLab | Nota
----------- | ----------------------------------------- | ---------- | --------------- | -------------- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | Il progetto è privo di binari inclusi nel repository? | Alto | PAT, GITHUB_TOKEN | Supportato |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | Il progetto utilizza la [Protezione dei Branch](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) ? | Alto | PAT (con ambito `repo` o `repo> public_repo`), GITHUB_TOKEN | Supportato (vedi note) | alcune impostazioni sono supportate solo con un PAT da manutentore
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | Il progetto esegue test in CI, ad es. [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | Basso | PAT, GITHUB_TOKEN | Supportato
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | Il progetto ha ottenuto un [Badge OpenSSF (ex CII) Best Practices](https://www.bestpractices.dev) al livello passing, silver o gold? | Basso | PAT, GITHUB_TOKEN | In validazione |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | Il progetto pratica la revisione del codice prima che il codice venga unito? | Alto | PAT, GITHUB_TOKEN | Supportato |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | Il progetto ha contributori da almeno due organizzazioni diverse? | Basso | PAT, GITHUB_TOKEN | In validazione |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | Il progetto evita pattern di codifica pericolosi nei workflow di GitHub Action? | Critico | PAT, GITHUB_TOKEN | Non supportato |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | Il progetto utilizza strumenti per aiutare ad aggiornare le sue dipendenze? | Alto | PAT, GITHUB_TOKEN | Supportato |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | Il progetto utilizza strumenti di fuzzing, ad es. [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 | In validazione
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | Il progetto dichiara una licenza? | Basso | PAT, GITHUB_TOKEN | In validazione |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | Il progetto ha almeno 90 giorni ed è mantenuto? | Alto | PAT, GITHUB_TOKEN | In validazione |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | Il progetto dichiara e fissa le [dipendenze](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 | In validazione |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | Il progetto costruisce e pubblica pacchetti ufficiali da CI/CD, ad es. [Pubblicazione 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 | In validazione |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | Il progetto utilizza strumenti di analisi statica del codice, ad es. [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 (deprecato)](https://lgtm.com), [SonarCloud](https://sonarcloud.io)? | Medio | PAT, GITHUB_TOKEN | Non supportato |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | Il progetto contiene una [policy di sicurezza](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository)? | Medio | PAT, GITHUB_TOKEN | In validazione |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | Il progetto firma criticamente i [rilasci](https://wiki.debian.org/Creating%20signed%20GitHub%20releases)? | Alto | PAT, GITHUB_TOKEN | In validazione |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | Il progetto dichiara i token dei workflow GitHub come [sola lettura](https://docs.github.com/en/actions/reference/authentication-in-a-workflow)? | Alto | PAT, GITHUB_TOKEN | Non supportato |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | Il progetto ha vulnerabilità non risolte? Utilizza il [servizio OSV](https://osv.dev). | Alto | PAT, GITHUB_TOKEN | In validazione |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | Il webhook definito nel repository ha un token configurato per autenticare le origini delle richieste? | Critico | PAT da manutentore (`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) | | SPERIMENTALE
### Documentazione dettagliata dei controlli
Per informazioni dettagliate su ogni controllo, i suoi criteri di punteggio e
le fasi di correzione, consulta la [pagina della documentazione dei controlli](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md).
### Guida per principianti ai controlli di Scorecard
Per una guida ai controlli da utilizzare quando si inizia, consulta la [guida per principianti ai controlli di Scorecard](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md).
## Altre Raccomandazioni Importanti
### Autenticazione a Due Fattori (2FA)
[L'Autenticazione a Due Fattori (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) aggiunge un ulteriore livello di sicurezza durante l'accesso a siti web o app. La 2FA protegge il tuo account se la tua password viene compromessa, richiedendo una seconda forma di autenticazione, come codici inviati tramite SMS o app di autenticazione, o toccando una chiave di sicurezza fisica.
Raccomandiamo vivamente di abilitare la 2FA su tutti gli account importanti dove è disponibile. La 2FA non è un controllo di Scorecard perché GitHub e GitLab non rendono pubblici i dati sull'autenticazione a due fattori degli account utente. Probabilmente, questi dati dovrebbero rimanere sempre privati, poiché gli account senza 2FA sono molto vulnerabili agli attacchi.
Sebbene non sia un controllo ufficiale, esortiamo tutti i manutentori di progetto ad abilitare la 2FA per proteggere i loro progetti da compromissioni.
#### Abilitazione della 2FA
##### Per gli utenti
Segui i passaggi descritti in [Configurare l'autenticazione a due fattori](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)
Se possibile, utilizza uno dei seguenti:
- chiave di sicurezza fisica (preferita), come Titan o Yubikey
- codici di ripristino, conservati in un vault protetto con accesso e crittografato
Come ultima opzione, utilizza SMS. Attenzione: la 2FA tramite SMS è vulnerabile agli [attacchi di scambio SIM](https://en.wikipedia.org/wiki/SIM_swap_scam).
##### Per un'organizzazione
1. [Prepararsi a richiedere la 2FA nella tua organizzazione](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. [Richiedere la 2FA nella tua organizzazione](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## Punteggio
### Punteggio Aggregato
Ogni singolo controllo restituisce un punteggio da 0 a 10, dove 10 rappresenta il miglior
punteggio possibile. Scorecard produce anche un punteggio aggregato, che è una
media pesata dei singoli controlli, ponderata per il rischio.
* I controlli a rischio "Critico" hanno un peso di 10
* I controlli a rischio "Alto" hanno un peso di 7.5
* I controlli a rischio "Medio" hanno un peso di 5
* I controlli a rischio "Basso" hanno un peso di 2.5
Vedi l'[elenco dei controlli attuali di Scorecard](#scorecard-checks) per il livello di rischio
di ciascun controllo.
## Contribuisci
### Segnala Problemi
Se pensi di aver trovato un bug, utilizza il
[sistema di tracciamento dei problemi di GitHub.](https://github.com/ossf/scorecard/issues) Prima di
segnalare un problema, cerca tra i problemi esistenti per vedere se il tuo è già
coperto.
### Contribuisci a Scorecard
Prima di contribuire, segui il nostro [Codice di Condotta](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md).
Vedi la documentazione per [Contribuire](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md) per indicazioni su come
contribuire al progetto.
### Aggiungere un Controllo di Scorecard
Se desideri aggiungere un controllo, consulta le indicazioni [qui](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md).
### Connettiti con la Community di Scorecard
Se vuoi partecipare alla community di Scorecard o hai idee che desideri
discutere, parliamo di questo progetto nelle riunioni del
[Gruppo di Lavoro OSSF Best Practices](https://github.com/ossf/wg-best-practices-os-developers).
Artifact | Link
----------------------------- | ----
Forum degli Sviluppatori Scorecard | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Forum degli Annunci Scorecard | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
Videoconferenza Riunione Community | [Link alla riunione z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
Calendario Riunioni Community | **_APAC-friendly_** Ogni due settimane il giovedì dalle 13:00 alle 14:00 ora del Pacifico ([Calendario Pubblico 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>Videochiamata: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA-friendly_** Ogni 4 lunedì dalle 7:00 alle 8:00 ora del Pacifico ([Calendario Pubblico 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> Videochiamata: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
Note Riunione | [Note](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Canale Slack | [#scorecard](https://slack.openssf.org/#scorecard)
__Manutentori__ sono elencati nel file [CODEOWNERS](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS).
### Segnalare un Problema di Sicurezza
Per segnalare un problema di sicurezza, segui le istruzioni [qui](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md).
### Partecipa alla Riunione del Progetto Scorecard
#### Zoom
**_APAC-friendly_** Ogni due settimane il giovedì dalle 13:00 alle 14:00 ora del Pacifico ([Calendario Pubblico 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))
Videochiamata: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA-friendly_** Ogni 4 lunedì dalle 7:00 alle 8:00 ora del Pacifico ([Calendario Pubblico 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))
Videochiamata: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### Ordine del Giorno
Puoi vedere l'[ordine del giorno e le note della riunione qui](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing).
## Stargazers nel tempo
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Vedi le [FAQ](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md) per le risposte alle domande frequenti su Scorecard.
| Gestore di pacchetti | Distribuzione supportata | Comando |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| AUR helper | Arch Linux | Usa il tuo AUR helper per installare scorecard |
| Homebrew | macOS o Linux | brew install scorecard |