Le applicazioni web sono sempre più critiche per le attività aziendali e, al tempo stesso, sempre più esposte ad attacchi. Molte vulnerabilità nascono da una gestione impropria degli input e da controlli insufficienti durante lo sviluppo.
Il penetration testing su applicazioni web simula un attacco reale: verifica l’infrastruttura sottostante, analizza i punti di ingresso e tenta di ottenere il compromesso più profondo possibile. In questo articolo vengono illustrati casi rappresentativi in cui vulnerabilità dell’OWASP Top Ten sono state identificate e risolte attraverso attività di penetration testing.
1. SQL Injection in un’applicazione e-commerce
Injection flaws (OWASP A03)
Le vulnerabilità di injection si verificano quando dati non validati vengono inviati a un interprete come parte di un comando o di una query. Nel caso della SQL Injection, un attaccante può eseguire comandi non autorizzati sul database o accedere a dati riservati.
Scoperta tramite penetration test
Durante un penetration test su un’applicazione e-commerce, i campi di input — barra di ricerca e modulo di login — risultavano vulnerabili a SQL injection. Iniettando codice SQL malevolo, il tester ha potuto bypassare l’autenticazione, recuperare dati sensibili dei clienti e modificare i prezzi dei prodotti.
Esempio di exploit
Nel campo username di un modulo di login, l’inserimento di ' OR '1'='1 sfrutta la logica della query SQL per bypassare il controllo delle credenziali.
Soluzioni adottate
- Validazione degli input: consentire solo caratteri e formati attesi, rifiutando tutto il resto.
- Query parametrizzate (prepared statements): l’input dell’utente viene trattato come dato, non come codice eseguibile.
- Principio del minimo privilegio: limitare i permessi degli utenti del database al minimo necessario per il funzionamento dell’applicazione.
L’applicazione ha così prevenuto potenziali violazioni dei dati e protetto le informazioni dei clienti.
2. Cross-Site Scripting in un’applicazione bancaria
XSS (OWASP A07)
Le vulnerabilità XSS si verificano quando un’applicazione web include dati non validati in una risposta inviata al browser. Un attaccante può eseguire script malevoli nel contesto del browser della vittima, rubare sessioni, effettuare defacement o reindirizzare gli utenti verso siti dannosi.
Scoperta tramite penetration test
La bacheca messaggi dell’applicazione non sanificava correttamente l’input degli utenti. Un attaccante poteva iniettare codice JavaScript malevolo in un messaggio, che veniva eseguito nel browser di chiunque visualizzasse quella sezione.
Esempio di exploit
- L’attaccante pubblica un messaggio contenente codice JavaScript progettato per rubare i cookie di sessione o reindirizzare l’utente verso un sito di phishing.
- Quando un altro utente visualizza il messaggio, il codice viene eseguito nel suo browser.
Soluzioni adottate
- Output encoding: codificare tutti gli output forniti dall’utente prima di renderizzarli nel browser.
- Escaping contestuale: applicare tecniche di escaping in base al contesto di visualizzazione (HTML, JavaScript, URL).
- Content Security Policy (CSP): implementare una policy rigorosa per controllare le risorse che il browser può caricare.
L’applicazione bancaria ha così protetto le sessioni degli utenti e prevenuto accessi non autorizzati.
Altre vulnerabilità OWASP Top Ten da considerare
SQL Injection e XSS sono tra le più diffuse, ma l’OWASP Top Ten copre un insieme più ampio di rischi che ogni programma di penetration testing dovrebbe affrontare:
- Autenticazione compromessa: implementare autenticazione a più fattori, politiche di password robuste e una gestione corretta delle sessioni.
- Configurazione insicura: configurare correttamente applicazioni, framework, server e database, mantenendo tutti gli aggiornamenti di sicurezza.
- Riferimenti diretti a oggetti non sicuri (IDOR): implementare controlli di accesso per prevenire l’accesso diretto a risorse basato sull’input dell’utente.
- Mancato controllo di accesso a livello di funzione: verificare lato server l’autorizzazione degli utenti per ogni funzionalità esposta.
- Cross-Site Request Forgery (CSRF): utilizzare token anti-CSRF per prevenire azioni indesiderate eseguite a nome dell’utente autenticato.
- Componenti con vulnerabilità note: aggiornare regolarmente librerie, framework e dipendenze per correggere vulnerabilità pubblicamente note.
- Redirect e forward non validati: validare e sanificare l’input dell’utente per prevenire reindirizzamenti verso siti malevoli.
Cosa insegnano questi casi
- Sicurezza proattiva: il penetration testing regolare consente di identificare le vulnerabilità prima che vengano sfruttate in produzione.
- Difesa a strati: nessun controllo singolo è sufficiente; la combinazione di più misure riduce significativamente la superficie di attacco.
- Monitoraggio continuo: le applicazioni web evolvono; i controlli di sicurezza devono evolvere con esse.
- Formazione degli sviluppatori: la consapevolezza delle vulnerabilità comuni riduce il numero di difetti introdotti durante lo sviluppo.
- Conformità normativa: il penetration testing è spesso richiesto da standard come PCI DSS, ISO/IEC 27001 e dalla direttiva NIS2.
Le vulnerabilità delle applicazioni web possono esporre la tua azienda a rischi e attacchi informatici.
Affidati a ISGroup per:
- Web Application Penetration Test efficace e mirato
- Individuazione e correzione preventiva delle falle di sicurezza
- Supporto tecnico da esperti in sicurezza applicativa
Domande frequenti
- Cos’è l’OWASP Top Ten e perché è rilevante per il penetration testing?
- L’OWASP Top Ten è un documento di riferimento che elenca le dieci categorie di vulnerabilità più critiche per le applicazioni web, aggiornato periodicamente dalla community OWASP. Costituisce la base metodologica di molti programmi di penetration testing perché copre i rischi statisticamente più frequenti e ad alto impatto.
- Con quale frequenza dovrebbe essere eseguito un penetration test su un’applicazione web?
- La frequenza dipende dal contesto: in generale si raccomanda almeno un test annuale, ma anche dopo ogni rilascio significativo, modifiche all’infrastruttura o cambiamenti nei requisiti di compliance. Standard come PCI DSS impongono cadenze specifiche.
- Qual è la differenza tra vulnerability assessment e penetration testing?
- Il vulnerability assessment identifica e classifica le vulnerabilità presenti in un sistema, senza necessariamente sfruttarle. Il penetration testing va oltre: tenta attivamente di sfruttare le vulnerabilità per valutare l’impatto reale e la profondità del compromesso raggiungibile da un attaccante.
- Le vulnerabilità OWASP Top Ten riguardano solo le applicazioni web?
- L’OWASP Top Ten nasce per le applicazioni web, ma molti dei principi — come la validazione degli input, il controllo degli accessi e la gestione sicura delle sessioni — si applicano anche ad API, applicazioni mobile e microservizi. OWASP pubblica liste dedicate anche per questi contesti.
- Cosa succede dopo un penetration test: come si gestisce la remediation?
- Al termine del test viene prodotto un report che classifica le vulnerabilità per gravità e include raccomandazioni operative. Il team di sviluppo o il fornitore applicativo implementa le correzioni, dopodiché è buona pratica eseguire un retest per verificare che le vulnerabilità siano state effettivamente risolte.
Approfondimenti utili
- Web Application Penetration Testing — come ISGroup verifica la sicurezza delle applicazioni web simulando un attaccante reale.
- Guida al penetration test per applicazioni web — come trasformare i rischi OWASP in attività operative di test.
- Il ruolo del partner specializzato nel WAPT — criteri per scegliere chi deve eseguire test, report e remediation.
- Network Penetration Testing — verifica manuale dell’infrastruttura IT per identificare criticità che gli scanner automatici non rilevano.
- Vulnerability Assessment — attività non invasive per identificare vulnerabilità note e mantenere elevato il livello di sicurezza.
- Code Review — analisi del codice sorgente per individuare vulnerabilità non emerse durante i test dinamici.
- Ethical Hacking — simulazione di attacchi complessi che coinvolgono infrastruttura, persone e sicurezza fisica.
- Formazione — percorsi pratici per sviluppatori e team di sicurezza sulla codifica sicura e le best practice OWASP.

