Application Programming Interface

Proteggere le API per contrastare gli attacchi hacker. 5 cose da non sottovalutare mai

Le Application Programming Interface sono largamente utilizzate, e gli hacker lo sanno. Proteggere le API deve diventare una priorità per tutte le aziende, ma anche (e soprattutto) per gli sviluppatori che vogliono salvaguardare il loro business

Pubblicato il 09 Dic 2015

ciso-sicurezza-dati-151124134857

Dopo l’avvento della cosiddetta programmazione strutturata, avvenuta nel 1960, le Application Programming Interface sono diventate un fondamentale nello sviluppo dei software.

Che cosa sono le API? SI tratta di un insieme di funzioni o routine predisposte a svolgere compiti particolari o, in molti casi, forniscono un metodo semplificato per interagire con un componente software, consentendo spesso l’automazione dei processi comuni che condividono servizi in esecuzione su altre macchine.

Proteggere le API, quindi, è una priorità cruciale per tutte le aziende che non vogliono correre il rischio di subire attacchi hacker. Anche se in uso da decenni, con l’arrivo del Web 2.0 e del cloud computing, il numero di API utilizzate dai vari software sono in continua crescita e diventano ogni giorno più utilizzate.

Da Twitter a Saleforce, da Facebook a Google, tutti usano le API

Oggi, ad esempio, il 75% del traffico su Twitter e il 65% di quello su Salesforce.com è originato da API. Incentivate dalle esigenze di mobility e cloud, sempre più aziende attraverso le API tendono a esporre le proprie risorse informative a sviluppatori per far sì che i propri asset di informazioni generino un ulteriore ampliamento della portata, dei ricavi e della fidelizzazione degli utenti.

Ad oggi infatti ci sono oltre 14mila API pubbliche utilizzate dai vari servizi e software di uso comune. Le API fornite da Facebook, Google, Twitter, eBay e Amazon sono probabilmente le più conosciute, ma sono molte altre le aziende che forniscono un proprio set di API per l’accesso ai dati interni. Ad esempio, i clienti di Salesforce, possono utilizzare le API dell’azienda, per integrare i servizi offerti da quest’ultima nei loro sistemi, ne più ne meno come le API di Facebook hanno permesso agli sviluppatori di creare migliaia di applicazioni e servizi che accedono ai dati offerti dal social network.

La API presentano opportunità di business molto appetibili, ma sia i fornitori delle API, sia gli utilizzatori, dovrebbero garantire che l’uso di tali API sia al sicuro da eventuali tentativi di sfruttamento da parte degli hacker per predisporre attacchi all’azienda che li utilizza e, di riflesso, anche ai suoi utenti. API non protette a dovere, secondo la Cloud Security Alliance, sono una delle principali minacce per tutti i sistemi basati sul cloud computing.

I rischi che corrono le aziende con le API non protette

Le API, come detto, consentono di accedere alle funzioni di un’applicazione. Questo aumenta in modo esponenziale le possibilità che hanno gli hacker di trovare difetti in una API o di scovare quelle non protette, per poi utilizzarle per attaccare un gran numero di altre applicazioni e di conseguenza gli utenti che le utilizzano. Immaginiamo, come esempio, una società fittizia che fornisce API, consentendo agli sviluppatori di estrarre informazioni dal proprio data center. Se un hacker riesce a introdurre uno script dannoso nel database principale e il codice della API della suddetta società non riesce a rilevare tale script e a pulire i dati prima che vengano inviati a una richiesta proveniente da una API inserita in un’applicazione di terzi, questo script dannoso può essere inviato a qualsiasi applicazione API. Potenzialmente, lo script dannoso potrebbe compromettere i dati di migliaia di utenti, molto spessi ignari di quello che sta accadendo alle proprie informazioni sensibili.

I rischi che corrono gli sviluppatori con le API non protette

Gli sviluppatori che implementano un’applicazione o un servizio che utilizza dati di terze parti tramite API, devono comprendere appieno come funzionano e come dovrebbero essere protette prima di utilizzarli nel loro codice, in modo da non creare una vulnerabilità latente che potrebbe essere sfruttata dagli hacker. Ecco qualche consiglio per non sbagliare:

  • Leggere tutta la documentazione dell’API in questione, con una particolare attenzione su aspetti quali la protezione di una specifica funzione o routine della API, cosa è necessario per l’autenticazione, quali dati verranno restituiti e in quale formato e quali messaggi di errore ci si può aspettare a un richiesta non eseguita nella giusta maniera.
  • Analizzare quali minacce possono colpire una determinata API e come i dati eventualmente sottratti possono essere utilizzati, aiuterà a capire meglio e a identificare con maggiore precisione i problemi di sicurezza a cui si va incontro. In questo modo sarà molto più semplice e di sicuro impatto attuare le misure di sicurezza per tenere al sicuro i dati che viaggiano attraverso un API. Strumenti di debug come Firebug o Chrome Developer Tools possono contribuire ad esaminare i flussi di dati generati da una API, aiutando così a proteggere tale API.
  • Non accettare dati che non siamo ripuliti o correttamente validato, in arrivo da un API di terze parti. Gli sviluppatori devono implementare valide misure di sicurezza nel caso di ricevano dati non validati o ripuliti, per prevenire difetti di assunzione di dati non sicuri e attacchi di tipo cross-site request forgery. In particolare le API che inviano messaggi attraverso linguaggi quali JSON (Javascript Object Notation) e XML, o altri contenuti generati dagli utenti devono inglobare strumenti di sicurezza che verifichino che tali dati provengano da fonti attendibili. Inoltre, prima che API invii tali messaggi, è importante verificare che l’utente o il dispositivo che la utilizza, disponga delle autorizzazioni necessario per visualizzare, modificare o eliminare i dati richiesti. Purtroppo, anche se questo misure di sicurezza vengono attuate, molti sviluppatori non sono in grado di includere funzioni di verifica e di controllo agli accessi secondari una volta che un utente è stato autenticato.
  • Concentrarsi sui test di controllo per gestire l’accesso alle API. Questi controlli dovrebbero stabilire quello che gli utilizzatori dell’API possono fare o non possono fare con le diverse categorie di dati a cui accedono o vengono generati. Anche in questo caso, un accurato controllo sugli accessi secondari dovrebbe essere fatto prima che i dati possano essere cancellati, modificati o visualizzati.
  • Documentare i requisiti necessari per mettere in sicurezza le API renderà più semplice le successive modifiche del codice, e consentirà di valutare in poco tempo se vengono ancora soddisfatti i requisiti e le politiche inerenti alla gestione dei dati per quanto riguarda le informazioni personali o sensibili. Questi requisiti devono essere preferibilmente analizzati da un security information and event management tool, per far sì che qualsiasi comportamento anomalo, come ad esempio un attacco di tipo brute-force, possa essere individuato e bloccato.

Le API possono creare infinite opportunità per migliorare i servizi da mettere a disposizione dei propri clienti e le interazioni con essi, offrendo così una maggiore produttività e un aumento dei profitti. Sono molte, infatti, le aziende che sono nate appositamente per fornire servizi basati sullo sfruttamento delle API per conto terzi . Tuttavia, a causa dei potenziali rischi a cui si incorre, affrontare nel modo migliori questi problemi di sicurezza dei propri dati, deve essere al centro di qualsiasi strategia che prevede l’integrazione delle API.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati