Nel suo studio “How to build an effective API security strategy”, Gartner stima che circa l’80% degli attacchi sul web oggi sia basato su API e che, dunque, la sicurezza delle API debba considerarsi una priorità in azienda.
 

Cosa sono le API, Application Programming Interface

Le API (Application Programming Interface, interfacce di programmazione applicativa) sono istruzioni sotto forma di codice di programmazione che definiscono le modalità di esposizione di dati e funzionalità di un software verso l’esterno. Grazie alle API si può rendere fruibile via web o dispositivi mobile un’applicazione aziendale, oppure aprire l’applicazione a terze parti, come fornitori e partner di filiera, e offrire ai propri cliente delle esperienze d’acquisto realmente connesse e fluide. Si tratta, dunque, di elementi indispensabili per lo sviluppo di ecosistemi d’offerta integrati e l’espansione degli ambienti applicativi aziendali al cloud, al web e all’IoT.

Oggigiorno, molte applicazioni sono basate su microservizi che usano le API per far interagire tra loro diversi componenti software con il backend. Allo stesso modo, sensori e oggetti connessi, device mobile e infrastrutture cloud rendono disponibili le proprie funzionalità anche all’esterno dell’ambiente aziendale grazie alle interfacce di programmazione.


Le 7 peggiori minacce alla sicurezza delle API

Le API svolgono un ruolo essenziale perché permettono a strumenti di terze part e plugin di integrarsi nelle applicazioni web e mobile aziendali per realizzare nuove funzionalità e migliorare la user experience. Tuttavia, proprio in virtù della maggior integrazione tra applicazioni e sistemi diversi che promuovono, le API sempre più spesso sono usate come cavallo di Troia per spianare la strada a diverse tipologie di attacchi cyber. Ecco i 7 più comuni:

•    Iniezione di codice: nel corso di questi attacchi, gli attacker iniettano del codice malevolo nel codice di programmazione di un software non adeguatamente securizzato. Le due tipologie più diffuse di attacchi di questo tipo sono l’SQL Injection, che prende di mira le applicazioni che si appoggiano ai database relazionali che usano il linguaggio SQL, e il Cross Site Scripting (XSS), che sfrutta le vulnerabilità dei siti web. Questi “buchi” di protezione possono essere sfruttati per inquinare le API dell’applicazione con dati malevoli nell’ambito di una query o di un comando e guadagnare l’accesso non autorizzato a dati più o meno sensibili.

•    Attacchi DoS e DDos: negli attacchi del tipo Denial of Service (DoS), l’attacker tempesta di richieste reti e server su cui poggia un sito web, saturando la banda di comunicazione e rendendolo di fatto inaccessibile per qualunque visitatore. Nel caso di attacchi distribuiti (DDoS), le richieste fasulle arrivano simultaneamente da più fonti, accelerando ulteriormente la compromissione dell’operatività del sito oggetto dell’attacco.

•    Broken authentication: questi particolari attacchi possono indurre un utente malintenzionato a bypassare o assumere il controllo dei metodi di autenticazione utilizzati da un programma web. L'autenticazione assente o inadeguata può provocare attacchi per cui le chiavi API e le password possono essere compromesse. Lo scopo dell'attacco è solitamente quello di hackerare diversi account, mettendo l’aggressore nella condizione di vantare gli stessi privilegi dell’utente attaccato.

•    Esposizione di dati sensibili: i dati sensibili - informazioni sanitarie o finanziarie, token di sessione, password - richiedono una sicurezza rafforzata che include la cifratura dei dati in transito o a riposo (rest). L’adozione di protocolli come SSL (Secure Socket Layer) e TLS (Transport Layer Security) si rivela efficace nel contrasto delle vulnerabilità di base ma non nella protezione contro le minacce più complesse.

•    Broken Access Control: in questo caso le restrizioni in merito a quel che un utente può o non può fare non sono correttamente configurate e questo permette di fatto a utenti semplici di usare funzionalità e accedere a dati che richiederebbero privilegi particolari. L’attacker si guadagna, così, l’accesso agli account di altri utenti, alterando i privilegi d’accesso e modificando dati.

•    Falsificazione dei parametri: molti programmatori utilizzano campi nascosti - come i cookies o i parametri di una URL - per proteggere determinate operazioni e migliorare le funzionalità dell’applicazione. Gli attacker, però, spesso possono riuscire con alcune tecniche di hacking a bypassare gli elementi posti a protezione di questi meccanismi, modificando i parametri relativi - per esempio, credenziali e permessi - per compiere transazioni altrimenti non autorizzate.

•    Man-In-The-Middle: consiste nell’intercettare, dirottare o alterare le comunicazioni tra due sistemi (host) facendo credere a entrambi di essere l’interlocutore legittimo. Così facendo, l’attaccante riceve tutto il traffico e potrà consultare, modificare e usare a suo piacimento le informazioni carpite.

