Bloccare gli attacchi API
A seguito della crescente proliferazione di dispositivi mobili, reti IoT e sistemi cloud, sono cambiate anche le architetture delle applicazioni con le relative interfacce di programmazione delle applicazioni (API). Le API poco protette e i dati personali sono stati minacciati da una moltitudine di attacchi automatici.
Poiché le interfacce di programmazione delle applicazioni (API) rendono molto semplice la comunicazione tra le singole architetture, il loro uso è esploso negli ultimi tempi. La comunicazione API, ad esempio, rappresenta oggi oltre l'80% di tutto il traffico Internet. Allo stesso tempo, possono anche essere la causa di una moltitudine di problemi di sicurezza.
La maggior parte degli attacchi è dovuta essenzialmente a problemi di autenticazione, bot, falle di sicurezza o denial of service (DoS). Circa un quarto delle aziende gestisce ancora applicazioni critiche basate su API senza alcuna strategia di sicurezza in grado di prevenire efficacemente gli attacchi degli hacker.
Non c'è da stupirsi che gli attacchi a livello di API stiano diventando sempre più popolari. Anche perché è più anonimo e le API di solito non sono così ben protette come i siti web o le applicazioni mobili. Nel caso peggiore, non solo i dati sono potenzialmente a rischio, ma anche l'intera infrastruttura. Sfruttando un'API vulnerabile, gli hacker possono ottenere l'accesso a un'intera rete con un solo attacco.
Se poi riescono ad aumentare i privilegi, possono verificarsi altri tipi di attacchi e il malware può diffondersi in tutta la rete. Alcuni attacchi, spesso di tipo multiplo, possono potenzialmente portare alla compromissione dei dati più sensibili di un'azienda, siano essi informazioni di identificazione personale (PII) o proprietà intellettuale (IP).
Tipici attacchi hacker alle API web: Le API sono particolarmente vulnerabili ai seguenti tipi di attacchi. Nessuno di loro è nuovo. Purtroppo, a causa della mancanza di misure, sono spesso molto efficaci.
Attacchi di iniezione: Un attacco di tipo injection si verifica quando un hacker riesce a inserire codici o comandi dannosi in un programma. Di solito, dove ci si aspetta un input comune da parte dell'utente (nome utente o password). Mitigate i danni convalidando e sanificando tutti i dati nelle richieste API e limitando i dati di risposta per evitare la fuga involontaria di dati sensibili.
Cross-Site Scripting (XSS): Si tratta di un tipo di attacco a iniezione che si verifica quando una vulnerabilità consente a un hacker di inserire uno script dannoso (spesso JavaScript) nel codice di un'applicazione web o di un sito web. Attenuate i danni con la convalida dell'input e l'uso di funzioni di escape e di filtro per i caratteri.
Attacchi DDoS (Distributed Denial of Service): Attacchi di questo tipo causano l'indisponibilità di una rete, di un sistema o di un sito web per gli utenti. Ciò accade, ad esempio, quando un sito web è invaso da un traffico di dati superiore a quello che può gestire. Gli endpoint API, in particolare, sono obiettivi DDoS estremamente interessanti per gli hacker. Limitazione dei danni attraverso limiti di velocità e di carico utile.
Attacchi Man-in-the-Middle (MitM): Questi attacchi si verificano quando un aggressore intercetta il traffico tra due sistemi comunicanti. Con le API, gli attacchi MitM possono avvenire tra il client (app) e l'API o tra l'API e l'endpoint. Limitazione dei danni mediante la crittografia del traffico dati durante la trasmissione.
Imbottimento di credenziali: Gli hacker utilizzano le credenziali rubate agli endpoint di autenticazione API per ottenere un accesso non autorizzato. Mitigare i danni utilizzando i feed di intelligence per identificare il riempimento delle credenziali, implementare limiti di velocità e controllare gli attacchi brute force.
Rispetto delle pratiche di sicurezza: Oltre a queste attività di mitigazione del rischio, è importante che le aziende adottino alcune misure di base ed eseguano controlli di sicurezza comprovati se intendono condividere pubblicamente le proprie API. A tal fine, le aziende devono attribuire una maggiore priorità alla sicurezza informatica. Perché le aziende hanno molto da perdere con API non protette.
A tal fine, le API devono essere inventariate e gestite. Che un'organizzazione abbia una dozzina o centinaia di API disponibili pubblicamente, deve innanzitutto conoscerle per poterle proteggere e gestire. A tal fine è necessario effettuare scansioni perimetrali. La gestione potrebbe quindi essere effettuata congiuntamente ai team DevOps.
È necessario utilizzare sempre soluzioni di autenticazione e autorizzazione forti. L'autenticazione difettosa si verifica quando le API non applicano l'autenticazione. Poiché le API costituiscono un punto di accesso ai database di un'organizzazione, è particolarmente importante che l'organizzazione controlli rigorosamente l'accesso ad esse.
Attività di riduzione del rischio: Le aziende dovrebbero sempre ispirarsi al principio del minor privilegio. Questo principio fondamentale di sicurezza prevede che ai soggetti (utenti, processi, programmi, sistemi, dispositivi) sia concesso solo l'accesso minimo necessario per svolgere una determinata funzione. Questo dovrebbe valere anche per le API.
Un altro problema è la crittografia del traffico con TLS. Alcune aziende scelgono di non criptare i dati del payload API considerati non sensibili (ad esempio, i dati del servizio meteo). Tuttavia, se le API scambiano abitualmente dati sensibili, è necessario prendere in considerazione la crittografia TLS.
I dati che non devono essere condivisi devono essere rimossi. Poiché le API sono essenzialmente uno strumento per gli sviluppatori, spesso contengono chiavi, password e altre informazioni. Questi non devono essere resi disponibili al pubblico. A volte questa fase viene trascurata con noncuranza. Per questo, gli strumenti di scansione dovrebbero essere integrati nei processi DevSecOps per evitare la divulgazione accidentale di informazioni segrete.
Alcune API rivelano troppe informazioni. Ad esempio, la quantità di dati estranei restituiti tramite l'API o le informazioni che dicono troppo sull'endpoint dell'API. Pertanto, le API dovrebbero restituire solo le informazioni necessarie per svolgere la loro funzione.
Questo articolo tecnico è apparso nell'edizione stampata di SicherheitsForum 3-2022.
Volete leggere gli articoli di questo numero? Allora chiudete subito qui un abbonamento.