Le API sono la spina dorsale di molte applicazioni moderne. Consentono a servizi diversi di comunicare tra loro e scambiarsi dati, ma ogni endpoint API rappresenta anche una potenziale superficie di attacco. Per questo motivo, l’Open Web Application Security Project (OWASP) ha pubblicato nel 2023 un elenco aggiornato dei dieci principali rischi di sicurezza per le API.
API1: Controllo di accesso a livello di oggetto compromesso (Broken Object Level Authorization). Molte API utilizzano identificatori di oggetti negli endpoint per fare riferimento a record specifici. Se l’applicazione non verifica che l’utente autenticato sia autorizzato a accedere a quel particolare oggetto, un aggressore può manipolare l’ID per accedere ai dati di altri.
API2: Autenticazione compromessa (Broken Authentication). Meccanismi di autenticazione implementati in modo insicuro possono consentire il furto o l’indovinare dei token di sessione. Un attaccante potrebbe quindi assumere l’identità di un altro utente ed eseguire azioni con privilegi indebiti.
API3: Autorizzazione a livello di proprietà dell’oggetto compromessa (Broken Object Property Level Authorization). Alcune API restituiscono troppi campi o accettano campi che l’utente non dovrebbe poter modificare. Se non ci sono controlli granulari a livello di proprietà, gli aggressori possono visualizzare informazioni sensibili o modificare valori che non dovrebbero.
API4: Consumo illimitato di risorse (Unrestricted Resource Consumption). Senza limiti adeguati, un client può richiedere grandi quantità di dati o aprire numerose connessioni, esaurendo risorse di sistema e causando degradazioni o arresti del servizio.
API5: Controllo di accesso a livello di funzione compromesso (Broken Function Level Authorization). Oltre agli oggetti, anche le funzioni API devono essere protette. Se un endpoint che dovrebbe essere riservato a utenti amministratori è esposto senza controllo, gli aggressori possono eseguire azioni privilegiate.
API6: Accesso non limitato ai flussi di business sensibili (Unrestricted Access to Sensitive Business Flows). Alcune API espongono flussi di business critici senza adeguati controlli, permettendo ad attori malintenzionati di automatizzare transazioni o operazioni sensibili.
API7: Server Side Request Forgery (SSRF). Se un endpoint API consente di recuperare risorse da URL specificati dall’utente senza adeguata validazione, un aggressore può convincere il server a fare richieste verso sistemi interni o terze parti, bypassando i controlli di rete.
API8: Configurazioni di sicurezza errate (Security Misconfiguration). Errori di configurazione come permessi predefiniti troppo permissivi, stack software non aggiornato o messaggi di errore dettagliati possono fornire informazioni utili agli aggressori.
API9: Gestione impropria dell’inventario (Improper Inventory Management). In molte organizzazioni esistono molteplici API e versioni. Senza un inventario aggiornato degli endpoint attivi, vecchie interfacce rimangono online e costituiscono superfici di attacco dimenticate.
API10: Uso non sicuro delle API (Unsafe Consumption of APIs). Le applicazioni spesso consumano API di terze parti. Se le risposte non vengono validate o si ripone troppa fiducia nelle integrazioni esterne, gli aggressori possono iniettare contenuti dannosi o aggirare i controlli di sicurezza.
Questa lista Top 10 funge da guida per sviluppatori e team di sicurezza. Comprendendo questi rischi, è possibile implementare controlli robusti, ridurre l’esposizione e garantire il funzionamento sicuro delle proprie API.
Zerberos offre servizi di penetration testing per gli endpoint API secondo lo standard OWASP per aiutare a individuare e correggere vulnerabilità di sicurezza.