Firma delle dipendenze e degli artefatti
Verificare la provenienza con SLSA e Sigstore.
Firma delle dipendenze e degli artefatti è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Perché la provenienza è importante
Un SBOM indica che cosa contiene un artefatto. La provenienza indica da dove proviene e come è stato creato. La firma lega un artefatto a un'origine verificabile, così chi lo utilizza può rifiutare tutto ciò che non è stato prodotto dalla vostra pipeline affidabile.
Senza informazioni sulla provenienza, un aggressore che sostituisca un tarball nel registry non si distingue da un rilascio legittimo.
Digest, non tag
La base dell'integrità è l'indirizzamento tramite contenuto. Un hash crittografico (digest) di un artefatto identifica univocamente quell'esatta sequenza di byte. I tag mutabili come latest possono essere riassegnati; un digest no.
# pull by immutable digest, not a tag
docker pull my-app@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f
# compute a file digest
sha256sum release-1.4.0.tar.gzNozioni di base sulle firme digitali
Una firma digitale usa una chiave privata per firmare l'hash dell'artefatto; chiunque disponga della chiave pubblica corrispondente può verificarla. Questo offre due garanzie:
- Integrità — l'artefatto non è stato modificato dopo la firma
- Autenticità — è stato firmato dal titolare della chiave privata
La difficoltà non è la matematica, ma la gestione delle chiavi e la distribuzione della fiducia: come fa un verificatore a sapere di quale chiave pubblica fidarsi?
Firma senza chiavi con Sigstore
La firma tradizionale costringe i team a proteggere chiavi private a lunga durata, che possono fuoriuscire. Sigstore offre la firma senza chiavi: rilascia un certificato a breve durata associato a un'identità OIDC, come un workload CI o l'indirizzo email di uno sviluppatore, firma e registra l'evento in un registro pubblico di trasparenza chiamato Rekor.
Non c'è alcuna chiave a lunga durata da sottrarre e ogni firma può essere sottoposta ad audit pubblico.
Firma con Cosign
Cosign è lo strumento di Sigstore per firmare immagini di container e altri artefatti. In modalità senza chiavi usa il token OIDC della pipeline, quindi nessun file di chiave viene memorizzato su disco.
# keyless sign in CI (uses ambient OIDC identity)
COSIGN_EXPERIMENTAL=1 cosign sign my-registry/my-app@sha256:1d5283...
# verify, asserting the expected signer identity
cosign verify my-registry/my-app@sha256:1d5283... \
--certificate-identity-regexp '.*@my-org\.com' \
--certificate-oidc-issuer https://accounts.google.comRegistro di trasparenza
Sigstore registra ogni evento di firma in Rekor, un registro pubblico append-only, a prova di manomissione. Si tratta di un efficace controllo investigativo:
- È possibile dimostrare quando qualcosa è stato firmato
- Un aggressore che sottrae un'identità non può firmare di nascosto — l'evento viene registrato pubblicamente
- Le firme anomale, per esempio con un'identità inattesa o fuori orario, diventano rilevabili
La trasparenza trasforma una compromissione silenziosa in un'evidenza osservabile.
SLSA: livelli di integrità della build
SLSA (Supply-chain Levels for Software Artifacts) è un framework che valuta l'affidabilità del processo di build. I livelli più alti richiedono garanzie più solide contro la manomissione.
- L1 — la provenienza esiste ed è documentata
- L2 — provenienza firmata da un servizio di build ospitato
- L3 — build rafforzate e isolate; la provenienza non può essere falsificata nemmeno da un insider della pipeline
SLSA è un percorso: scelga un livello obiettivo e colmi le lacune.
Attestazioni della provenienza della build
Un'attestazione della provenienza è una dichiarazione firmata che descrive come è stato creato un artefatto: il commit del codice sorgente, l'identità del builder, i parametri della build e gli input. Il formato in-toto standardizza questa dichiarazione.
# generate and attach SLSA provenance for an image
cosign attest --type slsaprovenance \
--predicate provenance.json \
my-registry/my-app@sha256:1d5283...
# verify provenance matches expected source repo
cosign verify-attestation --type slsaprovenance my-registry/my-app@sha256:1d5283...Applicazione delle firme in fase di ammissione
La firma è utile solo se qualcosa rifiuta gli artefatti privi di firma. In Kubernetes, un controller di ammissione può bloccare qualsiasi immagine priva di una firma valida e di informazioni sulla provenienza associate alla vostra identità affidabile.
- I controller delle policy verificano le firme cosign prima dell'avvio di un pod
- Rifiutano le immagini firmate da identità inattese
- Richiedono una provenienza che punti al repository sorgente approvato
In questo modo si chiude il ciclo: gli artefatti non attendibili non vengono mai eseguiti.
Firma delle dipendenze a monte
La provenienza è più preziosa quando si estende a ciò che si utilizza, non solo a ciò che si distribuisce. Gli ecosistemi stanno aggiungendo funzionalità native di firma e provenienza:
- npm provenance collega un pacchetto pubblicato al commit sorgente e all'esecuzione CI che lo ha prodotto
- Le immagini base dei container distribuiscono sempre più spesso firme cosign
- I registry dei linguaggi stanno sperimentando la verifica basata su Sigstore
Preferisca le dipendenze che pubblicano informazioni sulla provenienza verificabili e le verifichi durante l'installazione, quando supportato.
Dare priorità alla verifica
Una strategia di firma pratica è stratificata e verificata da un'estremità all'altra:
- Fissare gli input tramite digest
- Firmare gli artefatti senza chiavi e allegare SBOM e attestazioni di provenienza
- Registrare tutto in un registro di trasparenza
- Applicare la verifica in fase di deploy con una policy di ammissione
La catena è solida quanto il suo collegamento non verificato più debole, quindi verifichi ogni punto di utilizzo.
Verifica rapida: firma senza chiavi
Valuti in che modo la firma senza chiavi migliora la sicurezza della catena di fornitura.
Riepilogo: firma delle dipendenze e degli artefatti
Ha imparato a dimostrare la provenienza e a farla rispettare.
- Fissare gli artefatti tramite digest, non tramite tag mutabili
- Le firme digitali garantiscono integrità e autenticità; la sfida è la gestione delle chiavi
- Sigstore + cosign consentono la firma senza chiavi con il registro pubblico di trasparenza Rekor
- SLSA valuta l'integrità della build; le attestazioni di provenienza registrano come sono stati creati gli artefatti
- Le policy di ammissione rifiutano tutto ciò che non è firmato o non è attendibile al momento del deploy
Prossimo argomento: rafforzare la pipeline CI/CD che produce questi artefatti.
Domande Frequenti
La lezione «Firma delle dipendenze e degli artefatti» è gratuita?
Sì — il testo completo di «Firma delle dipendenze e degli artefatti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Firma delle dipendenze e degli artefatti»?
Verificare la provenienza con SLSA e Sigstore. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Firma delle dipendenze e degli artefatti»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Minacce alla supply chain
- Software Bill of Materials (SBOM)
- Firma delle dipendenze e degli artefatti
- Proteggere le pipeline CI/CD