Le application programming interface (API) sono la componente distintiva delle moderne applicazioni cloud-ready basate su microservizi, porta d’ingresso verso un mondo di applicativi molto più flessibili rispetto al passato, dove è più facile aggiungere nuove funzioni utili e scambiare dati a vantaggio dell’innovazione continua e della flessibilità dei business.
Un esempio d’uso delle API è l’integrazione dei business nell’ambito dell’open banking con cui il legislatore europeo ha inteso introdurre interfacce standard per aprire il mercato dei servizi bancari. La pubblicazione dei servizi bancari attraverso API consente oggi l’integrazione con operatori terzi, come società fintech, assicurative, di commercio per la creazione di soluzioni innovative per i clienti. Un mondo, quello delle API, in ulteriore continuo sviluppo ma che, per crescere, ha bisogno di sicurezza e, quindi, di metodi e strumenti efficaci per la protezione dagli attacchi del cybercrime.
Il rischio cyber per microservizi e API, e la necessità d’automazione
Come accade per il codice applicativo, anche le API utilizzate nei moderni microservizi possono presentare vulnerabilità sfruttabili dal cybercrime per sottrarre dati o prendere il controllo dei sistemi. È quindi del tutto opportuno, per chi utilizza un moderno software con API e microservizi, effettuare test statici e dinamici per conoscere i rischi associati e, quindi, capire come mitigarli.
Test che, per essere efficaci, non possono essere fatti sporadicamente, ma devono essere ripetuti su base periodica per far fronte all’apparire di sempre nuove minacce. La necessità di dedicare nuove risorse alle analisi di vulnerabilità di security trova motivazioni nei cambiamenti architetturali del software.
“Se con il software monolitico tradizionale potevano esserci decine di applicazioni di cui testare la sicurezza, con le moderne architetture a microservizi possono esserci centinaia o anche migliaia di entità software indipendenti con le loro interfacce API”, spiega Paolo Restagno, vice president per l’Europa di Veracode. La sicurezza ha oggi problemi di scalabilità e complessità che possono essere risolti solo con l’automazione.
Dove nascono i problemi di sicurezza con le API
L’esposizione in rete dei servizi che colloquiano via API comporta inevitabilmente maggiori rischi di subire attacchi. “Rischi che aumentano esponenzialmente quando gli sviluppatori sottovalutano le vulnerabilità delle interfacce che collegano le diverse applicazioni” spiega Stefano Taino, CEO di Cryptonet Labs.
“Nella realizzazione di nuove app, per esempio, si fa spesso l’errore di limitare i test al codice che gira dal lato utente, trascurando invece le interfacce utilizzate nel backend per erogare dati e servizi”. Va da sé che dribblando i front end, l’attaccante possa ottenere servizi non previsti o sfruttare il varco per compiere violazioni peggiori. C’è poi la vulnerabilità dei flussi. “Le comunicazioni via API prevedono una fase di autenticazione iniziale a cui seguono le operazioni” precisa Taino. “Un cattivo sviluppo non tiene conto della necessità di proteggere entrambe le fasi. Ci si concentra sull’app o sul sito di nuova realizzazione e si dimentica di studiare la sicurezza dell’intera infrastruttura”.
Definire la roadmap per rendere API e applicazioni più sicure
Per affrontare il tema della sicurezza delle API serve un approccio programmatico. “Il punto di partenza si fissa sulla base del livello di maturità iniziale del cliente e dall’approccio che può risultare più efficace”, spiega Taino. Nelle aziende italiane la sensibilità sui temi dell’analisi di sicurezza per applicazioni e API è ancora molto bassa. “Vediamo un livello d’attenzione poco più che embrionale” precisa. “Il nostro approccio metodologico deve quindi partire dalla formazione degli sviluppatori sulle soluzioni d’analisi e test, attraverso l’impiego dell’e-learning e quindi di workshop dedicati agli specifici framework in uso”.
La formazione richiede molto impegno da parte delle persone, “uno sforzo che si rivela del tutto necessario per acquisire il linguaggio e la base di conoscenza che servono per ottenere sicurezza”. La roadmap d’implementazione procede con la creazione di team che propagano la conoscenza acquisita nei reparti di competenza, quindi con l’identificazione delle applicazioni sulle quali è più urgente intervenire.
Perché è importante fissare gli obiettivi e misurare i risultati
“Le persone dei team devono essere preparate a un cambiamento culturale e organizzativo” spiega Restagno. “Serve fissare con precisione gli obiettivi e quindi i parametri per misurare i risultati ottenuti. Portare le compliance di sicurezza dentro le applicazioni core business è l’obiettivo dei primi sei mesi. Successivamente ci si può dedicare alle applicazioni e alle vulnerabilità che hanno gravità decrescente”.
Il punto d’arrivo è mettere a punto il processo che permetta ai team di poter risolvere le vulnerabilità più gravi nell’arco massimo di 76 ore. “Portare KPI e misure temporali nelle consuetudini di lavoro dei team tecnici e dello sviluppo non è semplice ma necessario – conferma Taino. “La mancanza di elementi misurabili rispetto agli obiettivi fissati è il motivo per cui molti progetti di sicurezza non vanno a buon fine. Il motore analitico di Veracode ci dà le capacità che servono ai responsabili dei team di portare a manager e CEO i numeri che dimostrano il valore del lavoro effettuato”.
La piattaforma Veracode per l’application security testing
L’approccio all’application security testing offerto dalla piattaforma Veracode punta molto sul valore dell’integrazione dei diversi strumenti necessari per realizzare test di sicurezza statici e dinamici sia sulle componenti di codice sia d’interazione. “La piattaforma rende disponibili le componenti SAST DAST per tutte le tipologie d’analisi software – spiega Restagno – comprendendo alcune capacità specifiche per la valutazione delle API”.
Veracode dispone di funzioni che permettono di analizzare in profondità l’architettura delle API, “per vedere come sono state costruite e quindi fare esami pertinenti, importando nel motore d’analisi la struttura e il modello di configurazione” precisa Restagno. “Veracode aggiunge inoltre capacità dinamiche di scanning per le API in grado d’indicare sia i problemi sia di dare suggerimenti per i rimedi da attuare”.
Un altro aspetto importante è il supporto alle capacità d’automazione. “Sebbene si possa usare la piattaforma per fare analisi manuali e i pentest, è con l’automazione che si possono cogliere efficacemente i problemi e analizzare i flussi via API” conclude Taino. “La piattaforma Veracode aiuta a industrializzare l’attività di controllo lasciando più tempo ai team per le attività di maggior valore”.