Cosa comprende un test di sicurezza delle API:
- Valutare le API per individuare falle di sicurezza, difetti e vulnerabilità
- Valutare la qualità dei meccanismi di sicurezza impiegati, come autorizzazione e autenticazione
- Valutare la capacità delle API di resistere agli attacchi mirati così come agli attacchi in cui le API vulnerabili svolgono un ruolo secondario
I test di sicurezza delle API sono una componente distinta ed essenziale dei test di sicurezza.
Perché Separare i Test di Sicurezza delle API?
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
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:
- È indipendente dal linguaggio e dalla piattaforma.
- Produce meno falsi positivi rispetto ad altri metodi di test.
- È efficace per identificare configurazioni di sicurezza errate.
Gli svantaggi di DAST sono i seguenti:
- È difficile da scalare.
- Non funziona per la scoperta/”discovery” delle API.
- Non ha visibilità sul codice.
- È lento.
SAST
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:
- Consente di analizzare il codice sorgente estremamente velocemente, molto più velocemente di un programmatore umano.
- Funziona bene per trovare errori nel codice che deviano dalle pratiche di codice sicuro.
- È facile da implementare.
Gli svantaggi di SAST includono:
- Genera numerosi falsi positivi.
- È dipendente dal linguaggio e dal framework.
IAST
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:
- Fornisce risultati rapidi e in tempo reale.
- È adatto per i microservizi.
- Non interrompe il processo di sviluppo.
Gli svantaggi di uno IAST includono:
- È dipendente dal linguaggio di programmazione.
- È complesso da implementare poiché richiede l’installazione di moduli/sensori.
Tipi di Test di Sicurezza delle API
Per quanto riguarda i tipi di test di sicurezza delle API, possiamo parlare dei seguenti:
- Test di penetrazione delle API (white box, gray box o black box)
- Scansione delle vulnerabilità delle API
- Fuzzing delle API
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.
Strumenti di Test di Sicurezza delle API
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:
- Introdurre una priorità delle vulnerabilità di sicurezza e offrire linee guida per aggiustarle.
- Abbastanza semplice da poter essere utilizzato con successo sia da sviluppatori inesperti che da esperti di sicurezza.
- Fornire funzionalità di scansione adatte al tipo/i tipi di API (REST, GraphQL, SOAP o altri).
- Produrre un basso “rumore”, cioè non dovrebbe generare un tasso inaccettabile di falsi positivi.
- Essere in grado di integrarsi senza problemi nell’ambiente di sviluppo, lavorare in modo non intrusivo e performare abbastanza velocemente da non ostacolare il normale flusso di lavoro dei team di sicurezza e sviluppo.
- Utile includere un motore di intelligenza artificiale automatico per aumentare l’efficienza del lavoro.
I seguenti fornitori attualmente offrono soluzioni di test di sicurezza delle API:
- Noname Security
- Bright Security
- Salt Security
- Traceable
- Wallarm
- APIsec
- Equixly
Quando Testare?
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).
Come Funzionano i Test di Sicurezza delle API?
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.
Conclusione
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.
https://www.ictsecuritymagazine.com/notizie/una-breve-guida-ai-test-di-sicurezza-delle-api-by-equixly/