Cosa comprende un test di sicurezza delle API:
I test di sicurezza delle API sono una componente distinta ed essenziale dei test di sicurezza.
Mentre altri tipi di test, come gli “integration test” e “unit test”, sono ben integrati nel processo di sviluppo, i test di sicurezza non hanno ancora raggiunto lo stesso livello di integrazione in molte organizzazioni.
Il sondaggio “State of APIs 2022” ha rivelato che i test di sicurezza rappresentavano solo il 4,0% delle risorse dedicate ai test delle API. I test funzionali, di integrazione e di accettazione erano i tre tipi di test delle API più prevalenti eseguiti dai partecipanti al sondaggio.
I risultati si basavano su 850 risposte da professionisti di oltre 100 paesi. Molti partecipanti erano sviluppatori.
Queste statistiche ci lasciano a bocca aperta. Le organizzazioni devono integrare molto meglio i test di sicurezza; il 4% è sproporzionatamente basso.
Anche se la situazione è migliorata negli ultimi due anni, è difficile immaginare miglioramenti radicali, specialmente considerando il costante aumento degli incidenti di sicurezza delle API.
Com’è possibile che le API, una componente cruciale dell’attuale digitalizzazione dei settori economici, ricevano così poca attenzione riguardo alla sicurezza?
Una ragione potrebbe essere che sia i team di sviluppo che quelli di sicurezza sono sovraccarichi di lavoro e sotto pressione per le scadenze, quindi le organizzazioni fanno dei compromessi a scapito dei test di sicurezza delle API.
Qualunque sia la ragione, una cosa è certa: i test di sicurezza sono diversi dai test “classici” effettuati in fase di sviluppo e irriducibili a qualsiasi altro tipo di test – sia che si tratti di un altro tipo di test delle API o di test di sicurezza generici delle applicazioni.
Dal rilascio della prima OWASP Top 10 API Security Risks nel 2019, abbiamo un quadro di riferimento specializzato per la sicurezza informatica delle API su cui costruire il nostro programma di sicurezza delle API, con i test di sicurezza come componente critica.
OWASP, l’Open Worldwide Application Security Project, ha riconosciuto la natura delle sfide di sicurezza delle API, ha condotto ricerche approfondite su incidenti di sicurezza delle API effettivamente segnalati, attacchi informatici e programmi di bug bounty, e ha creato linee guida per i rischi o vulnerabilità di sicurezza delle API più comuni e gravi.
Nei test di sicurezza adottiamo la prospettiva del nemico, cioè dell’attore minaccioso/hacker/attaccante. Non testiamo solo l’API esponendola a tutti gli scenari possibili in cui deve resistere ai requisiti degli utenti, sia scenari di base che anomali. Il nostro approccio non è quello dell’utente.
I termini “DAST”, “SAST”, “IAST” o “SCA” sono piuttosto comuni. Di cosa si tratta?
DAST sta per “test di sicurezza dinamico delle applicazioni”. Rientra nella categoria dei test black box, il che significa che il tester non possiede informazioni sul codice, sul design, sulla struttura e sulla superficie d’attacco del target.
Un DAST valuta la sicurezza del target in uno stato operativo, cioè durante l’esecuzione, motivo per cui è chiamato dinamico. Aiuta a stabilire se ci sono vulnerabilità basate sulle risposte del target alle richieste inviate.
I vantaggi dei DAST includono:
Gli svantaggi di DAST sono i seguenti:
L’acronimo SAST sta per “test di sicurezza statico delle applicazioni”. È un test white box, il che significa che il tester conosce il funzionamento interno del target di test – design, codice e struttura.
Un SAST è diverso da un DAST in quanto aiuta a trovare vulnerabilità nel codice sorgente. Analizza il codice senza eseguirlo, da cui deriva il termine “statico”.
Oltre a trovare vulnerabilità di sicurezza, come problemi di validazione degli input, un SAST consente anche di scoprire difetti di progettazione ed errori di programmazione, come errori di sintassi.
I punti di forza dei SAST sono:
Gli svantaggi di SAST includono:
IAST, o “test di sicurezza interattivo delle applicazioni”, si trova a metà strada tra DAST e SAST.
Come i DAST, questo test include l’interazione con il target durante l’esecuzione. Tuttavia, come i SAST, contiene anche elementi di test white box, con i tester che hanno accesso al codice, ai flussi di dati e controllo e alla configurazione del sistema.
Uno IAST consente di trovare vulnerabilità di sicurezza, come chiavi API non criptate e input utente non validati, e osservare i risultati dei test in tempo reale.
I vantaggi di uno IAST sono i seguenti:
Gli svantaggi di uno IAST includono:
Per quanto riguarda i tipi di test di sicurezza delle API, possiamo parlare dei seguenti:
Indipendentemente dal tipo, i test di sicurezza delle API possono essere manuali, automatizzati o una combinazione dei due.
I test manuali sono necessari. Dopo tutto, non c’è niente come l’esperienza umana, indipendentemente dal settore.
Tuttavia, le organizzazioni stanno adottando sempre più test automatizzati, incluso il pentesting delle API, per buone ragioni. Considerando le condizioni attuali, i test frequenti e regolari richiedono semplicemente l’automazione.
I test manuali tendono a essere lenti, costosi e soggetti a errori.
Dato che l’automazione si basa su tecnologie altamente efficienti e intelligenti che possono lavorare con enormi volumi di dati in un lasso di tempo relativamente breve – come l’intelligenza artificiale e il machine learning – l’impiego di test di penetrazione delle API automatizzati, scansione delle vulnerabilità e fuzzing è una scelta ovvia.
Proprio come ci sono tipi di test DAST, SAST, e IAST, ci sono strumenti per effettuare test DAST, SAST, e IAST. Le organizzazioni hanno fatto ricorso a questi strumenti tradizionali di sicurezza per testare le API. Tuttavia, la pratica ha dimostrato che sono inadeguati per i test di sicurezza delle API.
Alcuni fornitori di sicurezza delle API parlano di “DAST modernizzati”, ma non sono soluzioni create per le API.
La “best practice” è utilizzare soluzioni di test di sicurezza appositamente create per testare le API (con una forte enfasi su “appositamente”). Non è difficile capire perché.
Proprio come usare una moto da strada per fare sterrato non è l’ideale – è necessaria una soluzione per i test di sicurezza delle API per testare la sicurezza delle API.
Gli ultimi anni hanno visto l’emergere di un mercato software di sicurezza delle API. Questo sviluppo è un risultato inevitabile e logico della proliferazione globale delle API e dell’aumento degli incidenti di sicurezza correlati alle API.
Le organizzazioni, specialmente le grandi imprese, necessitano dell’uso di strumenti di test di sicurezza delle API specializzati per colmare le lacune di sicurezza e proteggere i dati sensibili a cui si accede e si scambiano in gran parte tramite API. I fornitori di sicurezza delle API sono qui per soddisfare queste esigenze.
Le funzionalità essenziali di uno strumento di test di sicurezza delle API includono:
I seguenti fornitori attualmente offrono soluzioni di test di sicurezza delle API:
L’approccio “shift-left” sta diventando sempre più popolare. Gli esperti dicono che la sicurezza dovrebbe essere inclusa già nella fase di progettazione delle API, prima che gli sviluppatori scrivano la prima riga di codice. Aggiungere “la sicurezza” in seguito, dopo che l’API è stata già progettata e scritta, può portare a vulnerabilità e costi aggiuntivi.
Attualmente, i test di sicurezza delle API assomigliano al gioco Jenga. Gli sviluppatori costruiscono una torre, e dopo che è stata costruita, i test di sicurezza iniziano a rimuovere mattoni, solo per finire con una torre che crolla, chiedendo agli sviluppatori di ricostruirla.
Tuttavia, quando i test di sicurezza sono ben integrati nel processo di sviluppo, i test di sicurezza semplicemente indirizzano gli sviluppatori a spostare i mattoni qua e là. Gli sviluppatori lo fanno, riorganizzano la struttura. Non c’è collasso della torre, nessuna necessità di ricostruire, solo un processo fluido e ininterrotto.
Perché testare in pre-produzione, cioè durante lo sviluppo? Per una semplice ragione: consente di scoprire i problemi di sicurezza mentre sono ancora facilmente risolvibili e permette di eliminare molte vulnerabilità alla radice, risparmiando tempo e risorse – le due cose più preziose per qualsiasi organizzazione e azienda.
Tuttavia, i test di sicurezza delle API devono essere parte anche della fase di produzione per identificare falle altrimenti non rilevabili (ad esempio, problemi di configurazione dei sistemi di produzione).
I file OpenAPI (OAS), file HAR o collezioni Postman sono la base dei test delle API, sia manuali che automatici. Una piattaforma di test di sicurezza automatizzata, come Equixly, utilizza un algoritmo intelligenza artificiale proprietario per eseguire numerosi attacchi in un lasso di tempo relativamente breve.
Questa guida ha definito cosa sono i test di sicurezza delle API e ha discusso perché sono necessari.
DAST, SAST, IAST e SCA non sono propri test di sicurezza delle API, e sono necessari test specializzati e soluzioni appositamente costruite per proteggere le API.
Contattaci per saperne di più ed approfondire i test di sicurezza delle API con Equixly.
Il controllo di un UAV (Unmanned Aerial Vehicle[1], cioè velivolo senza pilota umano a bordo)…
Nel corso della Tavola Rotonda "Industry 5.0: Sfide e Strategie per la Cybersecurity nell'Era della…
La Tavola Rotonda “Direttive NIS 2 e CER e Regolamento DORA, Sicurezza informatica e resilienza…
Durante il Forum ICT Security 2024, la tavola rotonda intitolata "Cloud Security e Zero Trust:…
Due premesse sono necessarie. La prima è che sono stato membro di un gruppo di…
La security della supply chain è una sfida cruciale per le aziende in un mondo…