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 soluzioneEsempi 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