Un test di penetrazione di un’applicazione Web è un’attività progettata per misurare il comportamento di un programma basato su Internet durante un attacco o un exploit. Questi test utilizzano una varietà di programmi software per eseguire la scansione di un’applicazione e quindi eseguire diverse azioni che potrebbero verificarsi durante un attacco effettivo. Un test di penetrazione dell’applicazione Web può essere eseguito da un team di sviluppo o da un fornitore di servizi di terze parti. Se viene utilizzato un fornitore esterno, il team di sviluppo o il personale informatico (IT) a volte non verrà informato del test dalla direzione. Ciò potrebbe consentire a un test di penetrazione dell’applicazione Web di scoprire difetti che altrimenti sarebbero passati inosservati, il che può consentire di risolvere tali problemi prima del rilascio del software.
Le applicazioni Web sono pacchetti software a cui è possibile accedere ed eseguire su Internet. Queste applicazioni possono svolgere molte funzioni e in alcuni casi sono responsabili della gestione di dati considerati privati o addirittura preziosi. Al fine di evitare attacchi compromettenti, vengono in genere eseguiti test di penetrazione per individuare eventuali punti deboli o aree facilmente sfruttabili nel codice.
I tipici test di penetrazione delle applicazioni Web iniziano con una fase di raccolta delle informazioni. Lo scopo di questo passaggio è determinare quante più informazioni possibili sull’applicazione. Inviando richieste all’applicazione e utilizzando strumenti come scanner e motori di ricerca, è spesso possibile ottenere informazioni come numeri di versione del software e messaggi di errore che vengono spesso utilizzati per trovare exploit in seguito.
Dopo aver accumulato una quantità sufficiente di informazioni, l’obiettivo successivo di un test di penetrazione di un’applicazione Web è eseguire una serie di attacchi ed exploit diversi. In alcuni casi, le informazioni raccolte durante la prima fase identificheranno gli exploit a cui l’applicazione potrebbe essere vulnerabile. Se non sono state rilevate vulnerabilità evidenti, è possibile tentare una gamma completa di attacchi ed exploit.
Molte vulnerabilità tecniche diverse possono essere individuate da un test di penetrazione dell’applicazione Web. Questi test in genere tentano di utilizzare metodi come la manipolazione dell’URL (Universal Resource Locator), il dirottamento della sessione e l’iniezione SQL (Structured Query Language) per entrare in un’applicazione. Potrebbe anche esserci un tentativo di avviare un buffer overflow o altre azioni simili che possono causare un comportamento anomalo di un’applicazione. Se uno qualsiasi di questi attacchi o exploit fa sì che l’applicazione riveli dati sensibili al tester di penetrazione, i difetti vengono generalmente segnalati insieme a una linea di condotta suggerita.