Morte per mille fughe di dati: come le API sopraffanno la sicurezza

Pubblicato: 2022-06-14

Le superfici di attacco di oggi sono più ampie che mai, le vulnerabilità fuoriescono dalle app e abitano le flessibili interfacce di programmazione delle applicazioni che fanno girare il mondo della tecnologia.

Sfortunatamente, sebbene la maggior parte sia consapevole delle tradizionali minacce delle app Web, le API rimangono un'area oscura di sicurezza. Il gigantesco panorama delle minacce di oggi richiede un WAF cloud competente e persino un investimento in WAAP.

Che cos'è un'API?

Le API sono il collante che tiene unita la moderna esperienza di navigazione. Le API semplificano l'uso e lo sviluppo del software consentendo alle singole app Web di scambiare dati. Effettuare una richiesta a un server tramite un'app è oggi gestito da un'API pertinente, grazie al fatto che le API correttamente implementate sono molto sicure.

Invece di esporre direttamente il server alle tue informazioni, il tuo dispositivo e l'API pertinente dovrebbero condividere piccoli pacchetti di dati, comunicando solo ciò che è necessario.

Agile e API: doppio problema di sicurezza

Agile è la parola d'ordine aziendale del passato: descrive una forma di produzione che amplifica l'idea imprenditoriale di "prodotto minimo sostenibile". L'obiettivo di Agile è quello di ottenere il prodotto minimo in ogni fase; invece di chiamare un prodotto "finito", viene semplicemente inserito in un altro giro di correzione di bug e miglioramenti.

Anche se questa patch perpetua sembra fantastica per la sicurezza (supporto software costante? Bello!) La realtà economica della produzione di software significa che la quantità di API diventa rapidamente ingombrante.

Poiché i team di sviluppo si muovono rapidamente, le API sono raramente documentate in modo completo. Ciò rende incredibilmente difficile scrutare i meccanismi interni di un'app e capire quali API fanno cosa. Inoltre, rende la sicurezza infinitamente più difficile, poiché i team di sviluppo stessi non conoscono la dimensione reale del loro inventario API. Ciò pone la sicurezza informatica come una priorità bassa; sempre reattivo e mai propositivo.

API trascurate

Quando viene menzionata la sicurezza delle app, la prima cosa che viene in mente sono i pesi massimi della sicurezza. Attacchi come il cross-site scripting; Gli attacchi SQL injection e DDoS sono tutti incredibilmente noti. Le app stesse sono spesso ben protette da soluzioni plug-and-play come i Web Application Firewall con controllo perimetrale.

Viene mai prestata poca attenzione alle API, a scapito dell'organizzazione ignara e dei loro clienti. Prendi l'esempio di una vulnerabilità dell'API che è emersa nel sistema di Uber.

Quando un driver Uber si unisce a Uber tramite un link di riferimento, avvia l'app e inserisce il codice di riferimento. Premendo il pulsante Invio, il browser dell'app comunica con l'host API "bonjour.uber.com". Da lì, bonjour.uber riceve il parametro User ID e restituisce i dettagli sul conducente all'app dell'utente, pronti per essere inseriti nella seguente schermata di consenso.

Tuttavia, questa API è stata dichiarata colpevole di due importanti violazioni della sicurezza. Il primo è stato l'autorizzazione a livello di oggetto rotto (BOLA). L'API non ha verificato che l'ID dell'utente corrispondesse al suo parametro ID; era quindi possibile accedere ai dati di altri utenti semplicemente modificando l'identificativo utente.

Il secondo problema era l'eccessiva esposizione dei dati. La risposta dell'API - per restituire i dettagli dell'utente - ha raggruppato tutte queste informazioni in un batch, contenente tutti i dettagli dell'utente. Ciò significava che l'API ha restituito informazioni di cui il client non aveva esplicitamente bisogno, violando un importante pilastro delle migliori pratiche di sicurezza informatica.

Considera ora che l'organizzazione media fa affidamento su oltre 15.500 API e la scala del rischio inizia ad apparire. Per fortuna, l'API di Uber è stata collegata prima che si verificassero gravi danni; la seguente compagnia non è stata altrettanto fortunata.

Il problema del pelotone

Il marchio di fitness a casa di Peloton è apprezzato da oltre 3 milioni di abbonati. Le lezioni di fitness dal vivo sono un importante punto di forza, anche se se non sei disposto a condividere i tuoi dati medici con altri partecipanti alle lezioni, è possibile impostare il tuo account gruppo su privato.

Sfortunatamente, una serie di vulnerabilità dell'API ha visto l'esposizione di questi dati a utenti non autorizzati. Le informazioni dei partecipanti alla classe potrebbero essere eliminate su larga scala, poiché un endpoint API non è riuscito a convalidare un utente richiedente. Ciò ha consentito agli aggressori non autorizzati di ottenere il nome utente, la posizione, l'ID allenamento, il sesso e l'età degli utenti di Peloton.

Le API sono state per anni la causa di fughe di dati di alto profilo. I continui scandali sui dati di Facebook nel 2018 e nel 2019 hanno visto una violazione dopo l'altra, principalmente attraverso API di sviluppatori di terze parti. Un esempio è stata l'API Groups; gli sviluppatori che lavorano su un'app di gestione dei social media B2B possono accedere liberamente ai nomi e alle informazioni più personali dei membri del gruppo. Sebbene questa app di gestione dei social media fosse pensata per aiutare gli amministratori dei gruppi a gestire i loro gruppi in modo più efficace, Facebook ha dovuto rimuoverla e la sua API.

Questi scandali di dati sono culminati nel 2021, quando un database del mercato nero di oltre 533 milioni di utenti di Facebook ha visto trapelare nomi, numeri di telefono e ID utente di Facebook.

Prevenire la perdita dell'API

L'Open Web Application Security Project (OWASP) pubblica regolarmente le vulnerabilità delle app Web più gravi e diffuse da tenere d'occhio. La crescente minaccia alla sicurezza rappresentata dalle API è abbastanza grave da giustificare la propria lista dei primi dieci OWASP, che è costantemente superata dall'autorizzazione a livello di oggetti non funzionanti.

Per fortuna, la protezione delle tue API, al di fuori della richiesta di un ciclo di sviluppo più lento, segue da vicino la protezione dell'intera organizzazione nel suo insieme. Il tuo primo punto di chiamata sarebbe un decente Web Application Firewall (WAF). Questa soluzione monitora i perimetri delle tue app, impedendo che i gateway API vengano sfruttati da vulnerabilità importanti.

La protezione delle applicazioni Web e delle API (WAAP) fa un ulteriore passo avanti. Si trova interamente al confine pubblico di un'app, analizzando tutto il traffico in entrata. Monitorando i modelli di traffico e richieste legittimi, i WAAP sono strumenti di sicurezza altamente specializzati progettati specificamente per proteggere le API.

Mentre WAAP è un sistema difensivo a livello di endpoint, le soluzioni RASP (Runtime Application Self Protection) avvolgono app Web specifiche. Una soluzione RASP, distinta da WAF, ha anche informazioni dettagliate sul funzionamento interno e sui comportamenti della sua applicazione. In questo modo, se un'API viene utilizzata come punto d'appoggio in un attacco e viene richiesta più informazioni di quanto dovrebbe essere fattibile, un RASP può arrestare un attacco in modo proattivo.

Con una miriade di opzioni di protezione API disponibili, proteggere le tue app e la tua organizzazione non è mai stato così facile.