Quali sono le best practice che gli esperti consigliano, per proteggere applicazioni e database nell’intero ciclo di vita di sviluppo e deploy, in un processo agile? A rispondere è Leonardo Boscaro, South Europe Leader, DBaaS, Nutanix
Nel corso degli ultimi anni, con l’esplosione della containerizzazione e del public cloud, è aumentato notevolmente il rischio di essere esposti a vulnerabilità di sicurezza in quanto è sempre più difficile definire quale sia il perimetro aziendale all’interno del quale si è protetti.
Su internet possiamo trovare più di 700.000 database accessibili da qualsiasi parte del mondo e vulnerabili ad attacchi di criminali informatici.
Secondo l’Identity Theft Resource Center, il numero di data breach negli Stati Uniti ha raggiunto il suo massimo storico nella seconda metà del 2023. Alla fine di settembre, l’ITRC ha registrato oltre 2.100 violazioni e fughe di dati che hanno avuto un impatto su 233,9 milioni di persone e gli attacchi zero-day registrati ad Ottobre 2023 sono aumentati del 1.620% rispetto allo stesso mese dell’anno precedente.
Oggi la situazione è ancora più complessa in quanto per le applicazioni moderne il modello hybrid e multicloud è la normalità, e presto, con l’incremento di AI Apps, ci sarà una forte spinta verso l’edge.
Per questo motivo oggi si parla di Everywhere Cloud e diventa indispensabile rendere olistico l’approccio alla sicurezza che deve diventare parte integrante dell’intero processo di vita e gestione delle applicazioni e soprattutto dei loro dati. Può sembrare una sfida complicata e costosa, ma oggi esistono tecnologie che, by design e in modo trasparente sia rispetto all’infrastruttura di riferimento che ai processi di sviluppo, abilitano l’adozione di tutte le principali best practice, permettendo di mantenere gli stessi standard di sicurezza noti per le applicazioni tradizionali anche per il nuovo mondo.
Come affrontare le nuove insidie
L’utilizzo di container e microservizi ha accelerato in modo significativo il time to market per gli sviluppatori di app. Portabilità, modularità, scalabilità e automazione sono solo alcune delle caratteristiche di questi strumenti che permettono a sviluppatori e team di operations di collaborare, realizzando il DevOps.
L’utilizzo del public cloud ha permesso di rendere le risorse computazionali disponibili “a servizio” e oggi uno sviluppatore può avere un database di qualsiasi tecnologia disponibile in pochi minuti, invece che giorni o settimane, ed è proprio questa libertà che aumenta il rischio di trascurare importanti misure di sicurezza come quelle legate ai dati e alla loro protezione.
Le prime applicazioni cloud-native erano in gran parte stateless (si pensi alla ricerca sul web, ad esempio) e i dati e i database erano un pensiero secondario. Oggi, invece, la maggior parte delle applicazioni cloud-native o moderne richiede uno o più database, spesso di tecnologie differenti. Diventa quindi indispensabile utilizzare le best practice di sicurezza fin dall’inizio per gestire e proteggere i dati associati all’applicazione. Ma non sempre c’è consapevolezza e preparazione.
I 4 requisiti indispensabili per securizzare i dati delle applicazioni moderne senza rallentare lo sviluppo continuo
Le funzioni essenziali per la protezione delle applicazioni moderne sono quattro.
Crittografia dei dati con accesso alle macchine virtuali – Crittografate i dati con sistemi di key management è un must per ottimizzare la sicurezza. Oppure un altro metodo è quello di utilizzare l’encryption a livello di macchina virtuale (VM) così come di engine database. Questo però può risultare difficile quando si utilizzano servizi database nativi del public cloud, in quanto il service provider o l’hyperscaler non danno accesso ai database a livello di macchina virtuale. La prima scelta che devono fare le aziende che hanno bisogno di determinati livelli di sicurezza e sovranità del dato, è quella di scegliere una tecnologia di Database as a Service che gli consenta di avere flessibilità nella gestione automatizzata ma al contempo gli permetta di mantenere una solida posture di sicurezza grazie al fatto che possono avere maggiore controllo.
Segmentazione della rete – Anche con l’utilizzo di applicazioni eseguite in container, che isolano ogni microservizio, le reti devono continuare ad essere segmentate. Il motivo sta nel fatto che è comunque possibile ad accedere alle applicazioni e comprometterle tramite tecniche di port-scanning. La segmentazione della rete fornisce un ulteriore livello di isolamento fisico o logico che limita i movimenti est-ovest degli aggressori, anche se fossero in grado di compromettere uno dei segmenti.
Le regole di segmentazione dei microservizi, distribuite su diversi server o container, dovrebbero essere accompagnate da norme di accesso con privilegi minimi. In questo modo, nessuna persona, applicazione o processo ha accesso ai dati, ad eccezione di coloro che li richiedono.
Patching regolare – L’applicazione regolare di patching per database e sistemi operativi rimane un aspetto fondamentale contro le vulnerabilità, nuove ed esistenti. Tuttavia, per mancanza di tempo o competenze, molti team IT non riescono a stare al passo con le crescenti minacce. In un’indagine del 2022 del Ponemon Institute, il 60% di vittime di violazioni ha dichiarato che la causa della violazione è stata una vulnerabilità nota non adeguatamente corretta.
Nel solo mondo database, sono state identificate migliaia di vulnerabilità e più di 100 fanno riferimento ad una sola tecnologia.
Utilizzo di immagini software (Golden Image) certificate – Una golden image è un modello di macchina virtuale (VM), creato con le specifiche aziendali, salvato e riutilizzato quale modello per il rilascio di nuove copie. L’utilizzo di immagini certificate aziendalmente permette di far risparmiare molto tempo, garantisce la coerenza, permette di ridurre gli errori e i rischi associati, elimina la necessità di attività ripetitive di configurazione e garantisce quel controllo completo, che sul public cloud non si può avere.
Il vantaggio di questa metodologia è che indipendentemente dall’utilizzatore, si avrà sempre la certezza che le immagini rilasciate siano protette secondo gli standard aziendali aggiornati, evitando change e quindi ritardi successivi.
Questa metodologia è nota e molto utilizzata dai team di Infrastrutture IT; tuttavia le difficoltà arrivano quando si parla di deploy di un nuovo database o di una copia di un database esistente, in quanto sono richieste ulteriori attività di hardening manuale svolte dai DBA, ovvero gli amministratori di database. Questi task necessitano di tempo, spesso molto giorni. In un processo di sviluppo continuo, i rallentamenti dovuti a questo step sono la principale causa di controversia con i team di sviluppo. D’altra parte, i DBA sono responsabili anche delle Operations dei database e risentono della spinta proveniente dai team di sicurezza che chiedono di applicare regolarmente patch di sicurezza per ridurre rischi di vulnerabilità. Il risultato è che, in molte aziende, non si riesce a fare tutto, per cui: o si rallenta la produttività o si trascura la sicurezza.
Per mitigare questo problema, è necessario sfruttare l’automazione offerta da alcune tecnologie di database as a service, che elimina i task manuali e porta la filosofia delle Golden Image fino a livello database. Sarà in questo modo possibile: parallelizzare i task dei DBA, portare in maniera agile la sicurezza e il controllo anche nello sviluppo continuo. Sarà inoltre possibile avere un’unica modalità di lavoro che è valida sia on premise e in public cloud indipendentemente dall’engine database utilizzato.
Aumentare la consapevolezza
Oggi è facile fruire di soluzioni che permettano di accelerare al massimo lo sviluppo di app e nuove funzionalità ma al tempo stesso è altrettanto importante scegliere soluzioni che: integrino le best practice di sicurezza e lo facciano in maniera seamless ovunque: nel public cloud, nel private cloud o nell’edge.
Dato che il numero di minacce informatiche è in continuo aumento, è indispensabile che tutti i team IT, siano consapevoli che la sicurezza è imprescindibile, qualunque sia la fase di sviluppo software in corso.