API shadow, alias API ombra, sono le API di terze parti non documentate e non tracciate utilizzate dagli sviluppatori per accelerare il loro lavoro di programmazione. Come spiegano gli esperti, si tratta di interfacce talmente astruse e discrete che molte aziende spesso ne ignorano addirittura l’esistenza. Il fatto che vengano trascurate e non siano documentate fa sì che le API shadow non solo generino confusione a livello applicativo ma spesso diventano fonte di attacchi da parte del cybercrime, da cui la necessità di presidiare anche questo aspetto della governance.
API al centro del mirino degli hacker
È indubbio che le API stiano guidando il mondo digitale: circa l’89% degli sviluppatori implementa API di vario tipo quando lavora alla programmazione di una qualsiasi applicazione. Se non è un segreto che gli attacchi dannosi alle applicazioni e ai sistemi software siano all’ordine del giorno, meno noto è che le API si trovano regolarmente al centro di gravi violazioni e interruzioni. Le API non protette, infatti, rappresentano uno dei punti di attacco più sfruttati per moltissimi tipi di violazioni.
Nel 2022, una ricerca pubblicata dalla società di sicurezza informatica Cequence ha specificamente elencato le API shadow come un vettore di accesso per il cybercrime in quasi il 31% dei 16,7 miliardi di transazioni dannose. Nel momento in cui le organizzazioni non riescono a implementare una corretta gestione dell’inventario, le API shadow diventano un anello debole della sicurezza, inficiando il processo di controllo qualità e le buone pratiche dello sviluppo software durante il ciclo di evoluzione da una release all’altra.
API shadow: che cosa sono
Le API shadow sono API che vengono implementate silenziosamente da quegli sviluppatori che cercano di:
- risparmiare tempo su un’attività ripetitiva
- eliminare la dipendenza da altri team
- colmare una lacuna nel catalogo aziendale di API approvate.
Tuttavia, per quanto buone possano essere le intenzioni degli sviluppatori, le API shadow, se non regolamentate aggiornate, possono creare gravi vulnerabilità quando entrano a fare parte del patrimonio applicativo dell’organizzazione.
API shadow: quali sono i rischi e le vulnerabilità
Esaminiamo ulteriormente i tipi di vulnerabilità associate alle API shadow e i potenziali danni che possono causare. Una premessa importante è che gli aggressori non fanno alcuna fatica a identificare quelle API non tracciate che possono costringere ad accettare:
- determinati parametri
- richieste di dati
- qualsiasi altro tipo di input manipolativo
Il cybercrime, alterando i dati dell’API, accede agli endpoint e viola i controlli di sicurezza. È in questo modo che le API shadow possono diventare una porta d’ingresso a sistemi e dati sensibili delle organizzazioni. Gli aggressori possono utilizzare le API shadow anche per eseguire azioni invasive come, ad esempio, accedere agli account di uno o più utenti privati per alterare o eliminare le informazioni dell’utente o persino modificare le credenziali esistenti senza che, in tutto ciò, l’attività malevola sia rilevata. Nel momento in cui gli attacchi tramite API shadow interessano le transazioni soggette a HIPAA, GDPR o altre importanti normative sulla protezione dei dati, le conseguenze possono portare a problemi di conformità ancora più dannosi per l’organizzazione.
Come individuare le API shadow
Le API sono una necessità per lo sviluppo delle applicazioni, in quanto abilitano varie funzionalità e integrazioni di dati su larga scala. Ciò significa che l’uso di API shadow, sempre e comunque, sarà un rischio che un’azienda deve mettere in conto e imparare a gestire. Fortunatamente, ci sono alcune pratiche che possono aiutare le organizzazioni a individuare prontamente attività API sospette all’interno del proprio perimetro applicativo:
Monitorare i proxy in uscita
È opportuno intercettare ogni chiamata API in uscita tramite proxy API. Questi proxy in uscita registrano anche tutti i log delle API, comprese le richieste e le risposte, per cercare transazioni API non riconosciute, tempi di risposta insolitamente lenti, picchi anomali nelle allocazioni delle risorse o qualsiasi altra attività che possa indicare la presenza di un’API shadow.
Analizzare i log
Se implementata con dovizia, l’analisi di log aiuterà gli sviluppatori a identificare immediatamente gli endpoint appena sviluppati, i dati di risposta e altre metriche API. In ausilio esistono diversi strumenti di analisi dei log come Sematext Logs, Insight e InsightOps, che automatizzano l’attività, registrando i log a intervalli regolari (o, idealmente, in tempo reale) per valutare le prestazioni dell’applicazione end-to-end e cercare attività API sospette. Tuttavia, usare i tool non è sempre la soluzione migliore poiché l’analisi dei log richiede un enorme spazio di archiviazione per registrare i dati. Se qualcosa andasse storto, l’analisi dei log potrebbe memorizzare troppe o troppo poche informazioni, generando quel rumore di fondo che fa impazzire i responsabili della cybersecurity.
Implementare un monitoraggio in tempo reale
Un’alternativa all’analisi dei log è il monitoraggio di tutte le richieste API, costante e in tempo reale che consente una categorizzazione delle API fattibile per i dati appena aggiunti. Una scelta che permette di liberare gli sviluppatori dall’esecuzione dei test, rilevando immediatamente i problemi a livello di prestazioni. Ciò consente di risparmiare sia tempo che fatica. Un ulteriore vantaggio aggiunto del monitoraggio in tempo reale rispetto al rilevamento dell’API Shadow è la sua capacità di integrarsi direttamente con il gateway API o utilizzando l’agente dell’app già distribuito. Di questi due metodi, il primo è preferito al secondo in quanto è semplice da implementare e tiene a bada eventuali problemi di sicurezza imprevisti. Tuttavia, il suo utilizzo ridurrà le prestazioni dell’app poiché le informazioni verranno acquisite localmente o utilizzando l’app di terze parti. In ogni caso, l’app rallenterà un po’. Inoltre, questo approccio non ha un’implementazione centralizzata. Deve essere implementato su ciascuna applicazione separatamente, il che rende un po’ macchinosa la sua applicazione.
Scansionare frequentemente il codice
È possibile anche rilevare e indirizzare le API shadow prima che raggiungano la produzione eseguendo la scansione del codice sorgente per identificare eventuali tracce di API che non appartengono al sistema. Spesso nota come analisi del codice statico, la scansione del codice si riferisce al monitoraggio del codice sorgente dell’applicazione per mappare l’utilizzo dell’API. È diverso da altri approcci in quanto riconosce l’API shadow prima che questa venga messa in produzione.
Poiché la scansione non avviene mentre l’applicazione è attiva, questa tecnica è considerata non invasiva. Si tratta di un approccio olistico che non richiede un processo di integrazione in ogni fase. Il suo utilizzo fa sì che lo sviluppo delle API soddisfi facilmente la conformità al GDPR. L’unico aspetto negativo di questa tecnica è la complessità: i codici sono difficili da costruire e bisogna assicurarsi di verificare che gli strumenti utilizzati siano compatibili con ogni singolo linguaggio stack utilizzato.
Cosa fare se le API shadow si infiltrano nel sistema software
Anche con un monitoraggio adeguato, c’è ancora la possibilità che le API shadow si infiltrino in un sistema software. Pertanto, è essenziale disporre di una strategia di correzione per ridurre al minimo l’impatto delle API shadow una volta individuate. Di seguito i consigli degli esperti:
Implementare standard e linee guida rigorosi
È opportuno implementare un rigoroso processo di filtraggio delle API attraverso standard e linee guida ben definiti, atti a regolarne l’implementazione e l’utilizzo. Ciò dovrebbe includere criteri come la conformità alle normative sulla protezione dei dati pertinenti e qualsiasi requisito specifico sulla privacy degli utenti delineato negli accordi sul livello di servizio.
Stabilire procedure di osservabilità
Implementare la scansione del codice e i processi di monitoraggio in tempo reale come parte del normale processo di sviluppo per garantire che gli standard stabiliti siano soddisfatti per ogni API in uso.
Controllare frequentemente il sistema
Gli esercizi di audit automatizzati possono migliorare notevolmente la sicurezza e la visibilità delle API. Poiché l’auditing è uno sforzo collaborativo, tutti gli sviluppatori avranno una visione dei potenziali problemi relativi alle API shadow e dei modi per migliorare le prestazioni e la sicurezza dell’applicazione.
Strumenti per combattere le API shadow
Gli strumenti giusti possono ridurre significativamente il rischio di API shadow fornendo meccanismi di sicurezza adeguati, monitoraggio costante e più ampia osservabilità. Ecco alcuni esempi di strumenti e piattaforme che forniscono le funzionalità necessarie per combattere le API shadow:
- APIsec. Questa piattaforma di test di sicurezza delle API fornisce strumenti di scansione delle vulnerabilità e supporto integrato per le iniziative DevSecOps.
- Wallarm. Questa piattaforma di test della sicurezza delle API si concentra sul supporto sia per le applicazioni legacy che per le API native del cloud.
- Apigee Sense. Questo strumento di rilevamento del comportamento supportato da Google tiene traccia degli inventari, delle chiavi e delle transazioni delle API e analizza automaticamente le anomalie.
- Reblaze. Questo fornitore di piattaforme di sicurezza software generale offre strumenti per il monitoraggio del traffico API in tempo reale, la crittografia delle transazioni, la gestione automatizzata delle policy e meccanismi di reverse engineering che mitigano i danni degli attacchi API.
API shadow: come si evitano
Se non vengono intraprese misure immediate e appropriate, le API shadow possono davvero essere problematiche. Per evitare il proliferare delle API shadow ci sono alcune buone pratiche:
#1 Adottare gli standard API
Esiste una certa aderenza agli standard API predefiniti che porta a anomalie API minime. Lo standard OpenAPI Specification aiuta gli sviluppatori a comprendere lo scopo dell’API fin dall’inizio. Offre inoltre un linguaggio di programmazione standard per macchine e esseri umani. L’adesione a questi standard universali consente agli sviluppatori di minimizzare i problemi.
#2 Automatizzare la documentazione dell’API
Automatizzando la documentazione dell’API in una fase iniziale, gli sviluppatori possono facilmente risparmiare l’enorme sforzo investito nella documentazione manuale. Gli aggiornamenti della documentazione API possono essere incorporati con l’aiuto del processo CI/CD.
#3 Condurre un controllo di sicurezza delle API legacy
Prima che venga rilasciata la nuova versione dell’API, gli esperti di sicurezza delle API dovrebbero dedicare del tempo ad analizzare le condizioni di sicurezza delle API primogenite. Ciò aiuta a valutare i rischi per la sicurezza imprevisti nella nuova versione e a renderla più sicura.
#4 Inventariare le API live e la relativa documentazione
Sebbene la documentazione API automatica sia una chiave di salvezza, non può fare miracoli da sola. Gli esperti di sicurezza delle API devono approfondire i dettagli come gli endpoint API, il loro modus operandi e la posizione in tempo reale. Il monitoraggio continuo dell’inventario delle API aiuta gli sviluppatori a sradicare le possibilità delle API shadow.
#5 Eseguire il backport delle vecchie API
Anche se si tenta ampiamente, alcune API vecchie o obsolete rimarranno attive. Con l’aiuto del processo di backporting, gli sviluppatori possono facilmente introdurre pratiche di sicurezza aggiornate anche nelle API precedenti e renderle tecnicamente valide per sopportare eventuali attacchi alla sicurezza.