Le API vengono sempre più utilizzate per connettere vari servizi e sistemi, il che le rende un obiettivo primario per i criminali. La protezione delle API è fondamentale per proteggere i dati sensibili, garantire l'integrità delle transazioni e mantenere la disponibilità dei servizi.
L'OWASP (Open Worldwide Application Security Project) è una fondazione no profit che si impegna a migliorare la sicurezza dei software. L'OWASP fornisce risorse gratuite e open source, inclusi strumenti, metodologie e documentazione, per aiutare le organizzazioni a proteggere le loro applicazioni web. Uno dei contributi più noti dell'OWASP è l'elenco dei 10 principali rischi per la sicurezza delle API. Un aggiornamento nel 2023 ha riflesso la crescente importanza e le sfide specifiche legate alla protezione delle API (Application Programming Interface) e delle applicazioni web.
Che cosa sono le API?
Le API sono insiemi di regole e protocolli che consentono alle diverse applicazioni software di comunicare tra loro. Una funzione chiave delle API è facilitare un efficiente scambio di dati tra le tecnologie. Come tecnologia fondamentale per la moderna architettura delle applicazioni, le API consentono a un'applicazione di richiedere informazioni e sfruttare le funzionalità di altre app e servizi, anziché dover replicare tali dati o creare tali servizi da zero. Le API sono al centro del nostro mondo digitale e connettono applicazioni, sistemi e dati.
Perché le API sono minacciate?
L'84% delle organizzazioni ha subito incidenti di sicurezza delle API nei 12 mesi precedenti, secondo oltre 1.200 professionisti IT e della sicurezza che hanno partecipato allo studio sull'impatto della sicurezza delle API del 2024 . Con il rapido aumento delle API nell'architettura delle applicazioni moderna, i criminali informatici sono diventati sempre più attratti dalle API come vettore di attacco per diversi motivi.
- Adozione diffusa: le API sono onnipresenti nello sviluppo dei software moderni perché potenziano applicazioni web e mobili, dispositivi IoT e integrazioni tra varie piattaforme. Questa diffusa adozione crea molti nuovi potenziali obiettivi per i criminali e amplia la superficie di attacco di un'organizzazione.
- Accesso ai dati sensibili: le API gestiscono dati sensibili, tra cui informazioni personali, dettagli finanziari e dati aziendali riservati. Sfruttando le API, i criminali possono ottenere l'accesso a informazioni preziose e riservate che possono essere utilizzate per furti di identità, frodi finanziarie o spionaggio aziendale.
- Accesso diretto ai sistemi di back-end: le API forniscono l'accesso diretto ai sistemi e ai database di back-end, spesso bypassando le interfacce utente tradizionali. Questo accesso diretto può essere sfruttato per recuperare, modificare o eliminare i dati senza dover ricorrere ai soliti controlli di sicurezza e agli adeguamenti delle applicazioni front-end.
- Complessità ed errori di configurazione: le API possono essere complesse, con molti endpoint e versioni, ognuno dei quali richiede una configurazione e una sicurezza adeguate. Gli errori di configurazione e le lacune nella sicurezza sono comuni, il che rende le probabilità di successo in un attacco alle API piuttosto alte.
- Automazione e scalabilità degli attacchi: le API possono essere prese di mira tramite strumenti e script automatizzati, con i quali i criminali possono scalare più facilmente i loro attacchi. Gli attacchi automatizzati possono sfruttare rapidamente le vulnerabilità delle API, come meccanismi di autenticazione deboli e altri difetti di sicurezza.
- Integrazioni di terze parti: le API spesso facilitano l'integrazione con servizi di terze parti, il che può introdurre ulteriori rischi per la sicurezza. Se un servizio di terze parti viene compromesso, può fornire un punto di ingresso per consentire ai criminali di sfruttare l'API primaria.
- Scarse funzioni di registrazione e monitoraggio: molte organizzazioni non dispongono di un adeguato sistema di registrazione e monitoraggio delle proprie API, il che rende difficile rilevare e rispondere alle attività sospette in tempo reale. Ciò consente ai criminali di sfruttare le vulnerabilità della sicurezza senza essere rilevati per lunghi periodi.
Tecnologia e concetti chiave delle API
Per comprendere le specifiche minacce riportate nell'elenco OWASP con i 10 principali rischi per la sicurezza delle API, è utile esaminare alcuni concetti e termini chiave correlati alle API.
- Endpoint delle API: gli endpoint delle API sono URL o percorsi specifici con cui un client può accedere a un'API. Ogni endpoint fornisce l'accesso a diverse funzioni o risorse, come l'invio di un modulo, l'aggiornamento di una voce del database o il recupero delle informazioni sugli utenti.
- Chiamate e richieste: una chiamata o una richiesta API è un messaggio inviato da un client a un endpoint delle API per richiedere dati o eseguire un'azione. Una chiamata o una richiesta API genera una risposta dall'endpoint delle API.
- Oggetti: gli oggetti sono strutture di dati che rappresentano entità reali come utenti, prodotti o ordini. Gli oggetti possono avere attributi/proprietà e metodi/funzioni. In un'API dei social media, ad esempio, un oggetto può essere un profilo utente con attributi come nome, immagine del profilo e indirizzo e-mail e con metodi come l'invio di una richiesta di amicizia e l'aggiornamento del profilo.
- Associazione dei dati: l'associazione dei dati è il processo di mappatura dei dati di input dalle richieste API agli oggetti.
- Autenticazione: l'autenticazione è il processo di verifica dell'identità di un utente o di un sistema che effettua una richiesta API. Lo scopo dell'autenticazione dell'entità o dell'utente è determinare se l'entità è chi o cosa pretende di essere.
- Autorizzazione: l'autorizzazione determina il livello di autorizzazioni di accesso consentito a un utente o sistema autenticato.
L'elenco OWASP con i 10 principali rischi per la sicurezza delle API nel 2023
I 10 principali rischi per la sicurezza delle API riportati nell'elenco OWASP evidenziano i rischi per la sicurezza più critici per le API.
- API1:2023 - Violazione dell'autorizzazione a livello di oggetto (BOLA): questa minaccia si verifica quando un'API non limita correttamente l'accesso a determinati oggetti in base alle autorizzazioni dell'utente. Ciò significa che gli utenti non autorizzati possono accedere o modificare i dati a cui non dovrebbero essere in grado, esponendo potenzialmente informazioni sensibili o consentendo azioni dannose.
- API2:2023 - Violazione dell'autenticazione (BA): la violazione dell'autenticazione si verifica quando i metodi utilizzati per verificare l'identità degli utenti non funzionano. Ciò può consentire ai criminali di assumere il controllo degli account degli utenti, ottenere l'accesso non autorizzato ed eseguire azioni come se fossero utenti legittimi.
- API3:2023 - Violazione dell'autorizzazione a livello della proprietà dell'oggetto (BOPLA): questo problema si verifica quando le API non controllano correttamente le autorizzazioni a livello di proprietà all'interno degli oggetti. Questa violazione può consentire ai criminali di ottenere un accesso non autorizzato o di modificare specifici campi di dati all'interno di un oggetto, esponendo dati sensibili o attivando azioni dannose.
- API4:2023 - Utilizzo delle risorse illimitato: per funzionare, le API hanno bisogno di risorse come larghezza di banda di rete, CPU, memoria e storage. Quando le API non dispongono di limiti adeguati per l'utilizzo delle risorse, i criminali possono sovraccaricare le API effettuando un numero eccessivo di richieste, che causa un attacco DoS (Denial-of-Service) o un aumento dei costi operativi.
- API5:2023 - Violazione dell'autorizzazione a livello di funzione (BFLA): una violazione dell'autorizzazione a livello di funzione significa che l'API non limita correttamente l'accesso a determinate funzioni o azioni in base ai ruoli utente. Ciò consente agli utenti di eseguire azioni che non dovrebbero essere in grado di eseguire, come l'accesso alle funzioni amministrative.
- API6:2023 - Accesso illimitato a flussi aziendali sensibili: le API possono rendere visibili i processi aziendali, come l'acquisto di articoli o la pubblicazione di commenti, senza controllare adeguatamente il modo con cui è possibile abusare di queste funzioni. I criminali possono automatizzare l'uso improprio di queste funzionalità per danneggiare l'azienda.
- API7:2023 - SSRF (Server-Side Request Forgery): l'SSRF si verifica quando un'API recupera risorse da un altro server senza verificare correttamente l'URL fornito dall'utente. I criminali possono sfruttare questa vulnerabilità per far inviare richieste da parte del server delle API a posizioni indesiderate, bypassando i firewall o accedendo ai sistemi interni.
- API8:2023 - Errata configurazione della sicurezza: un'errata configurazione della sicurezza implica la presenza di impostazioni errate o incomplete in un'API, il che la rende vulnerabile agli attacchi. Ciò può verificarsi a causa di impostazioni predefinite, patch mancanti o controlli di sicurezza configurati in modo errato che portano a potenziali exploit.
- API9:2023 - Gestione dell'inventario inadeguata: questo rischio si verifica quando le API rendono visibili più endpoint del necessario o mancano di una documentazione e di una gestione delle versioni adeguate. I criminali possono sfruttare endpoint obsoleti, inutilizzati o non protetti e versioni delle API che gli sviluppatori potrebbero aver dimenticato.
- API10:2023 - Utilizzo delle API non sicuro: gli sviluppatori potrebbero fidarsi troppo dei dati delle API di terze parti e non applicare gli stessi standard di sicurezza utilizzati per gli input degli utenti. I criminali possono sfruttare le vulnerabilità presenti in questi servizi di terze parti per violare indirettamente le API.

