La convalida dell'input è una misura di sicurezza fondamentale che aiuta a prevenire i comuni attacchi alle API, come gli attacchi SQL injection. Convalidando e sanificando i dati ricevuti dagli utenti e da altre API, potete impedire che gli input dannosi compromettano la vostra applicazione, proteggendo i dati sensibili e mantenendo l'integrità delle API.
Questa checklist per la sicurezza delle API va oltre una semplice raccolta di best practice e si basa sul ciclo di vita delle API, che inizia con la pianificazione, procede attraverso lo sviluppo e i test e si conclude con il funzionamento e la protezione. Si tratta essenzialmente di una guida per la creazione di un processo di gestione sicuro del ciclo di vita dello sviluppo software (SDLC) per le API.
Man mano che le organizzazioni diventano sempre più digitali e incentrate sul cloud, le API (Application Programming Interface) crescono in termini di ambito e portata, aumentando il loro valore. Ora le API:
- operano al centro delle applicazioni e dei servizi utilizzati dai vostri clienti e partner, incluse le innovazioni più recenti nel campo dell'intelligenza artificiale
- Sono incorporate negli ambienti cloud, dai servizi utilizzati dagli sviluppatori fino ai carichi di lavoro spostati dai tecnici in modalità "lift-and-shift"
- Generano flussi di entrate, aiutando ad espandere le vostre attività aziendali e a creare un ecosistema di sviluppatori
Tuttavia, se come il 84% dei professionisti del settore IT e della sicurezza avete subito incidenti legati alla sicurezza delle API, vi siete resi conto di persona del crescente rischio rappresentato dalle API. Le API vulnerabili o non correttamente configurate sono prevalenti, non protette e facili da violare. Inoltre, le API includono istruzioni su come accedervi e ottenere i dati in esse contenuti. Questo è il sogno di un hacker. Non esiste la "sicurezza nell'oscurità". Inoltre, le API riuniscono quasi sempre diversi gruppi all'interno dell'organizzazione, che potrebbero non essere in grado di coordinare facilmente la sicurezza, anche se lo desiderano. Il numero di API visibili in rete complica ulteriormente la sicurezza. Molte organizzazioni, spesso, non conoscono neanche tutte le loro API, il che le rende vulnerabili. Queste API inattive o zombie sono i principali vettori di attacco.
La posta in gioco per la sicurezza delle API è alta. Gli attacchi sferrati contro le API possono mettere a rischio i profitti, la resilienza e la conformità normativa di un'azienda. La maggior parte delle organizzazioni non ha ancora implementato le funzionalità e i controlli appropriati per prevenire gli attacchi alle API. Certamente, molte aziende dispongono di strumenti per le API nel loro stack esistente, inclusi gateway API e soluzioni WAF (Web Application Firewall). Tuttavia, anche se questi strumenti possono offrire una certa protezione, non sono progettati per fornire il grado di visibilità, sicurezza in tempo reale ed esecuzione continua dei test necessario per difendersi dai moderni attacchi alle API.
Per questi motivi, abbiamo sviluppato questa checklist per la sicurezza delle API come approccio più rigoroso e metodico alla protezione delle API. In ogni fase del ciclo di vita, si consiglia di applicare quattro controlli per ottenere un solido sistema di sicurezza delle API. Le fasi di questo processo di gestione SDLC sicuro sono rappresentate nel seguente grafico:
Pianificazione |
|
Sviluppo |
|
Test |
|
Utilizzo |
|
Protezione |
|
Pianificazione
La sicurezza delle API inizia molto prima della scrittura del codice. Nella fase di pianificazione, è essenziale pensare in precedenza ai problemi di governance come ruoli, responsabilità e policy, La pianificazione è il momento migliore per determinare le metriche di sicurezza, insieme ai processi di gestione del ciclo di vita.
Checklist per la sicurezza nella pianificazione delle API
- Governance, ruoli e responsabilità. Avete definito chiaramente ruoli e responsabilità per la protezione del vostro patrimonio delle API? Ciò include responsabilità a livello di esecuzione per sviluppatori e tecnici addetti alla sicurezza, nonché responsabilità di supervisione della gestione che riguardano le decisioni sui rischi e la supervisione delle policy.
- Policy, standard e specifiche. Avete sviluppato una libreria di policy, standard e specifiche delle API che delineano le aspettative minime richieste per la progettazione, lo sviluppo, i test e il funzionamento delle vostre API in modo sicuro?
- Metriche di sicurezza . Avete impostato una serie definita di metriche di rischio per la sicurezza delle API in modo da poter misurare e gestire i rischi correlati alle API? Le parti interessate possono utilizzare queste metriche di rischio per le API come ciclo di feedback per migliorare costantemente la gestione dei rischi per la sicurezza delle API.
- Gestione del ciclo di vita . La vostra organizzazione sta gestendo le API come risorse software con una proprietà definita per tutto il loro ciclo di vita utile? È consigliabile concentrarsi in particolare sull'implementazione iniziale, sulla gestione continua delle modifiche e sulla dismissione delle risorse.
Sviluppo
Nello sviluppo, le policy stabilite nella fase di pianificazione prendono vita. Gli sviluppatori sono responsabili della creazione di API sicure, collaborando con altri gruppi di parti interessate.
Checklist per la sicurezza nello sviluppo delle API
- Formazione. Avete addestrato i vostri sviluppatori di API e altro personale con responsabilità di gestione delle API (ad es. gateway, operazioni di sicurezza) su aspetti della sicurezza delle API rilevanti per i loro ruoli?
- Ambiente di sviluppo (ad es. IDE, archivi). Il codice sorgente delle vostre API viene sviluppato e gestito in archivi gestiti e approvati? Gli sviluppatori utilizzano ambienti di sviluppo gestiti o approvati?
- Documentazione. Le vostre API sono accuratamente documentate e valutate per la conformità a specifiche/standard? La documentazione delle API viene aggiornata quando gli schemi delle API vengono modificati? La documentazione è disponibile per eseguire analisi e test/verifiche indipendenti?
- Monitoraggio e risoluzione dei difetti: Le vulnerabilità o i difetti di codice correlati alla sicurezza sono considerati prioritari e vengono monitorati per una loro risoluzione?
Test
Una volta sviluppate, le API devono essere sottoposte a un ciclo di test approfondito. Analogamente alla checklist per i test sulla sicurezza delle applicazioni, di seguito vengono descritti i controlli di sicurezza da implementare nel programma di esecuzione dei test delle API.
Checklist per la sicurezza nell'esecuzione di test delle API
- Test del codice sorgente. State sottoponendo il codice sorgente delle vostre API ai test sulla sicurezza delle applicazioni statici (SAST) e dinamici (DAST) prima di passarli alla fase di produzione?
- Test di penetrazione. Gli endpoint delle API vengono sottoposti ai test di penetrazione prima di passarli in fase di produzione in condizioni che replicano, ove possibile, le variabili di gestione delle API, della rete e delle policy nell'ambiente di produzione?
- Analisi della conformità . Le vostre API vengono valutate per la conformità agli standard e alle specifiche prima di passarle in fase di produzione (ad es., GDPR, conformità al PCI)? Questo processo deve includere la conformità al posizionamento e alla configurazione dell'architettura/rete (ad esempio, protezione WAF, posizionamento della rete).
- Gestione delle modifiche e dei rilasci . State implementando o modificando le API in conformità a una policy di modifica del software o IT ben definita? Idealmente, le modifiche dovrebbero riflettersi accuratamente nell'inventario delle risorse software.
Misure di sicurezza delle API in fase di sviluppo e test
Controllo dell'autenticazione e degli accessi: implementate solidi meccanismi di autenticazione, come le chiavi OAuth e API, per proteggere gli endpoint delle API durante lo sviluppo e i test. Assicuratevi che le policy di controllo degli accessi vengano applicate per impedire l'accesso non autorizzato ai dati sensibili.
Limitazione della velocità: durante la fase di test, implementate la limitazione della velocità per proteggere le API da abusi e potenziali attacchi DDoS. La limitazione della velocità aiuta a prevenire un numero eccessivo di richieste che possono sovraccaricare il sistema e condurre ad un attacco DDoS (Denial-of-Service).
SQL injection e convalida: eseguite i test per gli attacchi alle API più comuni, come SQL injection. Implementate una rigorosa convalida dell'input per evitare che l'input dannoso comprometta le API. Assicuratevi che i dati distribuiti tramite le API siano sanificati e convalidati per proteggervi dagli attacchi di tipo injection.
Utilizzo
La sicurezza delle API deve rimanere attiva quando le API entrano in fase di produzione. In effetti, è qui che le API tendono a perdersi e a diventare vulnerabilità.
Checklist per la sicurezza nell'utilizzo delle API
- Inventario delle API. State mantenendo un inventario accurato e aggiornato di tutti gli endpoint delle API, inclusa la documentazione delle API?
- Inventario dei dati sensibili. La vostra organizzazione mantiene un inventario o una mappatura accurati e aggiornati dei dati sensibili gestiti dagli endpoint delle API? Cosa ancora più importante, sapete quali utenti accedono ai dati sensibili? La gestione degli accessi è un componente fondamentale sia per la sicurezza che per la conformità.
- Identificazione delle vulnerabilità. State identificando le vulnerabilità e le aree di esposizione al rischio delle API nel vostro ambiente di produzione?
- Gestione della configurazione. Identificate le vulnerabilità e l'esposizione di componenti di rete, gateway e firewall che gestiscono e proteggono il traffico delle API?
Protezione
I sistemi di protezione delle API devono rimanere attivi per tutto il ciclo di vita delle API. Questo carico di lavoro include la registrazione e la raccolta del traffico, il rilevamento delle minacce, gli avvisi e molto altro.
Checklist per la protezione delle API:
- Registrazione o raccolta del traffico. State registrando l'attività delle API e archiviando i dati per supportare i controlli operativi e di sicurezza?
- Rilevamento delle minacce e invio di avvisi. State analizzando l'attività delle API per rilevare attività anomale? Il vostro processo deve includere l'invio di avvisi/segnalazioni associati a eventi anomali o di uso improprio ai team addetti alla sicurezza e alle operazioni applicabili.
- Spostamento di dati sensibili. State monitorando lo spostamento dei dati sensibili contenuti nel traffico delle API? Questo processo deve includere l'analisi dei flussi di dati per rilevare un utilizzo non autorizzato o anomalo, con l'invio di avvisi/segnalazioni relativi allo spostamento di dati sensibili ai team addetti alla sicurezza e alle operazioni applicabili.
- Blocco e mitigazione. State bloccando e mitigando lo spostamento non autorizzato di dati sensibili tramite le API o altri sospetti abusi delle API?
Protezione delle API dalle minacce alla cybersecurity
L'odierno panorama delle minacce richiede una soluzione completa per la sicurezza delle API in grado di fornire funzioni di individuazione, gestione dei sistemi, protezione del runtime e test della sicurezza delle API.
1. Individuazione delle API. Spesso, non si conoscono tutte le API di cui si dispone. 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ì. 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
2. 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 livello 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
3. 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
4. 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
Questo approccio completo si integra perfettamente con le funzionalità di protezione delle API esistenti all'interno di un'azienda, tra cui:
- Rilevamento delle minacce e prevenzione degli attacchi DDoS: utilizzate gli strumenti di cybersecurity per rilevare potenziali attacchi alle API in tempo reale. Implementate strategie per prevenire gli attacchi DDoS, come la limitazione della velocità e il bilanciamento del carico, per garantire che gli endpoint delle API rimangano disponibili e sicuri.
- Blocco e mitigazione: implementate misure automatizzate di blocco e mitigazione per proteggervi da tentativi di accesso non autorizzati e dall'esposizione di dati sensibili. Utilizzate una combinazione di policy di WAF, autenticazione e controllo degli accessi per applicare la sicurezza a livello di gateway API.
Questi sono controlli suggeriti. Ce n'è da fare e, in realtà, non tutte le organizzazioni riusciranno ad eseguirli tutti in modo adeguato. Tuttavia, la checklist è un modo prezioso per stabilire le best practice da seguire e per identificare le aree da migliorare nella sicurezza delle API perché fornisce un utile punto di riferimento per una corretta esecuzione delle operazioni di sicurezza delle API.
Domande frequenti (FAQ)
La limitazione della velocità è fondamentale per prevenire gli attacchi DDoS e per proteggere gli endpoint delle API dal sovraccarico di richieste eccessive. Limitando il numero di richieste che un utente o un client può effettuare entro un determinato periodo di tempo, la limitazione della velocità aiuta a garantire che le API rimangano disponibili e reattive, anche in condizioni di carico di lavoro elevato.
Il protocollo di autenticazione OAuth è ampiamente utilizzato perché fornisce un accesso sicuro alle API consentendo agli utenti di concedere l'accesso ai dati personali senza condividere le proprie credenziali. L'implementazione del protocollo OAuth aiuta a garantire che solo gli utenti e le applicazioni autorizzati possano accedere agli endpoint delle API, riducendo il rischio di accessi non autorizzati e violazioni dei dati.
Un WAF (Web Application Firewall) fornisce un ulteriore livello di protezione per le API filtrando e monitorando le richieste HTTP. Una soluzione WAF può bloccare il traffico dannoso, proteggere dalle minacce più comuni, come gli attacchi SQL injection e XSS (Cross-Site Scripting) e applicare policy di controllo degli accessi a livello di gateway API, aiutando a proteggere le API da varie minacce alla cybersecurity.
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.