Si tratta della violazione dell'autorizzazione a livello della proprietà dell'oggetto (BOPLA). Mentre la vulnerabilità BOPLA riguarda una proprietà all'interno di un oggetto, la vulnerabilità BOLA si riferisce all'intero oggetto. La protezione delle API dagli attacchi BOLA non garantisce la protezione dagli attacchi BOPLA, pertanto è fondamentale scegliere prodotti per la sicurezza che offrono una protezione da questi due tipi di attacchi.
La protezione delle API include una serie di processi, pratiche e tecnologie in grado di difendere le API (Application Programming Interface) da attacchi e abusi condotti da parte di criminali. La protezione delle API rappresenta un elemento essenziale di un moderno programma di cybersicurezza e una delle massime priorità per i team addetti alla sicurezza.
Che cos'è un'API?
Un'API (Application Programming Interface) è un insieme di protocolli e definizioni che consentono ai diversi componenti e programmi software di comunicare e di condividere dati e funzionalità tra loro. Le API, inoltre, regolano il modo con cui le applicazioni possono interagire e controllano il modo con cui vengono effettuate le richieste e i tipi di richieste che possono essere scambiate tra i programmi.
Le API sono fondamentali per i servizi cloud, i microservizi, le architetture senza servere l'IoT (Internet of Things) da cui dipendono molti ambienti IT. Poiché rendono visibili le risorse e la logica delle applicazioni e, spesso, includono il trasferimento di informazioni sensibili, le API sono un bersaglio allettante per gli hacker. Un'API non protetta può consentire ai criminali di accedere a risorse IT altrimenti sicure. Di conseguenza, la protezione delle API è fondamentale per mantenere la sicurezza di reti e applicazioni e per prevenire l'esposizione dei dati e altri problemi di sicurezza.
Quali sono i rischi per la sicurezza delle API?
I rischi più comuni per la sicurezza delle API rientrano in varie categorie.
- Sfruttamento delle vulnerabilità. Questo tipo di attacco alle API consente ai criminali di ottenere un accesso non autorizzato alle API a causa di un difetto di progettazione o codifica.
- Errori di autorizzazione. Se l'autorizzazione non viene gestita accuratamente, i client che interagiscono con un'API possono accedere a dati che non dovrebbero essere disponibili, facendo aumentare il rischio che si verifichi una violazione di dati.
- Errori di autenticazione. Se vengono violati i processi di autenticazione degli utenti, le API potrebbero accettare le richieste provenienti da fonti illegittime o dannose.
- Attacchi DDoS (Distributed Denial-of-Service). Sovraccaricando le API con un numero eccessivo di richieste, gli attacchi DoS o DDoS possono rendere le API non disponibili o bloccarle.
Che cos'è l'elenco OWASP dei 10 rischi principali per la sicurezza delle API?
L'OWASP (Open Worldwide Application Security Project) è un'organizzazione no profit che si impegna a migliorare la sicurezza dei software, e, ogni anno, pubblica un elenco dei 10 rischi principali per la sicurezza delle API. Nel 2023, l'elenco OWASP dei 10 rischi principali per la sicurezza delle API ha incluso le seguenti minacce alla sicurezza:
- Violazione dell'autorizzazione a livello di oggetto (BOLA): le API, spesso, creano problemi di controllo degli accessi a livello di oggetto con un'ampia superficie di attacco, rendendo visibili gli endpoint che gestiscono gli identificatori di oggetti.
- Violazione dell'autenticazione: quando i meccanismi di autenticazione vengono implementati in modo errato, i criminali potrebbero riuscire a violare i token di autenticazione o a sfruttare eventuali difetti di implementazione
- Violazione dell'autorizzazione a livello della proprietà dell'oggetto (BOPLA): un'errata convalida dell'autorizzazione a livello della proprietà dell'oggetto può rendere le informazioni visibili o manipolabili da parte dei criminali.
- Utilizzo delle risorse illimitato: poiché soddisfare le richieste API utilizza specifiche risorse della CPU, della memoria, dello storage e della larghezza di banda della rete, un utilizzo illimitato delle API può condurre ad una negazione del servizio richiesto o ad un incremento dei costi.
- Violazione dell'autorizzazione a livello di funzione: policy di controllo degli accessi troppo complesse possono condurre ad errori di autorizzazione.
- Accesso illimitato a flussi aziendali sensibili: una volta resi visibili al pubblico, i flussi aziendali possono essere usati eccessivamente in modo automatizzato per bloccare i processi.
- Falsificazione richiesta lato server: quando un'API recupera una risorsa remota senza convalidare l'URL fornito dall'utente, i criminali possono forzare l'applicazione a inviare una richiesta manipolata ad una destinazione inattesa.
- Errata configurazione della sicurezza: le API vengono spesse configurate in modo errato dagli ingegneri informatici e dai tecnici dei team DevOps, lasciando adito ad una varietà di attacchi.
- Gestione dell'inventario inadeguata: se l'inventario e la documentazione non vengono aggiornati correttamente, possono insorgere vari problemi, come versioni API obsolete ed endpoint di debug vulnerabili.
- Utilizzo delle API non sicuro: poiché tendono a considerare attendibili i dati ricevuti dalle API di terze parti più che degli utenti, gli sviluppatori potrebbero adottare standard di sicurezza più deboli per alcune API.
Qual è la differenza tra la sicurezza delle API e la sicurezza delle applicazioni?
Mentre la protezione delle API include molti degli stessi principi della sicurezza web, la difesa delle API dagli attacchi implica alcuni specifici problemi. L'elevato numero di API utilizzate nei moderni sistemi di applicazioni rende più difficile identificare le vulnerabilità delle API e aggiornare i sistemi di protezione per i team addetti alla sicurezza. Poiché sono progettate per risultare accessibili ad applicazioni o a servizi di terze parti, le API spesso sono vulnerabili ad un numero maggiore di potenziali minacce rispetto alle app web tradizionali. Anche la flessibilità e la personalizzazione rendono le API più vulnerabili agli attacchi. Inoltre, poiché le API utilizzano frequentemente i token o altri tipi di autenticazione per controllare gli accessi, possono essere soggette ad attacchi basati su token rubati o violati.
Che cos'è la sicurezza dei gateway API?
Un gateway API è un livello di software che funge da punto di ingresso per gestire le richieste dei client e delle chiamate API e per restituire le risposte provenienti dagli endpoint API. Le soluzioni per la sicurezza dei gateway API possono applicare la limitazione e la regolazione della velocità per evitare eventuali abusi delle API. I gateway possono proteggere le API autorizzando e instradando le chiamate API ai servizi back-end e agli endpoint front-end appropriati. La sicurezza dei gateway API, inoltre, implica l'autenticazione delle credenziali e la convalida dei token per la verifica delle identità. Anche se un gateway è una parte importante nella protezione delle API, la sicurezza dei gateway API da sola non è sufficiente per garantire una difesa adeguata delle API. I gateway non forniscono visibilità e controllo sull'intera architettura delle API e potrebbero non identificare API configurate in modo errato, API ombra o attività di bot dannosi.
Quali sono le best practice per la sicurezza delle API?
I controlli, i protocolli e le soluzioni per la sicurezza riportati di seguito possono aiutare a migliorare la protezione delle API.
- Rilevare e monitorare tutte le API. Se i team addetti alla sicurezza non conoscono le API, non riescono ad individuare le vulnerabilità, ad aggiornare le patch di sicurezza o a garantire un'adeguata protezione delle API.
- Identificare le vulnerabilità. Gli strumenti per i test di sicurezza possono aiutare ad identificare le vulnerabilità esistenti in ciascuna API. Una volta identificate le vulnerabilità, è possibile assegnare loro una priorità per individuare i rimedi, la mitigazione e la configurazione corretta in base alla tolleranza al rischio.
- Stabilire policy di sicurezza delle API programmate. Invece di adottare policy univoche per ciascuna API, i team addetti alla sicurezza e alla gestione delle API devono impostare policy per tutte le API o per specifiche classi di API, evitando così di dover codificare le policy direttamente nelle singole API.
- Implementare i protocolli di autenticazione e autorizzazione. L'autenticazione e l'autorizzazione di utenti e applicazioni sono fondamentali per proteggere le API da eventuali abusi.
- Implementare la limitazione e la regolazione della velocità. Queste tecniche stabiliscono con quale frequenza le API possono essere chiamate e impediscono il verificarsi di picchi di richieste effettuate a scopi dannosi che possono determinare una negazione del servizio richiesto.
- Crittografare i dati. La crittografia dei dati è fondamentale per proteggere i dati sensibili che vengono comunicati tramite le API.
- Configurare una soluzione WAF (Web Application Firewall). L'utilizzo di una soluzione WAF per la sicurezza della rete aggiunge un ulteriore livello di protezione dal traffico dannoso delle API che proviene dall'esterno della rete locale.
- Implementare un gateway API. Un gateway di livello superiore può fornire una varietà di sistemi di protezione e aiutare ad analizzare il modo con cui vengono effettuati gli accessi alle API.
- Implementare il modello OAuth. L'OAuth è un modello di sicurezza OpenAPI che può proteggere le API consentendo agli utenti di delegare in modo sicuro l'accesso alle risorse senza condividere le loro credenziali originali.
- Utilizzare l'analisi comportamentale. Un'efficace soluzione di rilevamento e risposta alle API può usare l'analisi comportamentale per registrare il comportamento di tutte le API e per identificare eventuali comportamenti insoliti a cui i team addetti alla sicurezza possono rispondere.
- Proteggere le API B2B. Mentre la maggior parte dei sistemi di protezione delle API si focalizza sulle API B2C (da azienda a consumatore), spesso i dati più sensibili vengono condivisi con le API B2B (da azienda ad azienda) che vengono considerate sicure. Una soluzione per l'analisi comportamentale può monitorare le API B2B e avvisare in caso di attività sospetta.
- Sfruttare un data lake. Tutte le attività delle API dovrebbero essere conservate in data lake per almeno 30 giorni per fornire un contesto utile in caso di eventuali avvisi o potenziali minacce. Inoltre, i team possono ricavare da questo data lake informazioni utili per rafforzare il proprio sistema di sicurezza.
Domande frequenti (FAQ)
La specifica OpenAPI per la creazione delle API definisce un'interfaccia standard indipendente dal linguaggio per descrivere le API e le loro funzionalità in modi comprensibili dall'uomo e dai computer, senza dover accedere al codice sorgente o alla documentazione. La sicurezza OpenAPI si riferisce alle pratiche che riguardano l'autenticazione, la crittografia, l'autorizzazione e altre misure necessarie per proteggere l'integrità, la disponibilità e la riservatezza delle API.
La violazione dell'autorizzazione a livello di oggetto (BOLA) è considerata una delle minacce principali per la protezione delle API poiché è difficile da rilevare. Questa vulnerabilità consente ad un criminale di manipolare i dati di input, come i parametri URL o i payload delle richieste, per accedere a dati non autorizzati o per eseguire azioni non autorizzate.
Perché i clienti scelgono Akamai
A sostegno e protezione della vita online c'è sempre Akamai. Le principali aziende al mondo scelgono Akamai per creare, offrire e proteggere le loro experience digitali, aiutando miliardi di persone a vivere, lavorare e giocare ogni giorno. Akamai Connected Cloud, una piattaforma edge e cloud ampiamente distribuita, avvicina le app e le experience agli utenti e allontana le minacce.