Le falle di sicurezza sono difetti che possono portare a diverse vulnerabilità, sfruttabili all’interno del codice per consentire agli attaccanti di violare le applicazioni. Per questo, i responsabili IT e di sicurezza concordano sull’importanza di mantenere sempre aggiornate applicazioni e soluzioni tecnologiche

Ѐ il software che promuove l’innovazione e permette alle aziende di progredire nella trasformazione digitale, consentendo loro di fornire servizi e programmi in modo più efficiente, trasparente ed economico. Per questo motivo, i responsabili IT e di sicurezza concordano sull’importanza di mantenere sempre aggiornate applicazioni e soluzioni tecnologiche. Utilizzare queste ultime in versioni obsolete e non applicare le più recenti patch al software permette ai criminali informatici di sfruttare molto più facilmente le vulnerabilità per accedere a informazioni sensibili, lanciare attacchi denial-of-service o addirittura prendere il controllo dei sistemi.

Oggi, gli sviluppatori hanno a disposizione numerosi tool per velocizzare le proprie attività sulle applicazioni, ad esempio di strumenti di automazione, tecnologie cloud-native, architetture a microservizi e codice open source: questo però introduce anche nuove complessità e rischi per la protezione aziendale. Poiché il mondo è diventato così interconnesso, una falla di sicurezza in un’applicazione può avere un effetto a catena, rendendo un software vulnerabile in tutto il mondo.

Software altamente vulnerabili

Si tratta di un problema emerso con forza negli ultimi tre anni, con una serie di attacchi che ha interessato la cosiddetta software supply chain. Secondo una ricerca di IBM, il costo medio di una violazione dei dati nel 2023 è di 4,45 milioni di dollari, in aumento rispetto ai 4,35 milioni di dollari dell’anno scorso, con una tendenza alla crescita che non accenna a rallentare. I responsabili IT devono aiutare gli sviluppatori a ridurre al minimo l’introduzione e l’accumulo di punti critici di sicurezza nel loro software. Le falle di sicurezza sono difetti di implementazione che possono portare a diverse vulnerabilità, sfruttabili all’interno del codice per consentire agli attaccanti di violare le applicazioni.

Dal nostro più recente report sulla sicurezza applicativa è emerso che le falle sono così diffuse che il 32% delle applicazioni risulta possederne già nel momento in cui viene messo in produzione per la prima volta. Dopo cinque anni, la percentuale che presenta almeno una falla di sicurezza sale al 70%. Questo suggerisce che le operazioni per porvi rimedio debbano iniziare il prima possibile, perché un’applicazione accumula vulnerabilità in modo costante.

Sia per l’aumento della complessità dovuto ad anni di crescita, sia per la inevitabile diminuzione dell’attenzione alla produzione nel corso del tempo, c’è il 90% di possibilità che un’applicazione contenga almeno una falla entro i 10 anni di vita. Dimensioni, età e tempo trascorso dall’ultima scansione sono fattori che aumentano la probabilità di introdurre nuove falle e non basta semplicemente evidenziarle per risolverle. Gli sviluppatori devono comprendere al meglio come correggerle ed evitare di crearne di nuove in futuro.

Tre buone pratiche per ridurre le vulnerabilità

Scansione tramite API, formazione sulla sicurezza e frequenza delle scansioni sono tre best practice utili da adottare per ridurre l’introduzione di falle nel tempo:

  • Privilegiare l’automazione tramite scansioni API: l’aumento dei processi di automazione e dei componenti nello sviluppo del software ha determinato l’esigenza di livelli più elevati di velocità e automazione nella sicurezza del software. Questa tipologia di scansione si riferisce a programmi che impiegano l’automazione e limitano l’interazione umana durante il ciclo di vita dello sviluppo del software. Le aziende che prevedono l’automazione per lanciare scansioni tramite API ottengono risultati migliori, riducendo la possibilità di introdurre falle. Secondo il nostro report State of Software Security, quando le applicazioni integrano l’analisi del codice nella loro pipeline tramite scansione API, la probabilità di falle diminuisce in media del 2%, riducendo quindi anche la percentuale mensile di nuove vulnerabilità, dal 27% al 25%

 

  • Eseguire scansioni frequenti e di diversa tipologia: l’attività di analisi, dall’ideazione alla distribuzione, fino alla dismissione dell’applicazione, elimina la maggior parte delle vulnerabilità che conducono a violazioni di sicurezza. Più un team aspetta ad analizzare un’applicazione, più è probabile che scopra una o più falle in fase di scansione. Per ogni mese di ritardo, le aziende possono prevedere un aumento medio di probabilità di introduzione di vulnerabilità dell’1,3%. Con il trascorrere del tempo, le falle si accumulano rapidamente, per questo test e integrazione continui, che includono la scansione della sicurezza nelle pipeline, sono ormai diventati la norma, rispetto a un decennio fa quando le applicazioni venivano analizzate due o tre volte all’anno. Oggi, il 90% delle applicazioni viene scansionato più di una volta alla settimana, e la maggior parte anche tre volte. Le aziende dovrebbero sfruttare più di una tipologia di scansione, utilizzando una suite completa di strumenti che includa scanning statici, dinamici e analisi della composizione del software (SCA – software composition analysis).

 

  • Formare gli sviluppatori sul campo: la formazione in materia di sicurezza rimane fondamentale per l’individuazione di falle e la loro successiva correzione. Le aziende possono implementare percorsi di formazione che aiutino gli sviluppatori a comprendere meglio le vulnerabilità, tramite esperienza diretta. Utilizzando codice reale, gli specialisti IT vengono guidati attraverso esempi di falle di codifica specifiche e possono quindi sviluppare ed eseguire exploit per definire la propria intuition relativa alle falle di sicurezza e scrivere le patch che possono risolverle, fornendo esperienza e competenze per eventuali casi futuri.

In aggiunta a queste tre iniziative, le aziende dovrebbero prendere in considerazione la definizione di un programma esteso per la gestione del ciclo di vita delle applicazioni che comprenda anche controllo delle modifiche, allocazione delle risorse e verifiche organizzative.

Integrare la sicurezza nell’intero ciclo di vita di sviluppo del software può permettere alle aziende di abbattere sensibilmente il rischio e contribuire al loro successo. Gli sforzi per automatizzarla e semplificarla aiuteranno i team a stabilire sistemi di difesa efficaci, rimediando alle falle nella pipeline, già a livello di sviluppo.

A cura di Massimo Tripodi, Country Manager di Veracode Italia