Conformità SLSA su larga scala: generazione della provenienza con Scribe

Tutti i messaggi

Questo articolo è stato scritto in collaborazione con Viktor Kartashov e Daniel Nebenzahl.

La prova del nove dell'auditor: puoi dimostrare le tue build?

"Puoi dimostrare, in modo definitivo, che ogni immagine di container che spedisci è stata costruita esattamente come affermi?"

La maggior parte dei revisori si aspetta una risposta rapida e sicura, non settimane di frenetico refactoring YAML. Il framework SLSA (Supply-chain Levels for Software Artifacts) fornisce il modello per tale prova: una provenienza strutturata e a prova di manomissione.

Ma ecco il problema: tradizionalmente, l'inserimento di un generatore di provenienza in ogni flusso di lavoro CI si trasforma rapidamente in un gioco del tipo "whack-a-mole":

  • Decine di repository? Ciò significa innumerevoli PR da rivedere e unire.
  • Cambiamenti nella pipeline? Manutenzione manuale costante.
  • Edifici storici? Non esiste un modo semplice per ricreare le prove delle versioni precedenti.

Scribe Security elimina questa difficoltà con SLSA on Scale. Grazie al nostro livello superiore Piattaforme CLI, raccoglie in modo intelligente i log CI esistenti, rileva automaticamente ogni build di immagine ed emette una provenienza completa e completa (non firmata per SLSA Livello 1 o firmata per SLSA Livello 2), il tutto da un singolo comando che non richiede alcuna configurazione preliminare.

Piattaforme CLI: il cambiamento di paradigma no-touch nella provenienza

Approccio tradizionale Scribe Platforms CLI
Incorpora un passaggio del generatore in ogni processo CI Nessuna modifica alla pipeline — analizza i registri dopo la build è completata
Difficile riempire vecchie build Crea retroattivamente la provenienza dalle esecuzioni del flusso di lavoro passate
Sforzo lineare per repo Una scala di comando a 10 → 1,000+ repository

Come avviene la magia: automatizzare la fiducia

Scribe Platforms CLI esegue una sofisticata danza dietro le quinte per fornire la provenienza SLSA automatizzata, il tutto senza interferire con le build esistenti:

  • Raccoglie tronchi: Scribe si connette al tuo sistema CI/CD (attualmente GitHub Actions, con supporto per GitLab e Jenkins in arrivo) per recuperare i log di build.
  • Rileva ogni build: Senza alcuna configurazione speciale nelle tue pipeline, Scribe identifica in modo intelligente i comandi Docker, Podman o Buildah per individuare ogni creazione di immagine.
  • Estrae i metadati chiave: Dettagli critici come tag immagine, digest crittografici, ID runner, argomenti di build e timestamp vengono estratti direttamente da questi log.
  • Genera SBOM collegati: Per una tracciabilità completa, Scribe crea automaticamente entrambi source Distinta base del software (SBOM) e Immagine SBOM, collegandoli direttamente alla provenienza della build.
  • It Crafts SLSA Provenienza: Grazie a questi dati approfonditi, Scribe elabora una dichiarazione di provenienza SLSA completamente conforme per ogni immagine.
  • Firma (facoltativa) per il Livello 2: Aggiungendo semplicemente un flag, Scribe si integra con la tua funzionalità di firma (X509, Pub-Priv, Sigstore o il tuo KMS preferito) per firmare crittograficamente la provenienza, elevandola al livello SLSA 2.
  • Convalida e segnala: Fondamentalmente, Scribe esegue automaticamente i predefiniti SLSA.l1 or SLSA.l2 iniziative contro le prove. Ciò ne convalida l'integrità e produce un rapporto SARIF completo, che viene anche firmato per la conformità di Livello 2.

Tutti gli artefatti generati possono rimanere locali oppure essere caricati in modo sicuro su Scribe Hub per un'archiviazione a lungo termine e a prova di manomissione.

Oltre la generazione: dimostrare la conformità con la politica come codice

