Che cos’è IAST (Interactive Application Security Testing)?
Interactive Application Security Testing (IAST) è un metodo che combina Static Application Security Testing (SAST) e Dynamic Application Security Testing (DAST) per trovare le vulnerabilità delle applicazioni in modo più efficace.
Le caratteristiche di IAST includono:
- Gli strumenti IAST funzionano aggiungendo sensori o componenti di monitoraggio all’interno dell’applicazione mentre è in esecuzione. Questi strumenti osservano come si comporta l’app durante i test, siano essi automatizzati o eseguiti da persone. Questo approccio consente a IAST di controllare l’esecuzione del codice, gli input degli utenti e come l’app gestisce i dati in tempo reale.
- IAST non esegue automaticamente la scansione dell’intero codice sorgente; la sua copertura è determinata dall’ampiezza dell’applicazione esercitata durante i test. Più estesa è l’attività di test, più profonda è la copertura delle vulnerabilità.
- IAST è tipicamente implementato in ambienti di QA o staging dove vengono eseguiti test funzionali automatizzati o manuali.
Perché IAST è importante nella cybersecurity
SAST analizza il codice sorgente, il bytecode o i binari senza eseguire l’applicazione ed è altamente efficace nel rilevare errori di codifica, ma può produrre falsi positivi e mancare di rilevare problemi specifici del runtime.
DAST testa le applicazioni dall’esterno mentre sono in esecuzione e può esporre problemi che si manifestano solo durante il runtime, ma manca di una visibilità profonda nella logica interna o nella struttura del codice. IAST colma il divario combinando i punti di forza di queste tecniche, fornendo:
- Approfondimenti più dettagliati sulle fonti e sui percorsi delle vulnerabilità.
- Miglioramento dell’accuratezza del rilevamento rispetto a SAST o DAST da soli.
- Riduzione dei falsi positivi correlando l’attività di runtime con l’analisi del codice.
Come Funziona IAST
- Strumentazione: IAST utilizza la strumentazione, il che significa che sensori o codice di monitoraggio sono incorporati nell’applicazione (spesso in un ambiente QA o di staging) per osservare il suo comportamento durante i test.
- Monitoraggio: Osserva il flusso dei dati, l’input dell’utente e il comportamento del codice in tempo reale mentre l’applicazione viene esercitata da test o azioni manuali.
- Rilevamento: Segnala vulnerabilità come configurazioni insicure, flussi di dati non sanitizzati o rischi di iniezione.
- Reportistica: Vengono forniti risultati azionabili e indicazioni di rimedio agli sviluppatori per affrontare i problemi rilevati.
Esempio
Durante i test funzionali, il team QA interagisce con il modulo di login. Lo strumento IAST rileva che l’input dell’utente fluisce in una query di database senza sanificazione, indicando un potenziale rischio di iniezione SQL. Il team riceve un rapporto di vulnerabilità e passaggi azionabili per risolvere i problemi di sicurezza.