Ulteriori minacce
Una versione precedente del progetto OWASP per la sicurezza delle API includeva altri tipi di attacchi e vulnerabilità che rappresentano ancora una grande minaccia per le organizzazioni:
- Eccessiva esposizione di dati: un'eccessiva esposizione dei dati si verifica quando le API forniscono più dati del necessario nelle loro risposte. Ciò può rivelare involontariamente informazioni sensibili ai criminali, anche se tali informazioni non sono richieste direttamente dall'utente.
- Mancanza di limitazione della velocità: questa minaccia riguarda le API che non limitano il numero di richieste che un utente può effettuare in un determinato periodo di tempo. Senza una limitazione della velocità, i criminali possono sovraccaricare l'API con un numero eccessivo di richieste, causando un attacco DoS o sfruttando le operazioni ad elevato utilizzo di risorse.
- Assegnazione di massa: l'assegnazione di massa si verifica quando le API associano automaticamente l'input dalle richieste agli oggetti del programma, consentendo ai criminali di modificare o impostare campi di dati indesiderati. Ciò può portare a modifiche non autorizzate ai dati o alle configurazioni che l'utente non dovrebbe essere in grado di controllare.
- Attacco injection: le vulnerabilità agli attacchi injection si verificano quando vengono inviati dati inattendibili a un interprete come parte di un comando o una query. Alcuni esempi includono SQL, NoSQL e Command injection, che possono portare al furto, alla perdita o al danneggiamento dei dati forzando l'API ad eseguire comandi indesiderati.
- Scarse funzioni di registrazione e monitoraggio: quando gli amministratori non registrano correttamente i log e monitorano le API, le attività sospette possono passare inosservate, ritardando il rilevamento delle violazioni e rendendo difficile rispondere in modo efficace agli incidenti di sicurezza.
- Gestione inadeguata delle risorse: una gestione inadeguata delle risorse si riferisce a una gestione e un monitoraggio non corretti degli endpoint e delle versioni di un'API. Ciò può portare all'esposizione di endpoint obsoleti, inutilizzati o non sicuri che i criminali possono sfruttare.
Come difendersi dai 10 principali rischi per la sicurezza delle API riportati nell'elenco OWASP
Per proteggere le loro API dai 10 principali rischi per la sicurezza delle API riportati nell'elenco OWASP e da altre minacce, i team IT e addetti alla sicurezza devono implementare una strategia multilivello per la sicurezza delle API.
Il fulcro di questo approccio è l'implementazione di una soluzione completa per la sicurezza delle API che offre quattro funzioni chiave: individuazione delle API, gestione del sistema di sicurezza delle API, protezione del runtime e test sulla sicurezza delle API.
Questo approccio completo è un complemento importante degli strumenti esistenti di un'organizzazione per la gestione e la protezione delle API, come gateway API e soluzioni WAF (Web Application Firewall).
Individuazione delle API: la maggior parte delle organizzazioni ha poca (se non nessuna) visibilità sulla gran parte del traffico delle proprie API, spesso perché si dà per scontato che tutte le API vengano instradate tramite un gateway API. Eppure non è così. Molte delle API di un'organizzazione tipica non sono gestite (ad esempio, le API inattive che vengono dimenticate, ma sono ancora in esecuzione e ancora a contatto con dati sensibili). La vostra azienda è esposta ad una serie di rischi se non viene stilato un inventario completo e accurato. Queste sono le principali funzionalità richieste:
- Individuazione e creazione di un inventario delle API, indipendentemente dalla configurazione o dal tipo
- Rilevamento delle API inattive, tradizionali e zombie
- Identificazione dei domini ombra dimenticati, trascurati o non conosciuti
- Eliminazione dei punti ciechi e individuazione dei potenziali percorsi degli attacchi
Gestione del sistema delle API. Dopo aver stilato un inventario completo delle API, è fondamentale capire quali tipi di dati vengono distribuiti tramite le API e come influiscono sulla vostra capacità di soddisfare i requisiti normativi. La gestione del sistema delle API fornisce una visione completa sul traffico, sul codice e sulle configurazioni per poter valutare il livello di sicurezza delle API della vostra organizzazione. Queste sono le principali funzionalità richieste:
- Scansione automatica dell'infrastruttura per scoprire configurazioni errate e rischi nascosti
- Creazione di workflow personalizzati per informare le principali persone coinvolte circa le vulnerabilità
- Identificazione delle API e degli utenti interni che possono accedere ai dati sensibili
- Classificazione dei problemi rilevati in base ai livelli di gravità per dare priorità alla mitigazione
Sicurezza del runtime delle API. Sicuramente, avete già familiarità con il concetto di dover "presupporre una violazione". Le violazioni e gli attacchi specifici delle API stanno raggiungendo lo stesso grado di inevitabilità. Per tutte le vostre API attualmente in fase di produzione, dovete essere in grado di rilevare e bloccare gli attacchi in tempo reale. Queste sono le principali funzionalità richieste:
- Monitoraggio della manomissione e della fuga di dati, della violazione delle policy, del comportamento sospetto e degli attacchi alle API
- Analisi del traffico delle API senza apportare ulteriori modifiche alla rete o utilizzare agenti difficili da installare
- Integrazione con i workflow esistenti (creazione di ticket, SIEM, ecc.) per avvisare i team addetti alla sicurezza/operazioni
- Prevenzione degli attacchi e degli abusi in tempo reale con una mitigazione parzialmente o totalmente automatizzata
Esecuzione di test sulla sicurezza delle API: i team addetti allo sviluppo delle API sono sotto pressione perché devono lavorare il più rapidamente possibile. La velocità è essenziale per ogni applicazione sviluppata, il che rende più semplice il verificarsi di una vulnerabilità o un difetto di progettazione e, di conseguenza, più difficile che vengano rilevati. L'esecuzione di test sulle API in fase di sviluppo prima che entrino in produzione riduce notevolmente sia i rischi che i costi necessari per mitigare un'API vulnerabile. Queste sono le principali funzionalità richieste:
- Esecuzione di un'ampia serie di test automatizzati che simulano il traffico dannoso
- Individuazione delle vulnerabilità prima che le API entrino in fase di produzione per ridurre il rischio di un attacco
- Verifica delle specifiche delle API sulla base delle regole e delle policy di governance stabilite
- Esecuzione di test sulla sicurezza delle API on-demand o come parte di una pipeline CI/CD
Nota: oltre alle soluzioni per la sicurezza delle API, le organizzazioni possono esaminare le funzionalità delle soluzioni WAAP (Web Application and API Protection). Progettate per identificare e mitigare rapidamente le minacce provenienti da più vettori di attacco, le soluzioni WAAP superano i tradizionali sistemi di protezione della tecnologia WAF. Una soluzione per la sicurezza delle API, insieme con le soluzioni WAF e WAAP, deve includere strumenti tali da estendere la protezione oltre il firewall per creare la migliore difesa possibile.
Le organizzazioni che cercano di rafforzare i propri approcci alla sicurezza delle API possono anche utilizzare le tecniche e tecnologie riportate di seguito.
Autenticazione e autorizzazione
- Implementazione di un'autorizzazione minuziosa: assicuratevi che ogni richiesta API controlli le autorizzazioni dell'utente per accedere a oggetti specifici. Utilizzate i controlli RBAC (Role-Based Access Control) o ABAC (Attribute-Based Access Control) per applicare queste regole.
- Utilizzo di solidi meccanismi di autenticazione: Implementate l'autenticazione multifattore (MFA) e utilizzate protocolli sicuri come OAuth 2.0 e OpenID Connect per verificare le identità degli utenti.
- Applicazione di solide policy sulle password: Richiedete password complesse e applicate policy di rotazione delle password per migliorare la sicurezza.
Controllo degli accessi
- Controllo degli accessi a livello di proprietà: applicate i controlli degli accessi a livello di proprietà all'interno degli oggetti per garantire che gli utenti possano accedere o modificare solo le proprietà per cui dispongono delle autorizzazioni.
- Controllo degli accessi a livello di funzione: assicuratevi che l'accesso a ciascuna funzione API sia limitato in base ai ruoli e alle autorizzazioni degli utenti. Utilizzate i principi del privilegio minimo per ridurre al minimo l'accesso.
Limitazione della velocità, regolazione e monitoraggio delle risorse
- Implementazione della limitazione e della regolazione della velocità: impostate limiti al numero di richieste API che un utente può effettuare in un determinato periodo per evitare l'esaurimento delle risorse.
- Monitoraggio e scalabilità delle risorse: monitorate continuamente l'utilizzo delle risorse e scalate dinamicamente l'infrastruttura per gestire i picchi di traffico legittimi senza compromettere la disponibilità.
Verifica e sanificazione
- Verifica e sanificazione degli input degli utenti: assicuratevi che gli URL o altri input nelle richieste lato server siano adeguatamente verificati e sanificati per prevenire richieste dannose.
- Verifica e sanificazione delle risposte delle API: trattate i dati provenienti da API di terze parti con lo stesso controllo degli input degli utenti, verificandoli e sanificandoli prima dell'uso.
Segmentazione
- Segmentazione della rete: limitate le richieste lato server solo ai servizi interni necessari e utilizzate la segmentazione della rete per limitare l'impatto di potenziali attacchi SSRF.
Configurazione e inventario
- Potenziamento delle impostazioni di configurazione: rivedete e aggiornate regolarmente le impostazioni di configurazione delle API per seguire le best practice di sicurezza. Disabilitate funzioni e servizi non necessari.
- Gestione automatizzata della configurazione della sicurezza: utilizzate strumenti automatizzati per gestire e applicare le configurazioni di sicurezza in modo coerente in tutti gli ambienti.
Test e verifiche
- Esecuzione continua di test sulla sicurezza: eseguite test regolari sugli endpoint delle API alla ricerca di vulnerabilità e risolvete tempestivamente eventuali problemi.
- Verifiche regolari: effettuate regolari controlli di sicurezza per identificare e correggere i difetti di autorizzazione.
Inventario, documentazione e revisioni
- Mantenere un inventario delle API: mantenete un inventario aggiornato di tutti gli endpoint delle API, che include le relative versioni e l'utilizzo. Assicuratevi che gli endpoint obsoleti siano ritirati correttamente.
- Documentare e monitorare le API: documentate le funzionalità delle API e monitorate il loro utilizzo per rilevare e mitigare i rischi per la sicurezza associati a una gestione inadeguata.
- Monitorare l'attività anomala: implementate un monitoraggio continuo per rilevare e rispondere a modelli insoliti di utilizzo delle API che potrebbero indicare un tentativo di sfruttare i flussi aziendali.
- Revisioni periodiche sulla sicurezza: rivedete e aggiornate periodicamente le policy di controllo degli accessi per assicurarvi che rimangano efficaci.
- Utilizzare librerie e sistemi sicuri: assicuratevi che le librerie e i sistemi utilizzati per interagire con le API di terze parti siano sicuri e aggiornati regolarmente.
Crittografia
Crittografare i dati in transito: utilizzate la tecnologia TLS (Transport Layer Security) per crittografare i dati in transito per proteggere le informazioni sensibili dall'intercettazione da parte dei criminali.
Firewall e gateway
- Implementazione di una soluzione WAF (Web Application Firewall): Le soluzioni WAF (Web Application Firewall) proteggono le API dai comuni attacchi basati sul web, come gli attacchi SQL injection e XSS (Cross-Site Scripting), bloccando le richieste dannose.
- Utilizzo di un gateway API: un gateway API funge da punto di ingresso per tutte le richieste API, eseguendo attività di sicurezza, come autenticare i client, implementare la limitazione della velocità, gestire il traffico e prevenire gli attacchi DDoS in tempo reale.
Applicazione di patch e aggiornamenti
- Gestione delle patch: applicate regolarmente patch, aggiornamenti e correzioni di sicurezza per risolvere le vulnerabilità note. Stabilite un ambiente di test per garantire che le patch non introducano problemi di compatibilità o conseguenze indesiderate.
Zero Trust
- Adozione di un approccio Zero Trust: un sistema Zero Trust presuppone che nessun utente, dispositivo o applicazione all'interno o all'esterno di un ambiente IT possa essere considerato intrinsecamente affidabile. Richiedendo a ogni client che richiede l'accesso alle API di essere autenticato e verificato continuamente, un approccio Zero Trust impedisce l'accesso non autorizzato e limita i danni causati dagli attacchi riusciti.
Domande frequenti (FAQ)
L'OWASP (Open Worldwide Application Security Project) è un'organizzazione no profit che si impegna a migliorare la sicurezza dei software, fornendo strumenti, risorse e progetti gratuiti e open source basati sulla community per aiutare sviluppatori e professionisti della sicurezza a proteggere le applicazioni web.
I 10 principali rischi per la sicurezza delle API riportati nell'elenco OWASP evidenziano i rischi per la sicurezza più critici per le API nell'intento di fornire a sviluppatori, architetti e addetti alla sicurezza informazioni sulle vulnerabilità più comuni e su come mitigarle.
Perché i clienti scelgono Akamai
Akamai è l'azienda di cybersecurity e cloud computing che abilita e protegge il business online. Le nostre soluzioni di sicurezza leader del settore, l'innovativa intelligence sulle minacce e il team presente su scala globale forniscono una difesa approfondita in grado di proteggere applicazioni e dati critici ovunque. Le soluzioni complete di cloud computing offerte da Akamai assicurano performance elevate e notevoli risparmi grazie alla piattaforma più distribuita al mondo. Le maggiori aziende internazionali si affidano ad Akamai per ottenere la protezione, la scalabilità e le competenze leader del settore di cui hanno bisogno per far crescere le loro attività senza rischi.