Data di pubblicazione: 8 aprile 2024
Autori: Annie Badman, Amber Forrest
Il test dinamico di sicurezza delle applicazioni (DAST) è un metodo di test della cybersecurity utilizzato per identificare vulnerabilità e configurazioni errate nelle applicazioni web, nelle API e, più recentemente, nelle app mobili.
Rispetto ad altri tipi di test sulla sicurezza delle applicazioni (AppSec), il DAST si distingue per il suo approccio outside-in. Mentre altri strumenti richiedono il codice sorgente e l'accesso interno all'applicazione per valutare le vulnerabilità della sicurezza, DAST testa le applicazioni nel loro ambiente di runtime dall'esterno, utilizzando attacchi simulati per imitare i soggetti malintenzionati. Per questo motivo, il DAST viene talvolta chiamato test outside-in o test black box, un metodo di test in cui i sistemi vengono esaminati senza che il tester debba accedere, analizzare o persino conoscere il funzionamento del sistema interno.
Gli sviluppatori di oggi lavorano rapidamente, spesso aggiornando aree di codice specifiche più volte al giorno, senza una visione completa dell'intero codice. Si affidano molto a componenti di terze parti e open source e spesso faticano a collaborare in modo efficace con i team di sicurezza. La maggior parte lavora anche su applicazioni sempre più complesse, con numerose funzionalità, librerie e dipendenze, il tutto gestendo minacce di cybersecurity in continua evoluzione.
Il risultato è una superficie di vulnerabilità della sicurezza in costante aumento, che aumenta la difficoltà di scrivere codice sicuro e proteggere le informazioni sensibili dalla violazione dei dati. Gli sviluppatori hanno bisogno di modi per testare potenziali vulnerabilità mentre lavorano, senza compromettere la loro produttività.
DAST aiuta a rendere possibile tutto questo automatizzando il processo di test di sicurezza. Funziona imitando le azioni degli hacker reali, lavorando dall'esterno per scoprire potenziali vulnerabilità nelle applicazioni in esecuzione. Il DAST consente agli sviluppatori di testare il proprio codice e di vedere l'impatto sulla sicurezza complessiva dell'applicazione prima che venga messa in funzione ed eccelle nell'individuare i problemi di sicurezza, come gli errori di autenticazione e le vulnerabilità del codice, che spesso sfuggono ad altri metodi di test, come la Software Composition Analysis (SCA).
I moderni strumenti DAST (vedi sotto) si integrano perfettamente anche nelle pipeline DevOps e CI/CD per offrire interfacce per tutte le fasi dello sviluppo, anche nelle prime fasi del workflow di sviluppo delle applicazioni.
Le integrazioni di build e deployment sono una delle ragioni per cui i team DevOps adottano comunemente il DAST negli ambienti DevOps/DevSecOps come parte di un approccio "shift left" in cui i test vengono eseguiti nelle prime fasi del ciclo di vita dello sviluppo del software (SDLC) per una correzione più economica e rapida. Altri principi DevOps rafforzati dagli strumenti DAST includono la priorità dell'automazione, della collaborazione e del feedback continuo in modo che gli sviluppatori e i team di sicurezza possano rimanere agili e produttivi senza compromettere la sicurezza.
Adottando un approccio black box, il DAST emula le azioni che un soggetto malintenzionato potrebbe intraprendere quando tenta di violare un'applicazione web.
In generale, il DAST prevede le seguenti cinque fasi:
Come primo passo, gli scanner DAST simulano le interazioni degli utenti con l'applicazione in esecuzione inviando varie richieste HTTP. Questa mappatura identifica tutte le pagine, i collegamenti, le funzioni (per le applicazioni web a pagina singola) e i punti di ingresso come definiti nei test API tramite un documento di definizione API.
Man mano che le richieste vengono inviate, lo strumento DAST inizia ad analizzare le risposte dell'applicazione, cercando anomalie, messaggi di errore e comportamenti imprevisti che potrebbero indicare una vulnerabilità dell'applicazione web. Quando la scansione DAST rileva una potenziale vulnerabilità, ne registra la posizione e la risposta per riferimento futuro, consentendo di eseguire test manuali, se necessario.
Gli strumenti DAST iniziano anche a imitare attacchi comuni come SQL injection, Cross-Site Scripting (XSS) e Cross-Site Request Forgery (CSRF) per individuare vulnerabilità di sicurezza, come configurazioni errate, esposizioni di dati e problemi di autenticazione, che gli attori delle minacce potrebbero sfruttare.
Dopo l'analisi e gli attacchi simulati, gli strumenti DAST producono report che delineano le vulnerabilità identificate, la loro gravità e i potenziali scenari di attacco per guidare gli sviluppatori e i team di sicurezza. È importante considerare che le soluzioni DAST si concentrano esclusivamente sull'identificazione dei problemi di sicurezza e lasciano qualsiasi correzione ai team di sviluppo.
Gli strumenti DAST possono occasionalmente produrre falsi positivi, segnalando erroneamente qualcosa come una vulnerabilità. Quando ciò accade, è spesso necessario che una persona si occupi della convalida e della definizione della priorità.
Sebbene gli strumenti di test DAST non abbiano sottotipi ufficiali, gli esperti di sicurezza li classificano spesso in due gruppi informali: strumenti DAST moderni e strumenti DAST legacy, che si distinguono principalmente per l'automazione/l'integrazione e la validazione delle vulnerabilità.
Gli strumenti DAST legacy spesso mancano di funzionalità di automazione, sebbene il loro processo di scansione sia automatizzato. In genere si concentrano sui test di base, ovvero l'invio di richieste, la ricezione di risposte e l'esecuzione di valutazioni preliminari, e non offrono una convalida completa delle vulnerabilità, ma solo elenchi di potenziali problemi di sicurezza.
I moderni strumenti DAST hanno un grado di automazione più elevato e offrono una revisione più approfondita della vulnerabilità delle applicazioni web.
Le soluzioni DAST moderne possono integrarsi perfettamente nell'SDLC e funzionare in modo trasparente in background. Inoltre, i server di automazione possono attivare gli strumenti DAST moderni e presentare i risultati della scansione come ticket nel tracker dei problemi degli sviluppatori. Alcuni strumenti DAST moderni forniscono persino la prova dello sfruttamento, eliminando la necessità di una verifica manuale da parte di penetration tester o esperti di sicurezza, che richiede molto tempo.
Il DAST è spesso considerato una parte fondamentale dei test di sicurezza delle applicazioni web. Alcuni dei suoi vantaggi esclusivi includono:
Nonostante questi numerosi vantaggi, il DAST può avere dei limiti. Sebbene il DAST sia in grado di identificare i difetti di sicurezza nell'esecuzione delle applicazioni, potrebbe non rilevare tutte le vulnerabilità, in particolare quelle che richiedono sequenze di azioni specifiche. La combinazione del DAST con altri metodi, come il test statico di sicurezza delle applicazioni (SAST, vedi sotto), il test interattivo di sicurezza delle applicazioni (IAST), l'analisi della composizione del software (SCA) e i test di penetrazione manuali, può aiutare a completare il DAST e offrire un programma di sicurezza più completo.
Altri limiti del DAST possono includere:
Il DAST e il SAST, o test statico di sicurezza delle applicazioni, sono due metodi di test utilizzati per identificare le vulnerabilità di sicurezza nelle applicazioni web. Ma mentre il DAST valuta le applicazioni nel loro ambiente di produzione, imitando gli attacchi di utenti malintenzionati e identificando i problemi di sicurezza, il SAST esamina il loro codice sorgente, alla ricerca di vulnerabilità all'interno dell'applicazione web.
Gli esperti di cybersecurity generalmente suggeriscono di utilizzare sia il SAST che il DAST per affrontare i rischi per la sicurezza, per avere una visione completa delle potenziali vulnerabilità. Ad esempio, esaminando il codice sorgente di un programma, gli strumenti SAST possono rilevare un'ampia gamma di vulnerabilità di sicurezza che il DAST potrebbe non rilevare, tra cui SQL injection, buffer overflow, attacchi XXE e altri rischi dell'elenco OWASP Top 10.
L'utilizzo di una metodologia SAST incoraggia inoltre i test iniziali durante lo sviluppo, riducendo la probabilità di difetti di sicurezza nel codice sorgente dell'applicazione durante le fasi successive, portando a tempi di sviluppo più brevi e a una maggiore sicurezza generale.
Gestisci e proteggi il tuo personale mobile con una soluzione per la gestione unificata degli endpoint (UEM, Unified Endpoint Management) basata sull'AI.
Migliore protezione dei dati negli hybrid cloud e semplificazione dei requisiti di conformità.
Costruisci, distribuisci e itera applicazioni ovunque in modo sicuro trasformando DevOps in DevSecOps, includendo persone, processi e strumenti.