Sicurezza delle API, gli attacchi più diffusi

I cicli di innovazione rapida tipici del business online e delle App mobile spesso portano gli sviluppatori ad accelerare i tempi di rilascio delle applicazioni, riducendo i cicli di test a detrimento della sicurezza delle API.
Molti dati sensibili vengono elaborati quotidianamente dalle API, come le informazioni di pagamento e le credenziali utente, ed ecco perché queste rappresentano un obiettivo particolarmente allettante per gli attacker.
Nel “2020-2021 State of Web Application Security Report” realizzato da Osterman Research si stima che in circa 4 aziende su 10 oltre la metà delle applicazioni in uso sia esposta ai servizi di terze parti o a Internet attraverso le API. Le evidenze dello studio indicano che oltre la metà delle organizzazioni (55%) subisce con cadenza almeno mensile un attacco DoS che sfrutta proprio le vulnerabilità delle interfacce di programmazione, mentre il 49% subisce mensilmente un attacco per iniezione. Volendo razionalizzare, gli attacchi che sfruttano le API come vettori possono essere raggruppati in tre grandi categorie:


•    Quelli che sfruttano i dati condivisi dalle API ovvero URL, contenuti pubblicati o parametri di query. Le API sono elementi tendenzialmente autodescrittivi, che forniscono indicazioni piuttosto precise su come l’applicazione utilizza o imposta determinati parametri. Proprio il dettaglio delle informazioni fornite rende le API estremamente vulnerabili.


•    Quelli che sfruttano le vulnerabilità dei sistemi di gestione delle identità come i sistemi di registrazione, autenticazione e autorizzazione. Molte API, infatti, richiedono all’utente l’utilizzo di una chiave, comune a tutte le istanze e utenti, che identifica l’applicazione in uso e che può essere intercettata e utilizzata dai malintenzionati per inserirsi nell’App stessa.


•    Quelli che sfruttano le comunicazioni non crittografate intercettando e compromettendo le transazioni legittime in cui le comunicazioni dati tra client e server non sono cifrate con protocolli di ultima generazione.

Sicurezza delle API, come mitigare i rischi con un approccio by design

Il rafforzamento della sicurezza delle API si raggiunge intervenendo su due livelli della progettazione applicativa, quello infrastrutturale e quello architetturale. Tra le strategie che permettono di proteggere in modo più efficace le API da hijacking e attacchi cyber, queste sono quelle fondamentali:


•    Monitoraggio continuo delle API attraverso tecniche di penetration testing, per identificare eventuali vulnerabilità.
•    Rilevamento delle minacce tramite blacklist dei contenuti a rischio come tag script o istruzioni SQL. Ma con le dovute accortezze, perché il rischio di falsi positivi è molto elevato.
•    API throttling ovvero limitazione delle richieste che l’API può raccogliere simultaneamente, per scongiurare il pericolo di attacchi DoS e DDoS.
•    Cifratura del canale di comunicazione tramite protocolli SSL/TLS in fase di trasmissione dati.
•    Controlli di sicurezza aggiuntivi per bloccare il traffico in ingresso sfruttando le tecniche di geo-IP filtering (scrematura in base al Paese di provenienza) e le tecniche di blocco delle chiamate da proxy anonimi.
•    Utilizzo di reti VPN (Virtual Private Network) per stabilire connessioni sicure al passaggio dei dati tra le reti locali e i dispositivi client, scongiurando il rischio di attacchi del tipo Man-In-The-Middle.
•    Separazione tra identità utente e dell’App per riuscire a implementare forme di autorizzazione basate su contesti di identità ampi (device, orario, posizione geografica, utente, applicazione).
•    Centralizzazione del controllo accessi tramite gateway API, che permette di definire specifiche regole di autenticazione, gestione delle richieste di dati e limitazioni per le chiamate API.
•    Utilizzo di metodi di autenticazione basati su token che identificano in modo univoco l’utente senza che sia necessario fornire credenziali d’accesso (username e password).
•    Utilizzo di una lista di controllo accessi (ACL) per convalidare i dati in ingresso e consentire o meno l’accesso a specifici dati e servizi dell’API in relazione al livello di autorizzazione posseduto.
•    Occultamento delle informazioni delle URL, per fare in modo che non si possa risalire alle credenziali API (informazioni di sessione, username e password) tramite l’indirizzo web del sito di accesso.

Una serie di attività piuttosto organica e complessa, dunque, che richiede una dotazione tecnologica e infrastrutturale adeguata e, soprattutto, expertise e conoscenza approfondita delle minacce e della loro evoluzione. Competenze che spesso solo i Managed Security Services Provider sono in grado di offrire. Ecco perché optare per un servizio di sicurezza gestito è una scelta opportuna per le aziende che intendono raggiungere l’obiettivo della massima sicurezza delle API, scongiurando il rischio di attacchi cyber che prendono di mira il cuore dell’infrastruttura applicativa del business.


9 giugno 2021