Protezione delle pipeline con Scribe

Protezione delle pipeline con Scribe

Gli attacchi alla catena di fornitura del software sono in aumento e la necessità di rispondere a questo vettore di attacco è diventata cruciale. Ma da dove cominciare?

Se conoscessi i piani di battaglia dell'attaccante, potresti dare la priorità ai tuoi sforzi di conseguenza. Non disponiamo di piani specifici dell'aggressore, ma disponiamo di un modello dei tipici piani di battaglia dell'aggressore: la matrice delle minacce CI\CD basata sulla Quadro di attacco MITRE.

Leggere la tabella seguente da sinistra a destra ci guida attraverso il ciclo di attacco: l'aggressore deve ottenere l'accesso iniziale, quindi eseguire il codice, raggiungere la persistenza, sviluppare capacità mediante escalation di privilegi, elusione della difesa e accesso alle credenziali. In questo modo, gli aggressori possono eseguire un movimento laterale per raggiungere la preda e poi attaccare, esfiltrandosi o provocando altri impatti.

Ciascuna colonna della tabella elenca le tecniche che l'aggressore può utilizzare. Ad esempio, la prima colonna suggerisce che l'accesso iniziale potrebbe essere ottenuto tramite una precedente compromissione di CI\CD o tramite controlli di accesso deboli (account valido di un servizio Git, account valido di un servizio CI\CD o account amministratore valido di un server critico).

 

L'approccio basato sull'evidenza di Scribe per proteggere la catena di fornitura è essenzialmente semplice:

Considera attendibile un artefatto solo se è associato a prove di supporto, prove firmate definite attestazioni digitali.

Per implementare questo approccio, Scribe fornisce gli strumenti software necessari per raccogliere e gestire tali prove e valutare l'affidabilità dell'artefatto secondo politiche e attestazioni (prove firmate).

Ottieni il brief della soluzione

Esempi di politiche supportate da Scribe:

Criteri delle impostazioni di sicurezza

Garantire che le impostazioni di sicurezza dei servizi utilizzati durante il processo di compilazione soddisfino uno standard predefinito.

Criteri di modifica di origine\file\modulo

Verifica che il codice sorgente, le configurazioni, gli script di build e i file IoC siano stati modificati secondo uno standard predefinito che definisce identità, processi, passaggi e stati.

Criteri di integrità origine\file\modulo

Assicurarsi che il codice sorgente, i file e i moduli siano identici alle versioni consentite predeterminate.

Politiche di trust delle dipendenze

Assicurarsi che le dipendenze utilizzate rispettino uno standard predefinito (come OSSF Scorecard, versione-età, elenco consenti\esclusione).

Politiche sulle vulnerabilità

Assicurarsi che le dipendenze e altri componenti di origine pubblica (chiusi o aperti) non rappresentino un rischio elevato per la sicurezza.

Politiche relative al ciclo di vita dello sviluppo software

Assicurarsi che il codice sia stato rivisto dalle parti interessate, che i commenti siano stati risolti e che i test e i test di sicurezza siano stati completati con successo.

Politiche di comportamento della pipeline

Mantenere il comportamento della pipeline secondo il piano. Ad esempio, richiedi che un'immagine venga inviata come output della pipeline e non da qualche altro processo.

Esempi di prove che Scribe raccoglie in modo continuo e automatizzato per ogni build:

SBOM a grana fine dall'SCM di origine e artefatti finali (contenitori)

Istantanee dell'ambiente di costruzione

Istantanee del repository sorgente

Impostazione di sicurezza del controllo del codice sorgente e dell'ambiente di compilazione

Eventi rilevanti a livello di sistema operativo raccolti dalla macchina di compilazione