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 parte integrante della moderna architettura delle applicazioni. Le API definiscono regole e protocolli che consentono ad un'applicazione di comunicare e scambiare dati con altri software, sistemi e piattaforme. Questa funzionalità consente agli sviluppatori di creare applicazioni più potenti sfruttando i dati e le funzioni del software esistente; inoltre, consente alle aziende di integrare i sistemi IT con servizi esterni e piattaforme di terze parti.
Le API presentano anche significativi rischi operativi. Man mano che le organizzazioni diventano sempre più digitali e incentrate sul cloud, il patrimonio delle loro API cresce in termini di ambito, portata e complessità. Le API sono, spesso, diffuse in più ambienti, dagli ambienti on-premise al cloud ibrido. A complicare la situazione, l'ecosistema delle API di un'organizzazione si estende probabilmente ben oltre il perimetro della sua rete e la sua presenza nel cloud. Pensiamo alla miriade di connessioni che le API stabiliscono con app, servizi e sistemi che appartengono agli ecosistemi di sviluppatori e terze parti.
Man mano che le API aumentano di ambito, portata e complessità, è difficile ottenere informazioni in tempo reale sui seguenti elementi:
Dove si trovano le API nelle varie business unit che, in molti casi, dispongono di propri team di sviluppatori
Come vengono configurate le API, dove sono instradate e se dispongono di appropriati controlli di autenticazione e autorizzazione
Se le API restituiscono dati sensibili quando vengono chiamate e chi può ottenere l'accesso a questi dati
A complicare la situazione, molte API accumulate dalle organizzazioni non sono gestite, sono invisibili e, spesso, non sono protette, incluse le API inattive, nascoste e zombie che, in molti casi, non vengono rilevate dai sistemi di difesa degli strumenti comunemente usati.
Per proteggere le API, nonché le applicazioni, i servizi web e gli ambienti IT con cui le API interagiscono, i team addetti alla sicurezza aziendale devono adottare tecnologie e best practice in grado di garantire una protezione da attacchi, violazioni e abusi delle API.
Le principali minacce alle API
I tipi più comuni di minacce alle API rientrano in diverse categorie.
Sfruttamento delle vulnerabilità: molte API vengono create con vulnerabilità che consentono ai criminali di inviare richieste API tali da stabilire comportamenti indesiderati. Sfruttando queste vulnerabilità, i criminali possono ottenere l'accesso non autorizzato a un'API o ad applicazioni correlate. Tra gli esempi più comuni, figurano gli attacchi CSRF (Cross-Site Request Forgery).
Attacchi di tipo injection: negli attacchi SQL injection, XSS (Cross-Site Scripting), XML injection e scripting, ad esempio, i criminali iniettano codice dannoso nelle richieste delle API. Quando il codice viene eseguito da un server, l'API può eseguire alcune azioni indesiderate o dannose.
Errori di autenticazione: l'autenticazione è il processo che consente di determinare se un utente, un'applicazione o un dispositivo è un client legittimo prima di accettare ed elaborare le richieste delle API. Se un'organizzazione dispone di meccanismi di autenticazione deboli, i criminali possono ottenere le credenziali di un utente legittimo, rubare una chiave API, intercettare e utilizzare un token di autenticazione oppure provare diverse combinazioni di password o chiavi di crittografia in un attacco di forza bruta.
Problemi di autorizzazione: l'autorizzazione è il compito che consente di stabilire il livello di accesso alle API che è stato consentito a un client. Se l'autorizzazione non viene gestita bene, un client API potrebbe accedere a dati che non dovrebbero essere disponibili, aumentando così il rischio che si verifichi una violazione di dati. Un esempio comune è la violazione dell'autorizzazione a livello di oggetto (BOLA), in cui un criminale può accedere o manipolare oggetti a cui non dovrebbe avere accesso a causa di un controllo degli accessi insufficiente.
Attacchi DoS (Denial-of-Service) o DDoS (Distributed Denial-of-Service): questi attacchi sono in grado di sovraccaricare un'API "inondandola" con una quantità di traffico maggiore di quanto possa gestire, causandone il blocco o il rallentamento. Di conseguenza, il servizio potrebbe essere rifiutato agli utenti legittimi.
Attacchi MITM (Machine-In-The-Middle): se un criminale riesce ad intercettare il traffico e le comunicazioni tra due sistemi, può acquisire dati sensibili come chiavi API, token di accesso e credenziali utente o manipolare i dati inviati da una parte all'altra.
Errata configurazione della sicurezza: se i team IT non riescono a configurare adeguatamente le impostazioni di sicurezza per le API, possono consentire ai criminali di ottenere accessi non autorizzati, di aumentare i loro privilegi e di compromettere l'ambiente IT.
Esposizione dei dati: molte API possono essere manipolate per divulgare più iinformazioni di quanto sia necessario nelle risposte alle richieste delle API, una falla nella sicurezza che i criminali possono sfruttare per rubare dati o ottenere accessi non autorizzati.
La necessità di proteggere le API
Considerato il ruolo critico che le API svolgono nelle applicazioni e nelle app web moderne, il compito di proteggere le API è fondamentale per la cybersecurity complessiva. La mancata protezione delle API può avere un significativo impatto negativo su un'organizzazione.
Perdita di dati sensibili: se i criminali utilizzano le API per accedere ai sistemi back-end, possono rubare dati sensibili come le informazioni di identificazione personale di clienti, piani aziendali, record finanziari e proprietà intellettuale.
Perdita di fiducia: le organizzazioni colpiti dalle minacce alla sicurezza delle API , spesso, subiscono una perdita di fiducia da parte di clienti e partner, influendo in modo significativo sulle opportunità commerciali e sui profitti. A seguito di un attacco alle API, un team addetto alla sicurezza può anche trovarsi di fronte a una perdita di fiducia e a un danno di credibilità tra i principali stakeholder interni, come i dirigenti senior e il consiglio di amministrazione.
Problemi di conformità: quando le informazioni sensibili vengono rubate o rese visibili in una violazione dei dati, le organizzazioni che operano in settori fortemente regolamentati possono incorrere in multe significative e sanzioni legali. Molte organizzazioni tengono conto delle API quando considerano il loro approccio alla conformità alle normative sulla sicurezza dei dati, ma sono pochissime quelle che conoscono le best practice per la sicurezza e la conformità delle API.
Violazioni di dati e attacchi informatici: molti criminali informatici utilizzano gli attacchi alle API per accedere agli ambienti IT con l'intento di sferrare attacchi informatici di maggiori dimensioni.
Interruzione dei servizi: poiché le API sono essenziali per connettere applicazioni e sistemi, un attacco a un'API può interrompere servizi e sistemi, causando interruzioni o una significativa perdita di produttività.
Danni finanziari: oltre a consentire ai criminali di prosciugare i conti bancari, gli attacchi alle API rappresentano un costo significativo per un'organizzazione in termini di mitigazione, indagini legali, perdita di produttività e di opportunità commerciali.
Sfide relative alla sicurezza delle API
Per proteggere le API, i team IT devono superare una serie di sfide significative.
Ecosistemi delle API complessi: con migliaia di API, numerosi endpoint delle API e diversi tipi di richieste, l'ecosistema delle API di un'organizzazione è, in genere, piuttosto complesso. Inoltre, il sistema digitale di un'organizzazione può contenere API open-source, API di terze parti e API ombra che rendono difficile inventariare ogni risorsa. Di conseguenza, i team IT potrebbero non essere in grado di visualizzare tutte le API né tantomeno di proteggerle con misure di sicurezza efficaci.
Minacce in evoluzione: i criminali sviluppano continuamente nuovi metodi per sfruttare le API, pertanto richiedono un costante controllo e aggiornamenti delle misure di sicurezza.
Interconnessione: poiché le API sono così intrecciate all'interno di un ambiente IT, i team IT sono riluttanti a introdurre misure di sicurezza che potrebbero portare a latenza, scarse performance o limiti in termini di scalabilità.
Proliferazione non gestita: in molte aziende, le API vengono rapidamente sviluppate da team diversi senza un sistema centrale in grado di proteggere le API e gestirne lo sviluppo.
Pressione sulla delivery: il ritmo rapido del moderno ciclo di vita dello sviluppo del software determina una tensione tra la necessità di proteggere le API e la pressione di passare rapidamente le nuove versioni in fase di produzione.
La tecnologia necessaria per proteggere le API
I team IT possono adottare più livelli di tecnologia per proteggere adeguatamente le API. Ecco quattro esempi di strumenti tradizionali che le organizzazioni utilizzano normalmente per gestire le API e fornire una serie di protezioni di base.
Protocolli di autenticazione e autorizzazione: L'autenticazione e l'autorizzazione sono elementi essenziali nella sicurezza delle API . Alcuni protocolli come OAuth 2.0, OpenID Connect e JWT (JSON Web Token) possono aiutare a verificare l'identità degli utenti e a controllare l'accesso alle risorse. L'implementazione di queste tecnologie insieme con il controllo degli accessi basato sui ruoli e il controllo degli accessi basato su attributi può migliorare notevolmente le attività di protezione delle API.
Piattaforme per la gestione delle API: i provider di piattaforme per la gestione delle API offrono strumenti completi per aiutare le organizzazioni a creare, pubblicare, monitorare, analizzare e proteggere le API. Queste soluzioni offrono un modo centralizzato per gestire l'intero ciclo di vita delle API, dal loro sviluppo alla fine del loro ciclo di vita.
Gateway API: un gateway API funge da unico punto di ingresso per tutto il traffico delle API, occupandosi della gestione di alcune attività quali limitazione/regolazione della velocità e verifica delle richieste delle API. Poiché le API e i gateway acquisiscono registri dettagliati del traffico e delle attività, possono anche fornire funzionalità di monitoraggio in tempo reale.
WAF (Web Application Firewall): le soluzioni WAF proteggono le API filtrando e monitorando le richieste HTTP. Una soluzione WAF posizionata tra i client e i server consente di monitorare, filtrare e analizzare il traffico HTTP/HTTPS da e verso le applicazioni web, risultando particolarmente utile per la protezione dagli attacchi diretti al livello delle applicazioni.
Tuttavia, la complessità e la frequenza degli attacchi alle API impongono un altro livello di sicurezza oltre agli strumenti tradizionali utilizzati da molte organizzazioni. Le aziende devono utilizzare una soluzione per la sicurezza delle API completa in grado di fornire funzionalità di individuazione delle API, gestione del livello 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.
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 le loro vulnerabilità. 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.
Best practice generali per la protezione delle API
Queste best practice per la sicurezza delle API possono aiutare le organizzazioni a ridurre i rischi per la sicurezza e a garantire una solida sicurezza delle applicazioni web.
Crittografare i dati in transito: l'utilizzo dei protocolli TLS (Transport Layer Security) e SSL (Secure Sockets Layer) per crittografare i dati durante lo spostamento tra i client e l'API garantisce che le chiamate API non possano essere intercettate o manomesse.
Eseguire la verifica e la sanificazione degli input: garantire che tutti gli input siano adeguatamente verificati e sanificati può prevenire gli attacchi di tipo injection. La verifica è il processo di controllo necessario per garantire che gli input siano conformi alle aspettative per quanto riguarda i dati considerati validi. La sanificazione è il processo di pulizia o filtraggio degli input necessario per rimuovere qualsiasi contenuto potenzialmente dannoso o nocivo.
Utilizzare la limitazione e la regolazione della velocità: controllate il numero di richieste delle API per evitare l'abuso o un uso eccessivo delle API, di prevenire l'eccessivo consumo di risorse e di bloccare potenziali attacchi DoS e DDoS.
Monitorare e registrare l'attività delle API: conservate registri dettagliati delle chiamate API, monitorandole per verificare che non vi siano attività insolite. Analizzando i registri, i team addetti alla sicurezza possono scoprire modelli di attività sospetti o anomali, come picchi di traffico insoliti o ripetuti tentativi di accesso non riusciti che potrebbero indicare una minaccia per la sicurezza.
Eseguire regolarmente i test sulla sicurezza: eseguite regolarmente audit e test sulla sicurezza per identificare e correggere le vulnerabilità. I test possono essere eseguiti negli ambienti di sviluppo e produzione per massimizzare la capacità di un team addetto alla sicurezza di individuare eventuali vulnerabilità.
Implementare gli accessi basati sul principio del privilegio minimo: assicuratevi che utenti e servizi abbiano solo il livello minimo di accesso necessario per eseguire le loro funzioni. Ciò consente di impedire l'accesso non autorizzato alle API e alle risorse IT.
Proteggere gli endpoint delle API: proteggete gli endpoint delle API con misure di sicurezza appropriate, come l'utilizzo di un gateway API e di una soluzione WAF.
Progettare le API in modo sicuro: uno dei modi più importanti per proteggere le API è introdurre la sicurezza nelle prime fasi del processo di progettazione. Eseguendo i test necessari per individuare eventuali falle nella sicurezza ed eliminarle durante lo sviluppo, i team addetti allo sviluppo possono limitare il rischio che le vulnerabilità vengano sfruttate dai criminali dopo il passaggio delle API in fase di produzione.
Monitorare l'elenco OWASP Top 10: l'OWASP (Open Worldwide Application Security Project) è una fondazione no profit che si occupa di migliorare la sicurezza dei software, L'elenco OWASP API Security Top 10 riporta i problemi di sicurezza delle API più importanti che gli sviluppatori e gli addetti alla sicurezza devono affrontare.
Adottare i principi del modello 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 continuamente l'autenticazione e la verifica per ogni richiesta di accesso alle API, un modello Zero Trust impedisce l'accesso non autorizzato e limita i danni provocati dagli attacchi che hanno violato i sistemi di difesa di un'organizzazione.
Utilizzare le chiavi API: una chiave API è un identificatore univoco che autentica l'applicazione o il sito web che effettua una chiamata API, anziché la persona che utilizza il sito. Le chiavi API aiutano a prevenire chiamate indesiderate, accessi non autorizzati e violazioni dei dati.
Domande frequenti (FAQ)
I protocolli SOAP (Simple Object Access Protocol) e REST (REpresentational State Transfer) sono diversi tipi di API. Poiché si tratta di un protocollo di messaggistica altamente strutturato che utilizza il formato XML, il protocollo SOAP garantisce una maggiore sicurezza delle API fin dalla progettazione grazie agli standard integrati come WS-Security. Le API REST offrono un approccio più semplice alle API, ma non dispongono di funzionalità di sicurezza integrate. È necessario aggiungere un ulteriore livello di sicurezza per la trasmissione, l'implementazione e l'interazione dei dati.
Gli endpoint delle API sono percorsi specifici attraverso i quali le API interagiscono con altri sistemi o applicazioni. Ciascun endpoint rappresenta una funzione o una risorsa univoca nell'API e la protezione di questi endpoint è fondamentale per prevenire accessi e attacchi non autorizzati.