La sicurezza del software rappresenta oggi una delle sfide più rilevanti per le aziende e il rapporto annuale State of Software Security 2024 di Veracode, giunto alla sua quattordicesima edizione, propone un’analisi dettagliata dello stato della sicurezza applicativa, con un focus particolare sul crescente problema del “debito di sicurezza”. Questo termine descrive i difetti nel codice che rimangono irrisolti per un periodo prolungato, accumulando rischi per le organizzazioni. Un tema importante, anche considerato che proprio a gennaio di quest’anno è entrato in vigore Dora che spinge le aziende a lavorare su conformità e resilienza operativa, in particolare nel settore finance.
Il rapporto si basa sulla raccolta di dati frutto di 18 anni di scansioni e analisi su milioni di applicazioni provenienti da diversi settori industriali. Gli strumenti utilizzati includono in particolare, l’analisi statica per individuare vulnerabilità nel codice sorgente (Sast – Static Application Security Testing), l’analisi dinamica per rilevare difetti durante l’esecuzione (Dast – Dynamic Application Security Testing) e l’analisi delle dipendenze e dei componenti di terze parti (Sca – Software Composition Analysis). Chris Eng, chief research officer di Veracode, nel suo commento introduttivo al rapporto, evidenzia in particolare come la sicurezza del software non sia un problema esclusivamente tecnico, ma un riflesso delle priorità organizzative: “Il debito di sicurezza – spiega – non si accumula solo a causa di difetti trascurati, ma anche per scelte deliberate fatte dai team di sviluppo”.
I numeri della software security
Secondo i dati riportati, l’80% delle applicazioni attive presenta difetti di sicurezza. Un dato impressionante che, pur non indicando un rischio uniforme, evidenzia quanto la sicurezza del software rimanga una sfida universale. Le scansioni Sca hanno inoltre rilevato che il 70% delle applicazioni include vulnerabilità derivanti da librerie di terze parti, mentre il 63% presenta difetti nel codice proprietario. Questi dati mostrano che non è sufficiente concentrarsi esclusivamente sul codice scritto internamente: le dipendenze esterne, spesso non direttamente sotto il controllo delle organizzazioni, rappresentano una fonte critica di rischio. In particolare, nel rapporto è centrale il concetto di debito di sicurezza.
Si definisce come l’insieme dei difetti non risolti per oltre un anno. I dati mostrano che il 42% delle applicazioni contiene debiti di sicurezza, mentre il 46% delle organizzazioni presenta difetti critici persistenti. Un aspetto particolarmente preoccupante riguarda il fatto che quasi due terzi dei debiti di sicurezza critici (67%) derivano da codice di terze parti. Questo implica che le organizzazioni devono adottare strategie specifiche per gestire la sicurezza delle loro dipendenze software. Emerge inoltre un ulteriore dato cruciale: quello relativo alla differenza nei tempi di risoluzione dei difetti. Il report indica infatti che quando si parla di codice proprietario la metà dei difetti viene risolta in 7 mesi, mentre nel caso di codice di terze parti il tempo necessario sale a 11 mesi. Un ritardo significativo che aggrava l’esposizione. Questo divario riflette una sfida strutturale: i difetti nel codice di terze parti dipendono da sviluppatori esterni per essere risolti, sottraendo alle organizzazioni il controllo diretto. Merita una nota in questo contesto proprio l’analisi del codice open source. Le librerie open-source rappresentano una parte fondamentale dell’ecosistema del software moderno, ma la loro gestione è complicata. La metà dei difetti in queste librerie non viene risolta entro un anno, e il 70% delle applicazioni dipende da componenti open-source. Un’ulteriore preoccupazione riguarda la concentrazione dello sviluppo: in molti casi, poche persone mantengono librerie utilizzate da migliaia di applicazioni, creando un punto critico di vulnerabilità.
Un’altra metrica interessante è la densità dei difetti, che misura il numero di vulnerabilità per ogni megabyte di codice. In media, un’applicazione presenta 42 difetti per megabyte di codice. Questa cifra varia ampiamente tra le applicazioni: alcune mostrano densità estremamente basse, altre un numero preoccupante di difetti. Sebbene non tutti i difetti rappresentino rischi critici, una densità elevata può aumentare significativamente la superficie di attacco disponibile. Il rapporto evidenzia poi che alcuni linguaggi sono più inclini ad accumulare debiti di sicurezza. Ad esempio, linguaggi come Java e .Net, spesso utilizzati in applicazioni aziendali complesse, mostrano tassi più elevati di vulnerabilità persistenti rispetto a linguaggi più leggeri come Python.
I trend incoraggianti
Dal 2016, la prevalenza di difetti critici è diminuita del 50%, un risultato attribuibile agli investimenti in strumenti di sicurezza e alla crescente adozione di pratiche di sviluppo sicuro. Questo trend positivo suggerisce che un approccio strategico può fare la differenza, anche di fronte a sfide complesse. Le organizzazioni che adottano programmi di formazione continua, per esempio, riportano risultati significativamente migliori. Solo il 37% delle applicazioni sviluppate da team formati contiene debitì di sicurezza, contro il 48% di quelle sviluppate da team non formati e i tempi di risoluzione dei difetti si riducono di sette mesi nelle organizzazioni che investono nella formazione. Un tema interessante è naturalmente poi l’uso dell’intelligenza artificiale (AI) per accelerare la risoluzione dei difetti. Sebbene l’AI generi codice con una percentuale di errori simile a quella umana, strumenti basati su modelli di linguaggio avanzati potrebbero offrire suggerimenti per correggere vulnerabilità su larga scala.
Le raccomandazioni
Il rapporto propone infine diverse strategie per ridurre il debito di sicurezza. Consiglia in particolare di integrare la sicurezza nell’intero ciclo di sviluppo software (Sdlc), per cui la sicurezza deve essere considerata fin dalle prime fasi dello sviluppo, con l’implementazione di scansioni continue e strumenti integrati. Serve poi focalizzarsi sui difetti critici perché anche se solo il 3% dei difetti rappresenta un rischio critico, ma eliminarli può ridurre significativamente il rischio complessivo. Modelli AI ben addestrati possono accelerare la risoluzione dei difetti e ridurre il carico sui team di sviluppo e la formazione continua consente ai team di comprendere meglio le vulnerabilità e di adottare pratiche di codifica sicura. Infine, le organizzazioni devono monitorare attivamente le librerie utilizzate e adottare strumenti per valutare la loro sicurezza.
© RIPRODUZIONE RISERVATA