SSDLC è l’acronimo di Secure Software Development Lifecycle, concetto che intende sottolineare l’importanza di inserire controlli “di sicurezza” in tutte le diverse ed articolate fasi che compongono per l’appunto la vita di un software (pianificazione, scrittura del codice, deploy ecc.).
Tale approccio permette di anticipare le verifiche di sicurezza (concetto dello “shift left”, ovvero intervenire quanto prima possibile in una ideale timeline di sviluppo), andando a intercettare problematiche che, se rilevate successivamente (ad esempio quando il codice è in produzione), potrebbero risultare estremamente più impegnative in termini di tempo e risorse necessarie per la risoluzione.
Indice degli argomenti
La security by design è imprescindibile
Come ovvio, questo approccio è strettamente collegato al concetto di “security by design”, ovverosia inclusione degli aspetti di protezione del dato sin dalla fase di progettazione di un sistema o servizio, tanto caro anche alla normativa sulla data protection (si pensi all’articolo 25 del GDPR che tratta espressamente della privacy by design & by default) e che oggi risulta del tutto imprescindibile nel momento in cui, ad esempio, si intende andare sul mercato, sia come fornitore che come cliente, con o rispettivamente alla ricerca di un nuovo applicativo.
Secondo una recente ricerca dell’Osservatorio Cybersecurity & Data Protection, su un campione di 110 grandi organizzazioni italiane il 38% ha implementato un programma di application security a fronte di un 35% che lo sta valutando (figura 1).
Come si può riscontrare nella Figura 2 fra chi ha risposto positivamente in merito alla presenza di un programma di application security ben l’86% effettuata attività di VAPT in ambiente di collaudo o produzione e l’81% ha definito policy e processi di sviluppo sicuro del software.
Troppo pochi, invece, solo il 33% ha definito e monitora KPI di sicurezza applicativa.
Interessante il fatto che sul campione di 38 aziende che hanno risposto positivamente in merito alla presenza di un programma di application security, oltre la metà effettua analisi SAST e la metà DAST.
Solo il 7%, invece, non effettua analisi di sicurezza del software.
Fondamentale è affrontare la tematica sia con un approccio di Secure Software Development Lifecycle che di Secure Services Development Lifecycle, andando quindi a fotografare una peculiarità attuale, ovvero il ricorso sempre maggiore a servizi cloud esternalizzati, che magari non richiedono che una organizzazione scriva effettivamente del codice gestendo dei sistemi on premise.
Un approccio di questo tipo non fa venire meno l’esigenza di sicurezza che sta alla base di SSDLC e anzi invita a focalizzarsi sul fatto che i medesimi principi di selezione, controllo e verifica vadano correttamente applicati anche ai fornitori di tali servizi, e dunque che chi effettivamente poi scrive e mantiene il codice sorgente rispetti le garanzie che l’interlocutore considera imprescindibili.
Secure Software Development Lifecycle: quale approccio
Un approccio SSDLC essenzialmente ha tre anime: persone, processi e tecnologia.
- Le persone vivono un cambiamento culturale che porta maggior consapevolezza rispetto al tema della sicurezza delle informazioni.
- Il processo di sviluppo viene modificato con la messa a terra di una vera e propria pipeline di sviluppo sicuro.
- La tecnologia ci permette sia di automatizzare il processo di cui sopra sia di intervenire in ciascuna delle fasi dello sviluppo con il test adatto.
Con particolare riferimento alla componente tecnologica si sottolinea come i moderni strumenti di analisi statica (SAST) e dinamica (DAST) del codice possono essere utilizzati in maniera combinata in fasi differenti dello sviluppo, andando a rilevare tempestivamente le vulnerabilità che gravano sul codice sorgente e consentendone la pronta risoluzione, magari assegnando a ciascuna vulnerabilità un livello di priorità d’intervento in base alla gravità della stessa.
Eventualmente questa tipologia di verifiche può essere integrata anche con ulteriori test di stampo più classico e meno automatizzabili tramite la pipeline di cui sopra (ad esempio il penetration test).
Per adottare correttamente SSDLC le organizzazioni devono fare uno sforzo importante sia a livello tecnico che organizzativo: è responsabilità dell’azienda infatti definire e formalizzare attraverso policy ad hoc una chiara strategia di implementazione in linea con gli standard e le best practice di settore (es. Secure Software Development Framework di NIST o Linee Guida per l’Adozione di un Ciclo di Sviluppo Software Sicuro dell’Agenzia per l’Italia Digitale) e dotarsi di strumenti che ne consentano la messa a terra.
È altresì fondamentale che l’Organizzazione determini gli indicatori (KPI) che servono a misurare l’effettiva bontà del processo di sviluppo sicuro, e possano fotografare il trade-off positivo che l’adozione di SSDLC ha rispetto ad approcci di sviluppo più classici (es. numero di vulnerabilità intercettate, tempistiche di rilascio ridotte ecc.).
Come innalzare la sicurezza delle applicazioni cloud-native
Dynatrace propone un approccio innovativo che unifica e automatizza le pratiche di osservabilità e sicurezza per permettere ai team DevSecOps di integrarle con semplicità in tutte le fasi del ciclo di vita del software, dallo sviluppo alla produzione, e favorire la collaborazione cross-dipartimentale.
Le funzionalità a disposizione degli specialisti Dev, ITOps e Security comprendono l’analisi delle vulnerabilità e la protezione delle applicazioni in ambiente di runtime, e l’esecuzione automatica dei test di sicurezza nelle pipeline di sviluppo.
Il tutto è supportato dalle tecnologie core alla base della piattaforma Dynatrace come OneAgent, un singolo agente installabile sui principali ambienti cloud e on-premise che acquisisce automaticamente i dati dell’intero stack applicativo, Grail, un data lakehouse con elevata capacità di elaborazione parallela, e Davis AI, un’intelligenza artificiale ipermodale (causale, predittiva e generativa).
La funzionalità Runtime Vulnerability Analysis
L’identificazione in tempo reale delle vulnerabilità aiuta ad accelerare la transizione verso un approccio proattivo alla sicurezza. La funzionalità, denominata Runtime Vulnerability Analysis (RVA), consente di:
- avere evidenza delle sole vulnerabilità delle librerie effettivamente in uso nell’applicazione monitorata, riducendo drasticamente l’impegno richiesto per l’analisi e la gestione;
- comprendere l’impatto e l’effettiva esposizione rispetto a una vulnerabilità dopo pochi minuti che questa è stata aggiunta nel database delle CVE (Common Vulnerabilities and Exposures);
- rilevare automaticamente le vulnerabilità nel codice e nelle librerie open source o di terze parti in tutti i livelli dello stack applicativo;
- prioritizzare le vulnerabilità in funzione del contesto di esecuzione, ad esempio sulla base della reale esposizione dei propri asset, anziché del solo CVSS (Common Vulnerability Scoring System).
Il Runtime Application Protection
Se non gestite per tempo, le vulnerabilità possono trasformare le applicazioni in punti di accesso per attacchi di varia natura. La capacità di bloccare gli attacchi di tipo injection del Runtime Application Protection (RAP) permette di:
- determinare con precisione eventuali attività malevole mediante il monitoraggio costante del flusso dati applicativo su tutti i livelli, dall’utente al database;
- bloccare attacchi SQLi, JNDIi e CMDi senza impattare sulla disponibilità del servizio o sugli altri utenti;
- proteggere gli ambienti da attacchi zero-day mentre gli sviluppatori stanno rimediando alle vulnerabilità rilevate.
Security Analytics: un supporto per gli specialisti cyber
Infine, il modulo Security Analytics aiuta gli specialisti della sicurezza a:
- integrare log, eventi e altri dati sulla sicurezza all’interno del contesto di esecuzione;
- condurre proattivamente attività di threat hunting per verificare se una vulnerabilità zero-day sia stata effettivamente sfruttata e, in caso positivo, rimediare tempestivamente;
- investigare sui tentativi di attacco rilevati per confermare l’efficacia delle misure di protezione e applicare i correttivi più opportuni.
Conclusioni
L’obiettivo di queste tecnologie combinate è mitigare i rischi e semplificare le operazioni di remediation mediante l’incremento dell’efficienza e l’automazione intelligente.
Ciò consente di supportare e accelerare l’adozione delle pratiche DevSecOps e rilasciare più rapidamente applicazioni più sicure.
La piattaforma Dynatrace e il modulo Application Security sono oggi utilizzati dalle principali organizzazioni pubbliche e private in Italia e nel mondo, e nel 2023 è stata nuovamente nominata leader nei quadranti Cloud-native Observability Solutions e Cloud-native Security Platforms del report ISG Provider Lens Multi-Public Cloud Solutions.
Contributo editoriale sviluppato in collaborazione con Dynatrace LLC