Siamo nel pieno dell’API economy: oggi, infatti, le interfacce di programmazione applicativa non sono più mero strumento tecnico d’integrazione software, ma assurgono a meccanismo d’uso globale per semplificare la connessione tra sistemi, applicazioni, dati, e costruire nuovi prodotti e servizi digitali.
Qualche cifra: a giugno 2019, ProgrammableWeb annuncia che la propria directory ha infranto il muro delle 22mila API.
Le API, semplificando l’interazione con terze parti, facilitano la nascita di nuovi modelli di business, permettono di realizzare ‘user experience’ eccellenti e di espandere i canali commerciali e i fatturati aziendali: sfruttando il modello API, una società come Uber è cresciuta rapidamente, e nel 2019 il suo valore è stato stimato tra 80 e 90 miliardi di dollari.
Proprio perché le API gestiscono un business crescente e attraverso di esse passano informazione aziendali e dati degli utenti, il tema della sicurezza è diventato fondamentale. Non adottare una strategia di API Security significa rischiare violazioni e perdite di dati strategici o sensibili.
API Security, cos’è e come approcciarla
Con API Security si intende l’insieme dei metodi, prodotti, tecnologie di protezione che aiutano a difendere le API da tentativi di violazione, o a impedire l’accesso alle informazioni, in caso di attacchi al sistema.
Al di là delle metodologie, strumenti di difesa e protezione che verranno utilizzati, è però essenziale comprendere che la sicurezza delle API non è un aspetto di cui ci si può occupare in un secondo tempo: essa va affrontata subito, fin dall’inizio dello sviluppo del progetto, e deve costituirne parte integrante e prioritaria.
Da dove cominciare con l'API Security
Un buon punto di partenza per costruire una strategia di API Security può essere, per esempio, improntare la progettazione su linee guida come il documento OWASP (Open Web Application Security Project) Top 10 o eseguire un test di sicurezza. OWASP è un progetto no-profit che raccoglie linee guida, strumenti e metodologie che aiutano a capire a che livello di protezione si trova l’infrastruttura IT dell’organizzazione, come migliorare la security, e come evitare i rischi di sicurezza più critici durante lo sviluppo di software e applicazioni web.
Buone pratiche, strumenti e tecnologie per l'API Security
In fase di progettazione del software, le politiche applicabili per rafforzare la API Security possono riguardare le infrastrutture di sistema o interessare il design dei componenti e le loro relazioni - strategie di tipo architetturale.
Strategie infrastrutturali di API Security
- Cifratura della connessione. Un punto chiave è proteggere la sicurezza delle API implementando il protocollo HTTPS (Hypertext Transfer Protocol Secure), che in fase di trasmissione dati cifra il canale di comunicazione, utilizzando un protocollo crittografico come TLS (Transport Layer Security).
Inoltre, quando si implementa un protocollo HTTPS per un sito web, il livello di sicurezza è garantito da un certificato digitale, emesso da un’authority in grado di comprovare l’autenticità del sito stesso. Per aumentare ancor di più il livello di sicurezza in contesti B2B è possibile utilizzare l’approccio Mutual TLS (mTLS), in grado di identificare in modo sicuro anche il client che si è collegato al server. - Costante monitoraggio delle API. Identificare eventuali vulnerabilità nelle API è un’altra buona pratica, attuabile ad esempio attraverso tecniche di penetration testing. In questo modo è possibile, per esempio, individuare eventuali API non protette da ACL e provvedere a proteggerle.
- Gestione e limitazione delle richieste API (API throttling). Fissare limiti e quote per il numero totale di richieste API ricevibili nell'unità di tempo aiuta a proteggere i sistemi dal rischio di trovarsi ad amministrare più richieste di quelle effettivamente gestibili, mettendole al riparo anche da attacchi di tipo DoS (Denial of service) o DDoS (distributed DoS).
- Controlli di sicurezza. Misure di sicurezza preventive, come le tecniche di geo-IP filtering in grado di bloccare il traffico web in funzione del Paese di provenienza, o le tecniche di blocco chiamate da proxy anonimi possono aiutare a ridurre minacce e rischi per la API Security.
- Utilizzo di reti VPN. Le soluzioni di VPN (Virtual Private Network) consentono di stabilire connessioni sicure tra le reti locali e i dispositivi client, proteggendo il passaggio di informazioni dal rischio di attacchi man-in-the-middle.
Metodologie architetturali per l'API Security:
- Utilizzo di un API Gateway per centralizzare il controllo accessi. Specie quando i microservizi sviluppati utilizzano molte e differenti API, un Gateway permette di creare un singolo punto d’accesso al sistema, da cui è possibile gestire tutte le chiamate e richieste API.
Usando un API Gateway si può rafforzare la API Security, eseguendo il controllo degli accessi per ciascuna API, configurando regole di autenticazione, modalità di gestione delle richieste dati, quote e limiti per le chiamate API. - Selezione di metodi di autorizzazione ‘token-based’. Tra questi possiamo citare l’utilizzo di API key, stringhe immutabili che garantiscono l’accesso all’API e il protocollo di autorizzazione OAuth2. Utilizzando quest’ultimo protocollo, applicazioni di terze parti possono svincolarsi dalla gestione di autenticazione e profilo degli utenti, ricorrendo a un provider esterno per l’emissione di un token che identifica in modo univoco l’utente.
Il vantaggio è riscontrabile anche dall'utente, che potrà accedere a un’API senza dover fornire username e password, proteggendo in tal modo le proprie credenziali di accesso. - Utilizzo di una lista di controllo accessi (ACL). Adottando una ACL si può consentire o meno l’accesso a specifici dati/servizi della API, in funzione dell'appartenenza, dell’utente o dell’applicazione, alla lista stessa e del ruolo e livello di autorizzazione posseduto.
- Occultamento di informazioni negli URL. È importante fare in modo che nessuna credenziale API (username, password, token di sessione, chiavi API) possa rimanere visibile nell’indirizzo web del sito di accesso.
API Security e API Management
Fermo restando il principio chiave che la sicurezza delle API va affrontata sin dall’inizio del progetto, le best practice illustrate sono le più diffuse per rafforzare la propria strategia di API Security. Dovendo scegliere un punto di partenza, il miglior passo è probabilmente cominciare a separare i canali d’interazione commerciali dai sistemi core, da proteggere tramite una soluzione di API management in grado di fornire un API Gateway solido, leggero e affidabile.
© MIA s.r.l. Tutti i diritti riservati