Secondo una ricerca condotta da Sonatype, su 16 componenti open source e di terze parti almeno uno possiede una vulnerabilità nota. Questo dato potrebbe non sembrare eccessivo finchè non ci si rende conto che una società media scarica oltre 200.000 componenti all’anno. Questi componenti vengono scaricati dai team di sviluppo, i quali sono spesso inconsapevoli di eventuali vulnerabilità.
Come verificare la qualità dei componenti utilizzati?
Ovviamente, è fuori discussione rivedere manualmente ogni componente che si desidera scaricare e utilizzare: infatti, questo genere di review richiederebbe 2/4 ore per ogni componente e nessuna azienda ha tempo o risorse per farlo.
Tuttavia, esiste un modo più semplice (e gratuito) per capire se il repository contiene componenti con rischi noti di vulnerabilità di sicurezza o di licenza. Si tratta dell’App Scan, la scansione che permette di analizzare un’applicazione e individuare componenti con vulnerabilità o a rischio.
Proteggere la porta d’ingresso, la casa e la porta posteriore
Proteggere la porta d’ingresso.
Attivando la funzionalità del Repository Health Check, il report elaborato permette di rivelare la presenza di componenti indesiderati. Inoltre, grazie a Nexus Firewall, è possibile implementare un “controllo cyber” verso la “porta d’ingresso” del repository, con l’obiettivo di prevenire futuri download di componenti con vulnerabilità note, a rischio o non aggiornati.
Proteggere la casa.
Il software dura quanto il latte, non quanto il vino. Ciò che è perfettamente accettabile un giorno, può diventare estremamente rischioso il giorno dopo. Pertanto, è possibile continuare ad utilizzare i report del Repository Health Check per verificare automaticamente nel corso del tempo ogni possibile cambiamento del proprio repository.
Proteggere la porta posteriore.
Per coloro che utilizzano repository di staging nelle proprie configurazioni, Nexus Firewall può aiutare ad analizzare le possibili release. La suite di staging (disponibile nella versione commerciale di Nexus Repository) consente ad un’azienda di creare un repository temporaneo di staging e gestire la promozione dei componenti dallo staging ad un repository di rilascio. La possibilità di creare un repository isolato di potenziali release, che possono essere scartate o promosse, permette di supportare le decisioni che vanno a certificare una determinata release. Ciò consente di controllare meglio l’esatta serie di binari che alla fine sarà rilasciata.
Inoltre, con la soluzione Nexus Firewall, ogni componente nel repository di staging può essere valutato in base alle vulnerabilità note di sicurezza, alle versioni non aggiornate/indesiderate, o alle licenze rischiose. Utilizzato in questo modo, Nexus Firewall non solo protegge la “porta d’ingresso” del repository nel momento in cui si effettua il download dei componenti, ma custodisce anche la “porta posteriore” prima degli effettivi rilasci.
Risolvere grandi problemi
Come affermato da Deming, pioniere del DevOps, “per risolvere un grosso problema, è necessario innanzitutto rendersi conto di avere uno”.
Tutti noi abbiamo una supply chain del software che alimenta i componenti all’interno dei nostri repository manager ed è per questo motivo che una migliore visibilità sui componenti utilizzati potrebbe permetterci di individuare e risolvere le problematiche esistenti, a favore di un software migliore, ancora più veloce.
Questo topic copre solo un aspetto della DevSecOps. Infatti, c’è molto di più da imparare su questo argomento.