Autore: Redazione SecurityOpenLab
Le supply chain sono costituite da due elementi principali: i diversi componenti dell'applicazione e dell'infrastruttura che costituiscono le applicazioni native del cloud e la pipeline che li crea e distribuisce in un ambiente applicativo funzionante. Entrambi gli elementi sono soggetti a minacce da parte di malintenzionati che tentano di manomettere il codice per installare cryptominer o esfiltrare dati sensibili.
Nel recente Cloud Threat Report di Unit 42, il team ha condotto un esercizio di red team contro una software supply chain e realizzato uno studio sulla postura di sicurezza del codice open source. Dai risultati è emerso che l'accesso a credenziali eccessivamente permissive ha consentito movimento laterale e poisoning della pipeline CI/CD. Ciò evidenzia quanto possa essere facile per gli aggressori accedere a una pipeline per iniettare codice dannoso.
Come parte della stessa ricerca, una scansione dei componenti open source tra repository e registri ha rilevato che uno scioccante 64% dei moduli Terraform conteneva almeno una configurazione errata elevata o critica e il 91% delle immagini del container include una vulnerabilità elevata o critica. Se uno qualsiasi di questi componenti open source fosse incluso in un'applicazione, aumenterebbe la superficie di attacco per i malintenzionati.
La protezione da questi attacchi richiede stack e approccio completi del ciclo di vita per proteggere le pipeline. Serve quindi una piattaforma che fornisca una sicurezza completa per le catene di approvvigionamento cloud native, che effettui inventario e visualizzazione degli elementi della supply chain delle applicazioni. Con questa visibilità, DevOps e team di sicurezza avranno una migliore comprensione di tutti i componenti delle loro applicazioni e di come migliorare la loro postura. Questo approccio olistico e integrato consente di proteggere le applicazioni dal codice all’esecuzione.
Una supply chain sicura inizia con componenti open source protetti. Questi costituiscono la maggior parte delle applicazioni moderne, tuttavia, contengono alcune vulnerabilità. Identificare vulnerabilità e configurazioni errate nei pacchetti di repository e nei file IaC in locale, tramite le integrazioni dell'ambiente di sviluppo integrato (IDE) e gli strumenti Command Line Interface (CLI), consente la realizzazione del cosiddetto shift left. La piattaforma deve inoltre fornire suggerimenti di correzione per permettere agli sviluppatori di proteggere il proprio codice.
Prima di estrarre qualsiasi immagine da un registro pubblico che potrebbe contenere malware, è bene includere una tecnologia sandbox del container per controllare le immagini prima dell'uso. Questi strumenti aiutano a garantire che i componenti di un'applicazione siano il più sicuri possibile prima di lasciare il desktop dello sviluppatore. Inoltre, è fin troppo facile includere un secret, come una chiave API, nell’ambiente di sviluppo e applicarlo erroneamente in un repository, esponendo l’organizzazione ad attacchi. È necessario quindi identificare tutti i secret per prevenirne l’esposizione.
Nella fase di code, la sicurezza della supply chain del software si estende per includere la pipeline. Le integrazioni della piattaforma di sicurezza con i sistemi di controllo della versione (VCS) e le pipeline CI/CD devono includere controlli e esaminarli per garantire che solo il codice sicuro sia integrato nei repository e che le immagini del container sicuro procedano in registri affidabili.
Nella fase di build, serve verificare l'integrità delle pipeline VCS e CI/CD e garantire che siano in atto protezioni adeguate dei branch volte a prevenire attacchi di manomissione del codice. Le pipeline autorizzate a distribuire l'infrastruttura per il test e l'automazione devono essere limitate alle autorizzazioni minime richieste per svolgere le proprie attività.
Nella fase di implementazione, una supply chain sicura avrà una barriera finale per l'ammissione in un ambiente funzionante. Qui il controller di ammissione e l'integrazione con tecnologie cloud native come Open Policy Agent (OPA) possono essere l'ultima linea di difesa per prevenire configurazioni non sicure. Inoltre, si deve imporre che solo le immagini attendibili vengano prese dai registri nella produzione per prevenire gli attacchi di tipo poisoning delle immagini.