Generare la provenienza è fondamentale, ma dimostrarne la conformità è ciò che realmente soddisfa i revisori. Subito dopo aver generato la provenienza SLSA, Scribe esegue automaticamente le opportune verifiche a fronte di tale evidenza.

Queste iniziative agiscono come revisori automatici, verificando aspetti quali:

  • La provenienza è ben formata e completa?
  • Tutti i campi necessari sono presenti e corretti?
  • Gli SBOM collegati sono validi e accessibili?
  • La provenienza è stata firmata crittograficamente dalle identità previste?

Il risultato? Un rapporto SARIF completo che descrive in dettaglio il tuo stato di conformità. Per il Livello 2, anche questo rapporto viene firmato, fornendo una risposta chiara, leggibile da un dispositivo automatico e verificabile per qualsiasi revisore.

Un esempio rapido: ottenere la provenienza SLSA con Scribe-Security 🚀

La CLI Platforms di Scribe-Security semplifica la generazione della provenienza SLSA per le build, offrendo un comando unificato per ottenere sia la garanzia di Livello 1 (non firmata) che di Livello 2 (firmata). L'elemento distintivo fondamentale è la presenza dell'argomento –valint.sign.

Per ottenere la provenienza SLSA per tutte le build basate su tag nel tuo repository scribe-security/valint su GitHub, dovresti eseguire il seguente comando:

Bash

Scribe entra quindi in azione: analizza i recenti flussi di lavoro di GitHub, rileva in modo intelligente le build delle immagini, raccoglie tutti i dati necessari e scrive una provenienza SLSA completa e completa con SBOM collegati.

–valint.sign: Il tuo passaggio al livello SLSA 1 o 2 🔑

–valint.sign flag funziona come un semplice interruttore:

  • Omettere –valint.sign per SLSA Livello 1 (Non firmato): Scribe genera una provenienza fondamentale e non firmata per una tracciabilità di base.
  • Includere –valint.sign per SLSA Livello 2 (Firmato): Scribe firma crittograficamente i file di provenienza e il report di conformità SARIF, garantendo un livello più elevato di garanzia verificabile.

Questo comando unificato, controllato da un singolo flag, semplifica il raggiungimento di una solida conformità SLSA su larga scala senza modificare le pipeline CI/CD esistenti.

Generazione della provenienza SLSA open source

La generazione della provenienza SLSA non è limitata ai repository privati. Molti progetti open source hanno registri CI/CD pubblici, rendendo possibile generare la provenienza per le loro build. Sebbene questi record di provenienza potrebbero inizialmente contenere informazioni meno estese (come i segreti del repository e dell'organizzazione), miglioramenti futuri, potenzialmente attraverso Fonte SBOM, potrebbe risolvere questo problema.

Ad esempio, è possibile generare facilmente la provenienza SLSA Livello 1 per go-gitea/gitea progetto utilizzando il piattaforme scoprono comando:

Dopo aver eseguito questo comando, verrà visualizzato un registro che indica la richiesta SLSA e una tabella che riassume le build delle immagini rilevate e la relativa provenienza:

Come potete vedere, al momento della stesura di questo articolo, l'ultima versione di `gitea/gitea` trovata era la **v1.24.2**. Le due immagini per le quali sono state rilasciate la provenienza SLSA e le relative prove sono `gitea/gitea:1.24.2` e `gitea/gitea:1.24.2-rootless`. A titolo di esempio, la provenienza SLSA può essere indicata nel seguente esempio. link

 


Con il nostro servizio gestiamo il ciclo di vita del framework e delle prove per fornire una panoramica chiara dei tuoi prodotti e delle tue risorse.

Questo contenuto è offerto da Scribe Security, un fornitore leader di soluzioni di sicurezza end-to-end per la catena di fornitura di software, che offre sicurezza all'avanguardia per artefatti di codice e processi di sviluppo e distribuzione del codice attraverso le catene di fornitura di software. Per saperne di più.