La sicurezza delle applicazioni non si risolve con una singola tecnologia: è invece un insieme di best practice, funzioni e/o funzionalità aggiunte al software di un'organizzazione per prevenire e risolvere i danni e i pericoli causati da attacchi informatici, violazioni e altre minacce.
Esistono vari tipi di servizi, dispositivi e programmi di sicurezza delle applicazioni che un'organizzazione può utilizzare. Firewall, sistemi antivirus e crittografia dei dati sono solo alcuni esempi di risorse in grado di impedire agli utenti non autorizzati di accedere a un sistema. Se un'organizzazione desidera proteggere set di dati specifici e sensibili, può stabilire criteri univoci di sicurezza delle applicazioni per tali risorse.
La sicurezza delle applicazioni riguarda vari momenti del loro ciclo di vita, ma la definizione delle best practice avviene di solito durante le fasi di sviluppo dell'applicazione. Le aziende possono tuttavia sfruttare diversi strumenti e servizi anche dopo la fase di sviluppo. Esistono centinaia di strumenti di sicurezza disponibili per le aziende, ciascuno con i propri scopi specifici. Alcuni blindano le modifiche al codice, altri tengono d'occhio le minacce software e altri crittografano i dati. Per non parlare del fatto che le aziende possono scegliere strumenti altamente specializzati per i diversi tipi di applicazioni.
Le aziende si affidano alle applicazioni per quasi tutto ciò che fanno, dunque mantenerle protette e sicure è imprescindibile. Ecco diversi motivi per cui le aziende dovrebbero investire nella sicurezza delle applicazioni:
Le aziende sanno che la sicurezza generale del datacenter è importante, ma poche dispongono di policy ben definite per la sicurezza delle applicazioni in grado di stare al passo con i criminali informatici e addirittura anticiparne le mosse.
L'esistenza di queste falle nella sicurezza è abbastanza preoccupante, ma lo è ancora di più quando le aziende non dispongono degli strumenti per evitare che esse attirino malintenzionati. Per garantire il successo di uno strumento di sicurezza delle applicazioni è necessario identificare le vulnerabilità e risolverle rapidamente prima che diventino un problema.
Ma i responsabili IT devono andare oltre queste due attività principali. Identificare e correggere le lacune di sicurezza è il pane quotidiano del processo di sicurezza delle applicazioni. Però man mano che i criminali informatici sviluppano tecniche più sofisticate le aziende devono portarsi avanti, possibilmente molto avanti, con moderni strumenti di sicurezza. Le minacce stanno diventando sempre più difficili da rilevare e ancora più dannose per le aziende: non c'è proprio spazio per strategie di sicurezza obsolete.
Al giorno d'oggi le organizzazioni hanno diverse opzioni quando si tratta di prodotti per la sicurezza delle app, ma la maggior parte di queste soluzioni rientra in due categorie: gli strumenti di testing della sicurezza, un mercato consolidato che si occupa di analizzare lo stato della sicurezza delle applicazioni; e gli strumenti di protezione tramite “schermatura”, che difendono e rafforzano le applicazioni per rendere le violazioni molto più difficili.
Nella categoria dei prodotti di testing della sicurezza sono poi comprese sottocategorie ancora più specifiche. Innanzitutto abbiamo la verifica della qualità e sicurezza del codice statico o Static Application Security Testing (SAST), che supervisiona specifiche aree del codice durante il processo di sviluppo dell'applicazione aiutando gli sviluppatori a garantire che durante questa fase non vengano create involontariamente lacune di sicurezza.
Abbiamo poi la verifica della qualità e sicurezza del codice dinamico o Dynamic Application Security Testing (DAST), che rileva eventuali lacune di sicurezza nel codice in esecuzione. Questo metodo è in grado di simulare un attacco a un sistema di produzione e aiutare sviluppatori e ingegneri a difendersi da strategie di attacco più sofisticate. Sia i test statici che dinamici sono particolarmente interessanti, dunque non sorprende che sia emerso un terzo test di tipo interattivo capace di combinare i vantaggi di entrambi.
Infine, i test di sicurezza delle applicazioni mobili rilevano, come suggerisce il nome, eventuali lacune negli ambienti mobili. Questo metodo è unico, in quanto è in grado di studiare il modo in cui un utente malintenzionato utilizza un sistema operativo mobile per violare il sistema e le applicazioni in esecuzione al suo interno.
Ma passiamo ora all'analisi della “schermatura”, o “shielding”, delle applicazioni. Come accennato, gli strumenti che appartengono a questa categoria sono concepiti come uno scudo a protezione delle applicazioni contro gli attacchi. Sebbene sembri a prima vista una soluzione ideale, questo genere di pratica è la meno usata, soprattutto se confrontata con gli strumenti di test. Di seguito sono comunque elencate le principali sottocategorie all'interno di questa tipologia di strumenti.
Innanzitutto abbiamo la tecnologia RASP (Runtime Application Self-Protection), che combina strategie di test e schermatura. Gli strumenti che usano questa tecnologia monitorano il comportamento delle applicazioni negli ambienti sia desktop che mobili. I servizi RASP aggiornano continuamente gli sviluppatori sullo stato della sicurezza delle applicazioni con avvisi frequenti, e possono anche terminare un'applicazione in caso di compromissione dell'intero sistema.
In seconda e terza istanza abbiamo l'offuscamento del codice/applicazione e il software di cifratura/anti-manomissione. Queste tipologie di strumenti hanno essenzialmente lo stesso scopo: impedire ai criminali informatici di violare il codice di un'applicazione.
Infine, gli strumenti di rilevamento delle minacce si occupano dell'analisi dell'ambiente in cui vengono eseguite le applicazioni. Questa categoria di strumenti è in grado di esaminare lo stato dell'ambiente di esecuzione, rilevare potenziali minacce e anche verificare se un dispositivo mobile è stato compromesso utilizzando le specifiche “impronte digitali” del device.
Per garantire alle applicazioni la sicurezza migliore e più robusta bisogna indubbiamente partire dal codice. È cruciale garantire la corretta implementazione di questo tipo di approccio, noto anche come security by design. Infatti, in molti casi, le vulnerabilità delle applicazioni nascono da un'architettura compromessa e piena di difetti di progettazione. Ciò significa che la sicurezza delle applicazioni deve essere inserita nel processo di sviluppo, vale a dire nel codice.
Con un approccio security-by-design le applicazioni sono in partenza prive di falle e ben protette perché progettate per la sicurezza. Ma al di là di questo metodo, ci sono molte altre best practice per la sicurezza delle applicazioni che le aziende dovrebbero tenere a mente mentre affinano la loro strategia.