L'arrivo dei marketplace sui nostri dispositivi, come per esempio l'App Store per iOS e il Microsoft Store per Windows, ci ha assicurato una questione importante: la provenienza e l'integrità del software che andiamo a scaricare e installare. Infatti, prima dell'introduzione dello store, qualsiasi software per Windows eravamo costretti a cercarlo liberamente sul web, con il rischio di scaricare "exe" contenenti malware o altro, che potevano compromettere l'integrità della macchina.
Lo stesso meccanismo deve essere valido per tutti i tipi di artefatti che scarichiamo da GitHub, perchè vogliamo avere la certezza di come siano stati compilati i binari, da quale repository, organizzazione, commit, ambiente etc... Per questo su GitHub è nato il concetto di artifact attestation, che è anche compliant con il framework SLSA v1.0 Level 2.
Per generare un attestato di provenienza è sufficiente garantire gli adeguati permessi:
permissions: id-token: write contents: read attestations: write
E quindi possiamo andare a firmare l'artefatto:
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-path: 'PATH/TO/ARTIFACT'Se questo è un container (anche oggetti OCI sono supportati), dobbiamo solo cambiare qualche property:
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
subject-digest: 'sha256:fedcba0...'Si può verificare poi l'attestato generato con il seguente comando della CLI di GitHub:
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Interazione con ReconnectModal in Blazor
Interagire con Azure DevOps tramite MCP Server
Integrare il Docker Model Runner in un workflow di GitHub
Utilizzare i command service nei test con .NET Aspire
Importare repository da Bitbucket a GitHub Enterprise Cloud
Esporre un server MCP esistente con Azure API Management
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Le cron expression di un workflow di GitHub
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Definire il colore di una scrollbar HTML tramite CSS
Effettuare chiamate API tramite GitHub App
Evitare la compressione degli artefatti in un workflow di GitHub


