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.
Le API (Application Programming Interface) sono componenti essenziali delle moderne applicazioni software. Consentendo a database, applicazioni e piattaforme di comunicare tra loro e scambiare informazioni, le API sono essenziali per il corretto funzionamento degli ecosistemi digitali; inoltre, possono accedere o trasmettere grandi quantità di dati sensibili. Questi fattori hanno reso le API un vettore di attacco molto popolare per i criminali informatici e hanno reso la prevenzione delle minacce alla sicurezza delle API una priorità elevata per i CISO.
Che cos'è un'API?
Le API definiscono regole e protocolli che consentono alle applicazioni di comunicare e condividere dati con altri sistemi. Questa interconnessione consente agli sviluppatori di creare app che sfruttano le funzionalità e i servizi delle applicazioni esistenti, anziché dover ricreare da zero tali funzioni e servizi in ogni nuova build. Di conseguenza, le API accelerano lo sviluppo del software e favoriscono l'innovazione, la collaborazione e l'automazione.
Perché i criminali informatici prendono di mira le API?
L'enorme crescita nell'uso delle API ha dato origine a minacce sempre più preoccupanti per la sicurezza delle API. Poiché le API spesso consentono funzionalità critiche, sono obiettivi allettanti per i criminali che desiderano interrompere le attività aziendali. Le API possono, inoltre, rendere visibili gli endpoint che, se non adeguatamente protetti, possono essere sfruttati per accedere ai dati e ai servizi di un'applicazione o a un ambiente IT più ampio. Inoltre, le API gestiscono grandi quantità di informazioni di identificazione personale (PII), dati finanziari e altre informazioni sensibili. La crescente dipendenza dalle API nelle moderne applicazioni e nell'architettura dei microservizi ha creato una nuova e ampia superficie di attacco, con un maggior numero di opportunità per i criminali di sfruttare le vulnerabilità presenti nel codice delle API.
Perché la sicurezza delle API è così importante?
Le soluzioni per la sicurezza delle API aiutano a difendere le API da minacce informatiche e vulnerabilità in modo da proteggere le informazioni riservate e garantire la disponibilità dei dati e dei servizi forniti dalle API. La sicurezza delle API comprende più livelli di protezione che includono, in genere, funzionalità di autenticazione, autorizzazione, verifica e crittografia in grado di proteggere gli endpoint delle API.
Difendendo da un'ampia gamma di minacce alla sicurezza delle API, le organizzazioni possono prevenire un attacco potenzialmente devastante e raggiungere gli obiettivi di cybersecurity più importanti.
- Proteggere i dati sensibili: le API spesso gestiscono una grande quantità di informazioni sensibili. Un'eccellente sicurezza delle API consente di evitare violazioni della sicurezza che espongono i dati sensibili degli utenti e le PII, aiutando anche a impedire ai criminali di ottenere un accesso non autorizzato alle applicazioni e ai sistemi IT.
- Mantenere la fiducia: una violazione dei dati può danneggiare significativamente la reputazione di un'organizzazione, facendo diminuire la fiducia e causando la perdita di opportunità commerciali. Le API sicure contribuiscono a mantenere la fiducia di utenti, clienti e partner proteggendo i loro dati e garantendo l'affidabilità dei servizi offerti.
- Garantire la conformità: molti settori sono soggetti a requisiti normativi che impongono la protezione dei dati sensibili. Le API sicure aiutano le organizzazioni a rispettare queste normative ed evitare sanzioni e multe.
- Prevenzione delle interruzioni dei servizi: i criminali informatici spesso prendono di mira le API come parte degli attacchi DoS (Denial-of-Service) e di altre interruzioni che possono influire sulla disponibilità dei servizi per utenti e clienti. Garantire la sicurezza delle API è fondamentale per mantenere operative e produttive le attività aziendali.
Tipi di minacce alla sicurezza delle API
Esistono diversi tipi di minacce alla sicurezza delle API. Nell'elenco OWASP (Open Worldwide Application Security Project), sono riportate le 10 principali minacce alla sicurezza delle API, che, insieme ad altre minacce, sfruttano una serie di problemi legati alla sicurezza delle API.
Problemi di autenticazione e autorizzazione
L'autenticazione è il processo con cui si verifica che un utente, un dispositivo o un'applicazione che tenta di accedere a un'API sia realmente chi o cosa dichiara di essere. L'autorizzazione stabilisce ciò che un'entità autenticata è autorizzata a fare con l'API. I criminali possono sfruttare le vulnerabilità dei protocolli di autenticazione o ignorare i controlli di autorizzazione per ottenere un accesso non autorizzato alle API. Questo fenomeno è definito abuso delle API o della logica aziendale e può portare a violazioni dei dati, transazioni non autorizzate o altre attività dannose. I tipi di minacce alla sicurezza delle API in quest'area includono:
Autenticazione non riuscita: meccanismi di autenticazione deboli o non configurati correttamente possono consentire ai criminali di spacciarsi per utenti legittimi.
Violazione dell'autorizzazione a livello di oggetto: un'applicazione non corretta del controllo degli accessi può consentire ad utenti non autorizzati di accedere o modificare i dati sensibili.
Violazione dell'autorizzazione a livello della proprietà dell'oggetto: questa minaccia comporta l'accesso non autorizzato a proprietà specifiche di un oggetto.
Esposizione e perdita dei dati
Con queste minacce alla sicurezza delle API, i criminali utilizzano le API per restituire un numero eccessivo di dati o dati non correttamente mascherati, consentendo agli hacker di estrarre informazioni sensibili mediante l'analisi delle risposte delle API. Queste minacce alla sicurezza delle API includono:
- Eccessiva esposizione dei dati: le API possono restituire un maggior numero di dati rispetto a quanto necessario, aumentando il rischio di esporre informazioni sensibili.
- Mascheramento dei dati insufficiente: un mascheramento non corretto dei dati sensibili, come le PII, può portare a violazioni dei dati.
Attacchi di tipo injection
In un attacco di tipo injection, i criminali elaborano richieste delle API che includono codice dannoso per sfruttare le vulnerabilità presenti nel modo di elaborazione degli input da parte delle API. Quando il sistema di back-end esegue il codice, i criminali possono ottenere un accesso non autorizzato, manipolare i dati o eseguire altre azioni dannose. Tra gli attacchi di tipo injection, figurano i seguenti:
SQL injection: inserimento di query SQL dannose nelle richieste di API per manipolare o accedere al database.
CMDi (Command injection): esecuzione di comandi arbitrari sul server mediante l'immissione di codice dannoso nelle richieste di API.
DoS (Denial-of-Service)
Gli attacchi DOS e DDoS (Distributed Denial-of-Service) inviano un gran numero di richieste a un'API in un breve periodo di tempo, sovraccaricando la capacità dell'API di gestirle. Di conseguenza, l'API potrebbe bloccarsi o rallentare e diventare non disponibile per gli utenti legittimi.
Errata configurazione della sicurezza
Questa categoria di minacce alla sicurezza delle API consente ai criminali di trarre vantaggio da configurazioni delle API non corrette o non sicure e del relativo ambiente. Sfruttando queste configurazioni errate, gli hacker possono ottenere un accesso non autorizzato, richiedere privilegi di escalation o compromettere il sistema. Gli obiettivi comuni includono endpoint non sicuri, informazioni di debug rese visibili e vulnerabilità delle API non corrette con patch.
Configurazioni predefinite non sicure: questi attacchi sfruttano le impostazioni predefinite che non sono sicure.
Configurazioni incomplete: questi attacchi sfruttano l'impossibilità di configurare correttamente le impostazioni di sicurezza.
Attacchi MITM (Machine-In-The-Middle)
Negli attacchi MITM, gli hacker intercettano la comunicazione tra il client e l'API per rubare informazioni sensibili, manipolare i dati o inserire codice dannoso nel flusso di comunicazione. Gli attacchi MITM possono sfruttare le seguenti vulnerabilità:
Mancanza di crittografia: la mancata crittografia dei dati in transito facilita l'intercettazione e la lettura dei dati da parte dei criminali.
Crittografia debole: utilizzo di protocolli di crittografia obsoleti o deboli.
Credenziali compromesse
I criminali spesso utilizzano tecniche di social engineering per ottenere credenziali legittime e accedere alle chiavi API con privilegi. In tal modo, i criminali possono accedere alle API spacciandosi per utenti o amministratori legittimi. In alternativa, i criminali possono utilizzare attacchi di forza bruta per indovinare ripetutamente le password finché non trovano la giusta combinazione.
Abuso delle API
I criminali possono abusare o usare in modo improprio le API sfruttando le falle che producono comportamenti o risultati indesiderati o dannosi. Con l'SSRF (Server-Side Request Forgery), ad esempio, un criminale può manipolare un'API per effettuare richieste non autorizzate ai sistemi interni, ottenendo così l'accesso non autorizzato ai servizi interni e comportando violazioni dei dati, che spesso possono causare attacchi costosi e imponenti per l'esfiltrazione dei dati.
Le sfide correlate alla protezione delle API
I team che difendono la propria organizzazione dalle minacce alla sicurezza delle API devono superare una serie di sfide.
Mancanza di visibilità: le API spesso esistono all'interno di ecosistemi complessi che includono più servizi, integrazioni di terze parti e microservizi. Quando si aggiungono API open source e di terze parti a questa combinazione, i team addetti alla sicurezza, spesso, incontrano difficoltà a identificare e inventariare tutte le API presenti nel loro contesto digitale, per non parlare della loro protezione.
Requisiti in tempo reale: le API devono spesso gestire le richieste in tempo reale, il che rende difficile implementare misure di sicurezza che possono introdurre latenza.
Proliferazione e diffusione delle API in modo rapido: in molte organizzazioni, le API vengono sviluppate a un ritmo sostenuto da più team, spesso senza un sistema centralizzato per la gestione o la protezione delle API, che rende difficile garantire una sicurezza coerente tra le varie piattaforme.
Cicli di sviluppo rapidi: i rapidi cicli di sviluppo del software moderno possono portare a trascurare la sicurezza. Le pipeline di integrazione/distribuzione continua (CI/CD) potrebbero non disporre dei test di sicurezza adeguati per garantire che le vulnerabilità vengano affrontate correttamente.
Come mitigare le minacce alla sicurezza delle API
Per mitigare con successo le minacce alla sicurezza delle API, le organizzazioni devono adottare più misure di sicurezza.
Solide procedure di autenticazione e autorizzazione: l'utilizzo di metodi di autenticazione avanzati, come il protocollo OAuth e l'autenticazione multifattore (MFA), può aiutare a garantire che solo gli utenti autorizzati possano accedere ad un'API. L'implementazione di controlli per individuare eventuali violazioni dell'autorizzazione a livello di funzione e a livello di oggetto possono impedire l'accesso non autorizzato ai dati sensibili.
Analisi del traffico in tempo reale: l'analisi del comportamento del traffico delle API è fondamentale per garantire che le API siano protette perché anche un'API che opera entro i parametri corretti può essere utilizzata in modo non appropriato. L'analisi del traffico esamina i cambiamenti nel comportamento dell'API che differiscono dallo standard di riferimento previsto, come una chiamata API che ha avuto origine in un paese e poi originata in un paese diverso un'ora più tardi.
Efficienti test delle API: la valutazione delle vulnerabilità di un'API prima di introdurla in fase di produzione è un modo per proteggere il ciclo di vita delle API prima ancora di riscontrare eventuali problemi. Questa pratica aiuta gli sviluppatori a tenere il passo con l'innovazione senza compromettere potenzialmente la sicurezza delle API che supportano tale innovazione.
Gateway API: un gateway API funge da punto di ingresso per tutte le richieste delle API, gestendo varie attività come l'autenticazione, la limitazione della velocità, la gestione del traffico e il caching per prevenire gli attacchi DDoS in tempo reale.
Limitazione e regolazione della velocità: la limitazione e la regolazione della velocità possono contribuire a prevenire gli attacchi DoS e DDoS limitando il numero di richieste che un'API può gestire in un determinato periodo di tempo. Ciò garantisce che l'API rimanga disponibile agli utenti legittimi anche in condizioni di traffico elevato.
Convalida dell'input: la verifica di tutti i dati di input può impedire molti attacchi comuni, come gli attacchi SQL injection e l'eccessiva esposizione dei dati. La garanzia che solo i dati validi e previsti vengano elaborati dall'API può ridurre il rischio di creare vulnerabilità nel sistema di sicurezza.
Utilizzo di connessioni sicure: l'utilizzo della tecnologia TLS (Transport Layer Security) per crittografare i dati in transito può aiutare a proteggere le informazioni sensibili dall'intercettazione da parte dei criminali. Garantire che tutte le comunicazioni tra i client e le API siano crittografate è essenziale per mantenere la riservatezza e l'integrità dei dati.
Controlli e test sulla sicurezza delle API condotti in modo regolare: l'esecuzione di controlli e test sulla sicurezza in modo regolare può aiutare a identificare e risolvere le vulnerabilità prima che possano essere sfruttate dai criminali. Gli strumenti automatizzati per i test sulla sicurezza possono essere integrati nella pipeline CI/CD per garantire un monitoraggio continuo della sicurezza.
Soluzioni per gateway e gestione delle API: l'utilizzo di soluzioni per i gateway e la gestione delle API può fornire un controllo centralizzato sulla sicurezza delle API. Questi strumenti possono aiutare ad applicare policy di sicurezza, monitorare l'utilizzo delle API e rilevare potenziali minacce alla sicurezza.
Implementazione dell'architettura Zero Trust: l'adozione di un modello di sicurezza Zero Trust garantisce che nessun utente o dispositivo sia attendibile per impostazione predefinita, indipendentemente dalla loro posizione. La verifica continua di identità e autorizzazioni contribuisce a garantire che solo gli utenti autorizzati possano accedere alle API.
Utilizzo delle soluzioni WAF (Web Application Firewall): le soluzioni WAF (Web Application Firewall) possono aiutare a proteggere le API dai comuni attacchi basati sul web, come gli attacchi SQL injection e XSS (Cross-Site Scripting). Le soluzioni WAF possono essere configurate in modo da bloccare le richieste dannose e fornire un ulteriore livello di sicurezza.
Best practice per la sicurezza delle API
Oltre all'implementazione di specifiche soluzioni per la sicurezza delle API, le organizzazioni possono migliorare la sicurezza delle API seguendo queste best practice.
Seguire le linee guida OWASP: l'OWASP (Open Worldwide Application Security Project) fornisce linee guida complete per la protezione delle API, stilando un elenco in cui vengono riportati i 10 principali rischi per la sicurezza delle API e fornendo consigli per mitigarli.
Proteggere gli endpoint delle API: garantire che tutti gli endpoint delle API siano adeguatamente protetti con controlli di autenticazione e autorizzazione può aiutare a prevenire gli accessi non autorizzati. L'implementazione di adeguate misure di controllo degli accessi e la revisione regolare delle configurazioni degli endpoint possono migliorare la sicurezza.
Utilizzare i token JWT (JSON Web Token): l'utilizzo dei token JWT per lo scambio sicuro dei dati può aiutare a garantire che le richieste delle API siano autenticate e autorizzate. I token JWS forniscono un modo sicuro per trasmettere informazioni tra le parti e possono essere utilizzati per verificare l'integrità e l'autenticità delle richieste delle API.
Monitorare il comportamento delle API: il monitoraggio del comportamento delle API aiuta a rilevare attività insolite o sospette che potrebbero indicare una minaccia alla sicurezza. L'implementazione di soluzioni di registrazione e monitoraggio può fornire visibilità sul traffico delle API e aiutare a identificare potenziali incidenti di sicurezza.
Informare gli sviluppatori: informare gli sviluppatori sulle best practice da seguire per la sicurezza delle API e integrare la sicurezza nel processo di sviluppo delle API con l'esecuzione di test sulle API può aiutare a prevenire le vulnerabilità della sicurezza. Fornire formazione e risorse sulle pratiche di codifica sicure può migliorare la sicurezza generale delle API.
Automatizzare le misure di sicurezza: l'automazione contribuisce a garantire un'applicazione coerente delle misure di sicurezza in tutto il ciclo di vita delle API. Gli strumenti automatizzati possono essere utilizzati per eseguire test di sicurezza, monitorare e applicare policy di sicurezza per ridurre la probabilità di errori umani.
Proteggere le chiavi API: le chiavi API, che sono identificatori che autenticano le richieste delle API, possono diventare vulnerabili se non sono adeguatamente protette. L'utilizzo dell'MFA e l'archiviazione sicura delle chiavi API possono contribuire a proteggerle dagli accessi non autorizzati.
Mitigazione dei bot: i bot dannosi possono sfruttare le API per eseguire attacchi informatici automatizzati, come il credential stuffing o l'estrapolazione di dati sensibili. L'implementazione di strategie di mitigazione dei bot e il monitoraggio del traffico delle API possono aiutare a rilevare e prevenire tali attività.
Domande frequenti (FAQ)
La sicurezza delle API si concentra in modo più ristretto sulla protezione delle API per prevenire accessi non autorizzati, crittografare e proteggere i dati e mitigare le vulnerabilità più comuni. La sicurezza delle applicazioni ha un ambito più ampio, concentrandosi sulla protezione dell'intera applicazione, inclusi il suo codice, l'infrastruttura e i dati degli utenti.
Un endpoint delle API è un indirizzo o un URL specifico in cui un'applicazione può accedere a un altro servizio per ottenere dati o eseguire azioni.