Le aziende oggi usano le applicazioni in casi e contesti molto diversi fra di loro, ma è certo che il loro utilizzo è sempre più diffuso: ricordiamo, infatti, che Applicazioni e Applicativi non sono sinonimi e che le prime sono molto più diffuse, anche in contesto aziendale, per offrire accesso a risorse, fornire dati, permettere attività dispositive. Con il crescere della loro diffusione e dell’importanza delle operazioni che permettono di svolgere, si rende necessaria una Application Security Strategy, ovvero una modalità che permetta di garantire la sicurezza e che non sia esclusivamente basata sulla contingenza.
Perché serve una Application Security Strategy?
Perché la sicurezza dovrebbe essere una preoccupazione così importante per le aziende? Una ragione è senza dubbio nel volume e nella qualità degli attacchi, sempre crescente sia in quantità (le richieste HTTP bloccate sono cresciute dell’86% del primo trimestre 2024) sia in qualità, con automazioni sempre più evolute e l’utilizzo malevolo dell’intelligenza artificiale. A fare da contraltare, si nota come il mondo della sicurezza applicativa sia ancora caratterizzato da uno scarso grado di maturità: secondo l’ultimo State of Application Security di CrowdStrike solo il 54% delle modifiche di codice sono sottoposti a verifiche di sicurezza mentre bel il 70% degli incidenti richiede più di 12 ore per essere risolta.
Avere una Application Security Strategy è senza dubbio importante, ma soprattutto è necessario che le aziende la metabolizzino come una reale necessità e non come un banale adempimento da avere, per esempio, a scopo di certificazione normativa.
Application security strategy, cosa le aziende oggi non fanno
Occorre un cambiamento non solo operativo, ma anche nell’approccio allo sviluppo applicativo. Per chiarire il concetto, abbiamo immaginato alcuni esempi di errori che ancora oggi mettono a rischio la sicurezza delle risorse aziendali attraverso la gestione impropria delle applicazioni.
Autenticazione e autorizzazione non pensate in ottica zero trust
In molte applicazioni si riscontra ancora una suddivisione imperfetta, o assente, fra autenticazione e autorizzazione. Bisognerebbe, invece, avere una separazione perfetta: una volta garantito l’accesso, per ogni operazione andrebbe valutata l’autorizzazione corrispondente. Il paradigma zero trust eleva ulteriormente questo concetto: secondo le buone pratiche sarebbe necessario anche assicurarsi dell’identità ogni volta, o quantomeno quando le telemetrie dei sistemi di sicurezza ne indicano la necessità.
Pensare alla sicurezza come a una serie di fix
C’è stato un tempo in cui la gestione “on demand” e sulla contingenza della sicurezza poteva essere tollerata, anche se non consigliabile. Questo facilita ancora oggi l’idea, errata, che anche l’Application Security sia una serie di interventi riparatori da effettuare a posteriori o comunque scollegata dallo sviluppo. Temi come Security by design e security by default ci spiegano invece come l’approccio corretto sia quello di includere la sicurezza applicativa fin dalla progettazione: la nostra Application Security Strategy deve tenerne conto e fare sì che la protezione dei sistemi sia una priorità in tutti i livelli dello stack.
Sottovalutare l’importanza delle prove sul campo
Anche nelle aziende che hanno comportamenti virtuosi per quanto riguarda la loro Application Security Strategy, può accadere che, in qualche modo, ci si fermi alla teoria. Si consideri, cioè, il compito esaurito con la messa in pratica delle strategie di sicurezza messe in atto. Dobbiamo invece ricordare quanto sia fondamentale collaudare la resistenza dei sistemi nei confronti di possibili attacchi reali e identificare eventuali falle che potrebbero finire sotto gli occhi di un attaccante esperto. Penetration Testing e Security Assessment effettuati da partner certificati sono gli strumenti che permettono di collaudare la propria sicurezza prima che possa essere messa alla prova dagli attaccanti.
Dimenticare che la sicurezza è una attività continua
Abbiamo accennato inizialmente a come le minacce siano in continua evoluzione: per questa ragione, la sicurezza, anche delle applicazioni, deve essere vista come una attività continua. Non sono sufficienti controlli periodici per garantire che il sistema aziendale sia al sicuro, soprattutto considerando che oggi molti dei servizi su cui le applicazioni si appoggiano sono gestiti interamente dal vendor, che può effettuare a sua volta aggiornamenti e patch in modo autoritario. Il fatto di non avere controllo su ogni singolo elemento dello stack applicativo è una ulteriore ragione per cui la sicurezza delle applicazioni deve essere costantemente monitorata, sia in modo proattivo, sia attraverso sensori e controlli automatici.
Non mettere in sicurezza la filiera di sviluppo
Nei punti precedenti abbiamo visto come l’Application Security Strategy debba seguire tutte le fasi, a partire dallo sviluppo. Merita di essere ricordato il fatto che la sicurezza dovrebbe essere una supply chain che ne segue da vicino tutte le fasi. Per esempio, un codice realizzato secondo tutte le best practices, che acceda a un database ugualmente protetto, potrebbe presentare vulnerabilità dinamiche dovute all’interazione fra i due sistemi. Vulnerabilità che possono essere identificate solo se si controlla la supply chain security nella sua interezza e non i singoli elementi isolati.
Mobile Application Security Strategy: un approccio specifico
La sicurezza delle applicazioni mobili è una componente essenziale della strategia complessiva di sicurezza delle applicazioni, data la loro crescente adozione in ambito aziendale e personale. Le applicazioni mobili presentano un insieme unico di sfide di sicurezza che richiedono un approccio dedicato e tecnico.
-
Gestione delle vulnerabilità e protezione delle API: Le applicazioni mobili spesso dipendono da API per la comunicazione con server remoti. È cruciale implementare l'autenticazione forte e la cifratura end-to-end per tutte le comunicazioni API. Le vulnerabilità delle API, come l'esposizione eccessiva dei dati e la mancanza di controlli di accesso adeguati, devono essere costantemente monitorate e mitigate attraverso un processo di patching continuo.
-
Sicurezza del codice e prevenzione delle manomissioni: Le applicazioni mobili possono essere soggette a reverse engineering e manomissioni. L'offuscamento del codice e l'integrazione di meccanismi di rilevamento delle manomissioni sono strategie chiave per proteggere la logica applicativa e le risorse critiche. Inoltre, l'utilizzo di librerie di terze parti sicure e aggiornate è fondamentale per ridurre il rischio di introdurre vulnerabilità.
-
Gestione delle identità e accesso: Implementare l'autenticazione multi-fattore (MFA) e l'autorizzazione basata sui ruoli può ridurre significativamente il rischio di accessi non autorizzati. L'integrazione con Identity and Access Management (IAM) consente un controllo centralizzato delle politiche di accesso, facilitando l'implementazione di pratiche di sicurezza coerenti.
-
Protezione dei dati sensibili: La crittografia dei dati a riposo sul dispositivo e in transito è essenziale per prevenire la divulgazione non autorizzata di informazioni sensibili. È importante utilizzare algoritmi di cifratura robusti e conformi agli standard di settore. Inoltre, la gestione sicura delle chiavi di cifratura attraverso soluzioni come il Secure Enclave (per iOS) o il Trusted Execution Environment (TEE) per Android è fondamentale.
-
Analisi delle minacce e risposta agli incidenti: Monitorare continuamente le applicazioni mobili per individuare comportamenti anomali e potenziali minacce è cruciale. L'integrazione di strumenti di Mobile Threat Defense (MTD) può aiutare a rilevare e bloccare tentativi di intrusione in tempo reale. Inoltre, un piano di risposta agli incidenti ben definito e testato aiuta a limitare i danni in caso di compromissione.
Queste misure, insieme a un processo di revisione continua della sicurezza durante tutto il ciclo di vita dello sviluppo delle applicazioni mobili, possono migliorare significativamente la postura di sicurezza di un'organizzazione. In un mondo sempre più mobile, affrontare con rigore tecnico le sfide di sicurezza mobile è imprescindibile per la protezione delle risorse digitali.
Per una (Mobile) Application Security Strategy davvero affidabile
Una strategia di sicurezza applicativa affidabile deve essere costruita su basi solide e tecnicamente robuste, abbracciando una visione che non si limiti alla contingenza. L'integrazione della sicurezza fin dalle prime fasi dello sviluppo è fondamentale, così come l'adozione di un approccio proattivo e continuo. Questo si applica anche alle applicazioni mobili, che rappresentano una parte sempre più critica dell'infrastruttura IT aziendale.
Per le applicazioni mobili, una strategia di sicurezza deve includere la gestione completa delle vulnerabilità attraverso il ciclo di vita del software, con particolare attenzione alla protezione delle API, alla crittografia dei dati e alla gestione delle identità. Il codice delle app mobili deve essere protetto contro il reverse engineering e le manomissioni attraverso tecniche di offuscamento e rilevamento delle manomissioni.
È essenziale che la sicurezza delle applicazioni mobili sia integrata nella strategia complessiva per garantire la protezione delle risorse aziendali in un panorama di minacce sempre più sofisticato. Solo attraverso una visione completa, che abbracci l'intero ciclo di vita delle applicazioni, mobili incluse, è possibile costruire una strategia davvero efficace e capace di proteggere le risorse aziendali.