Le API sono i corrieri che trasportano dati tra applicazioni e, proprio a causa della loro architettura, prestano il fianco alle intrusioni. Le imprese riscontrano non pochi problemi nel mettere le API in sicurezza e questo per due motivi: il primo prettamente tecnico-tecnologico, il secondo punta dritto alla cultura e ai modus operandi.
Ci sono casi celebri che dimostrano quanto la fragilità delle API possa avere conseguenze nefaste e, nel medesimo tempo, ci sono alcuni metodi per limitare i pericoli, ben sapendo che non possono essere del tutto scongiurati. Le soluzioni, infatti, sono poche e si snodano tutte attorno alla consapevolezza di chi sviluppa e usa le API.
Se il crimine diventa digitale e scaltro, la soluzione si chiama formazione
Indice degli argomenti
Cosa sono le API, breve accenno
Le API (Application programming interface) consentono la comunicazione tra applicazioni sviluppate tramite linguaggi e strutture dati diverse. L’immagine ricorrente più diffusa è quella che vuole le API al pari di portalettere i quali, del tutto ignari del contenuto delle buste che stanno trasportando, si limitano a fare in modo che il destinatario riceva quanto il mittente gli ha inviato.
Questo è il loro compito, sono gli ambasciatori ai quali non può essere addebitata alcuna pena. Nel percorso tra mittente e destinatario, tuttavia, l’ambasciatore può essere vittima del brigantaggio. Gli hacker possono introdursi nel flusso di dati e compromettere l’uso delle applicazioni che li sfruttano. Un argomento non facile e scarsamente documentato che però, per diversi motivi, non di rado riapre temi cruciali.
L’importanza delle API
Il motivo per il quale le API sono importanti è il medesimo che le mette in difficoltà. Sono tante, viviamo in un contesto nel quale le API rappresentano la spina dorsale dell’economia digitale perché sono l’anima delle applicazioni che aziende e consumatori usano quotidianamente. Il fatto che siano molte e spesso incontrollate da chi le sviluppa e chi ne fa uso facilita il compito di aggressori e malintenzionati in genere.
Il punto focale è proprio questo ed è bene metterlo in risalto: le API sono difficili da proteggere perché sono molto utilizzate, sono trasversali e coprono pressoché l’intera filiera dei software e delle app e, non da ultimo, è complesso monitorarle.
Le API prestano il fianco ai cyber attacchi
Gli hacker conoscono bene le fragilità delle API, sanno che è difficile proteggerle e sanno che, poiché le API cambiano in continuazione per adeguarsi alle modifiche degli applicativi che servono, sono scarsamente documentate. Chi le sviluppa non ha un inventario completo di quelle ancora in funzione e non sa che uso venga fatto delle diverse versioni in circolazione. Una giungla che non riesce a trovare ripari negli standard e neppure in una pianificazione accorta all’interno della loro distribuzione.
Il report API Security Trends 2023 curato da Salt Security, sulla scorta dei dati relativi all’anno precedente, mostra tutte le fragilità che possono essere riassunte in tre macroaree, cominciando dagli attacchi perpetrati sfruttando le vulnerabilità collegate alle API i quali, nel corso del 2022, sono aumentati a quadrupla cifra.
Solo 7 imprese su 10 hanno introdotto misure per la protezione delle API e, seppure i dati mostrino che queste seguano geometrie variabili e diversi gradi di prontezza, poco si sa sull’efficacia delle contromisure adottate. Inoltre, i problemi causati dalle API sono di diversa natura e il fatto che, nel 6% dei casi, non siano state rilevate anomalie non significa che queste non ci siano state.
Numeri che risultano in aumento rispetto agli anni passati proprio a causa dei problemi fin qui citati, ai quali si va ad aggiungere lo scarso tracciamento delle attività delle API che facilitano il compito ai cyber criminali, i quali, possono mascherare i propri attacchi nel traffico reale generato e sostenuto dalle API stesse.
Tutto ciò porta a una considerazione: gli attacchi che sfruttano le API, in realtà sfruttano le debolezze delle aziende che le sviluppano e di quelle che ne fanno uso. Se queste non riescono a intercettare o a tracciare attacchi alle API, allora probabilmente non hanno un’infrastruttura tanto resiliente da resistere agli attacchi stessi.
I fattori di rischio
Entrando un po’ più nel dettaglio e, prima di mettere in evidenza due exploit che hanno mostrato quanto le API siano vitali per la cyber security, è opportuno fare un riassunto delle fragilità con cui le API si espongono alle ingerenze esterne:
- crescita smisurata: le aziende sviluppano un numero cospicuo di API e a un ritmo forsennato senza però avere misura della loro governance e la logica induce a pensare che se un’azienda non ha contezza delle API che ha implementato, non ha neppure modo di renderle sicure (o il più sicure possibile),
- manca uno standard: le API sono sviluppate in modo diverso e anche chi si fa carico di proteggerle lo fa usando tecniche differenti. Il fatto che l’emisfero delle API sia complesso, che queste interagiscano tra più sistemi (spesso ingegnerizzati secondo standard specifici) senza una tecnica di riferimento che riguardi anche il formato dei dati in transito, semplifica il compito a chi ha mire criminose,
- livelli multipli: le API hanno una loro profondità perché si intersecano in diversi dei sette livelli OSI. Interagiscono e si combinano con le applicazioni, le reti e i dati e i controlli di identità. Agire in favore della loro protezione è complesso e per alcune aziende, poco redditizio,
- diversità: gli attacchi API non sono come quelli tradizionali che, sebbene in diversa misura, le aziende si attendono e quindi si adoperano per adottare misure di monitoraggio e protezione. Gli strumenti di cyber defense, a cui le aziende fanno ricorso, raramente contemplano la sicurezza delle API e, considerando la rapidità con cui queste vengono aggiornate o modificate, gli hacker hanno il tempo per studiarne le debolezze e sfruttarle a proprio vantaggio.
Un compito così complesso può essere demandato soltanto ad apposite AI, ma di questo parleremo più avanti.
SQL Injection ed ESPv2
Credere che la sicurezza delle API sia tema ostico solo per le piccole realtà aziendali è fuorviante, ne soffrono – seppure indirettamente – anche Google e i giganti che producono database.
Partendo dalle tecniche di SQL Injection, note da decenni, possono influenzare anche le API le quali, di fatto, vengono usate per introdursi in un’applicazione esattamente come farebbe un utente non attendibile. Le vulnerabilità di tipo SQL Injection possono influenzare anche i sistemi API perché un’API è solo un altro modo in cui l’input di un utente non attendibile può entrare in un’applicazione. Diamo un’occhiata a come appaiono le vulnerabilità di injection in un’API.
ESPv2, un proxy Open source utile alle funzionalità di gestione delle API facendo leva sull’infrastruttura di servizi Google è stato oggetto di un exploit (CVE-2023-30845), mediante il quale, client API dannosi potevano ignorare i meccanismi di autenticazione Json Web Token (JWT), tema che diventa rilevante soprattutto quando l’autenticazione interrotta è tra le vulnerabilità più importanti secondo l’elenco OWASP Top 10.
Vulnerabilità che, nei casi specifici, hanno riguardato migliaia di imprese e milioni di client.
I mezzi di contrasto
Per mettere in sicurezza le API occorre che ogni azienda conosca quelle che sviluppa e utilizza. Il ricorso alla mera scansione delle attività delle API, pure demandandole a sistemi di cyber defense basati su Intelligenze artificiali, diventa relativamente utile se non vi è un’approfondita conoscenza perché le loro attività potrebbero collimare con quelle svolte da normali applicazioni Web.
Un articolo apparso su ComputerWeekly a settembre del 2022 e scritto dal CTO di Salt Security Nick Rago offre degli spunti interessanti: ogni API, sia questa anche di terze parti, rappresenta un’estensione della superficie di attacco utile a un hacker per penetrare un’organizzazione.
La misurazione dei comportamenti normali e anormali delle API deve essere fatta mentre vengono sviluppate e anche durante le fasi di test che conducono alla loro messa in produzione. Non di meno, quando vengono aggiornate o dismesse, occorre che quelle datate vengano disattivate del tutto. L’identificazione dei comportamenti anomali può essere demandata a sistemi AI e di Machine learning i quali, noti i parametri che rientrano nella normalità, possono collaborare attivamente alla cyber difesa di interi sistemi.
I SOC aziendali devono coordinarsi meglio e, coinvolgendo gli sviluppatori, dovrebbero avere il compito di creare procedure a cui le API devono sottostare. In ultimo, sostiene Rago, quella delle API è una realtà inevitabile e occorre che diventino sempre meno vettori di attacchi da parte di malintenzionati.