Le OWASP Top 10 sono l’elenco più citato dei rischi di sicurezza delle applicazioni web, pubblicato dall’Open Worldwide Application Security Project (OWASP) , un’organizzazione no-profit rispettata. È redatto per i professionisti della sicurezza, ma i rischi che descrive hanno conseguenze dirette per l’azienda: violazioni di dati, tempi di inattività, sanzioni e perdita di fiducia. Questa guida spiega ogni categoria in parole semplici, così da poter porre le domande giuste sulle tue applicazioni.

OWASP revisiona l’elenco ogni pochi anni, man mano che gli schemi di attacco evolvono. Le categorie seguenti riflettono la ben consolidata revisione del 2021, che rimane il riferimento standard per la maggior parte dei team; i rischi di fondo restano stabili anche se la loro classifica cambia.

In sintesi

  • Le OWASP Top 10 sono l’elenco standard del settore dei rischi di sicurezza più critici per le applicazioni web
  • Le categorie principali riguardano il controllo degli accessi, la crittografia debole, i difetti di injection e le scelte di progettazione insicure fatte all’inizio
  • La maggior parte di questi rischi si riduce a poche cause profonde: controlli mancanti, configurazione errata, componenti obsoleti e monitoraggio inadeguato
  • Non è necessario essere tecnici per responsabilizzare il tuo team o il tuo fornitore sulla gestione di ciascuno di essi

1. Controllo degli accessi non funzionante (Broken Access Control)

Cosa significa: Gli utenti possono fare o vedere cose che non dovrebbero, ad esempio consultare i dati di un altro cliente modificando un ID nell’URL, o raggiungere una funzione di amministrazione senza essere amministratori.

Perché è importante: È costantemente uno dei rischi più comuni e dannosi. Porta direttamente all’esposizione dei dati e ad azioni non autorizzate.

Chiedi al tuo team: I permessi vengono applicati sul server per ogni richiesta, e non semplicemente nascosti nell’interfaccia?

2. Falle crittografiche (Cryptographic Failures)

Cosa significa: I dati sensibili (password, dettagli di pagamento, informazioni personali) non sono protetti adeguatamente, ad esempio non cifrati in transito o a riposo, oppure protetti con algoritmi deboli o obsoleti.

Perché è importante: I dati sensibili esposti causano violazioni e, ai sensi del GDPR, potenziali sanzioni e l’obbligo di notifica.

Chiedi al tuo team: Tutto il traffico passa tramite HTTPS e i dati sensibili sono cifrati a riposo con algoritmi moderni?

3. Injection

Cosa significa: Un input non attendibile viene trattato come un comando, consentendo a un attaccante di manipolare un database (SQL injection) o di eseguire operazioni non previste. Il cross-site scripting (XSS) rientra qui.

Perché è importante: L’injection può esporre o distruggere interi database e dirottare le sessioni degli utenti.

Chiedi al tuo team: Utilizziamo query parametrizzate e convalidiamo e codifichiamo tutti gli input degli utenti?

4. Progettazione insicura (Insecure Design)

Cosa significa: La debolezza di sicurezza risiede nella progettazione stessa, non solo nel codice, ad esempio un flusso di reimpostazione della password che può essere abusato, o un checkout che si fida di un prezzo inviato dal browser.

Perché è importante: I difetti di progettazione non possono essere risolti in seguito con una patch; richiedono di ripensare la funzionalità. La sicurezza va considerata fin dall’inizio.

Chiedi al tuo team: Eseguiamo il threat modeling delle funzionalità importanti prima di realizzarle?

5. Configurazione di sicurezza errata (Security Misconfiguration)

Cosa significa: Impostazioni predefinite insicure, funzionalità superflue lasciate attive, messaggi di errore troppo dettagliati o header di sicurezza mancanti.

Perché è importante: La configurazione errata è estremamente comune e spesso banale da individuare e sfruttare per gli attaccanti.

Chiedi al tuo team: Gli account predefiniti sono rimossi, le funzionalità inutilizzate disattivate e gli header di sicurezza presenti?

6. Componenti vulnerabili e obsoleti (Vulnerable and Outdated Components)

Cosa significa: L’applicazione si basa su librerie, framework o plugin di terze parti con vulnerabilità note che non sono stati aggiornati.

Perché è importante: Gli attaccanti cercano su larga scala componenti vulnerabili noti. Molte violazioni importanti risalgono a una dipendenza non aggiornata.

Chiedi al tuo team: Teniamo traccia delle nostre dipendenze e le aggiorniamo tempestivamente quando vengono divulgate vulnerabilità?

7. Falle di identificazione e autenticazione (Identification and Authentication Failures)

Cosa significa: Sistemi di accesso deboli: politiche di password inadeguate, nessuna protezione contro la forza bruta, gestione debole delle sessioni o mancanza di autenticazione a più fattori.

Perché è importante: Gli account compromessi sono una via diretta ai dati e alle funzionalità.

Chiedi al tuo team: Offriamo l’autenticazione a più fattori (MFA) e proteggiamo contro il credential stuffing e la forza bruta?

8. Falle di integrità del software e dei dati (Software and Data Integrity Failures)

Cosa significa: Fidarsi di codice, aggiornamenti o dati provenienti da fonti non verificate, ad esempio un meccanismo di aggiornamento software insicuro o una pipeline di build compromessa (un rischio di supply chain).

Perché è importante: Gli attacchi alla supply chain sono in crescita e possono compromettere molte vittime contemporaneamente attraverso un unico canale attendibile.

Chiedi al tuo team: Verifichiamo l’integrità degli aggiornamenti e delle dipendenze e mettiamo in sicurezza la nostra pipeline di build e deployment?

9. Falle di logging e monitoraggio della sicurezza (Security Logging and Monitoring Failures)

Cosa significa: Non registrare gli eventi rilevanti per la sicurezza, o non monitorarli, così che gli attacchi passino inosservati per lunghi periodi.

Perché è importante: Non puoi rispondere a ciò che non vedi. Uno scarso monitoraggio è il motivo per cui le violazioni restano spesso non rilevate per mesi.

Chiedi al tuo team: Registriamo gli eventi di sicurezza e generiamo avvisi in caso di attività sospette?

10. Server-Side Request Forgery (SSRF)

Cosa significa: Un attaccante induce il server a effettuare richieste verso sistemi a cui non dovrebbe rivolgersi, raggiungendo potenzialmente servizi interni che non dovrebbero essere pubblici.

Perché è importante: L’SSRF può esporre l’infrastruttura interna e i metadati del cloud, ed è comparso in violazioni significative.

Chiedi al tuo team: Convalidiamo e limitiamo le destinazioni che il nostro server è autorizzato a contattare?

Punti chiave

  • Le OWASP Top 10 sono il riferimento standard per i rischi di sicurezza delle applicazioni web; la maggior parte dei punti si riduce a controlli mancanti, configurazione errata, componenti obsoleti e monitoraggio debole.
  • Controllo degli accessi, crittografia, injection e progettazione insicura sono le categorie a maggiore impatto.
  • Non è necessario essere tecnici per responsabilizzare il tuo team o il tuo fornitore su ogni rischio; le domande sopra sono un buon punto di partenza.
  • Il modo più affidabile per sapere a che punto sei è un test indipendente.

Testa il tuo sito rispetto alle OWASP Top 10

Le domande sopra avviano la conversazione; un test professionale fornisce la risposta. Il test di sicurezza applicativa combina analisi statica del codice, test dinamici a runtime, audit delle dipendenze e della supply chain, oltre a una revisione di autenticazione e crittografia per individuare questi rischi nella tua applicazione reale, con risultati classificati per livello di rischio e indicazioni di correzione. Per uno sguardo più ampio sulla messa in sicurezza di un sito attivo, consulta la guida all’audit di sicurezza del sito web per le aziende britanniche .

Domande frequenti (FAQ)

Cosa sono le OWASP Top 10? È un elenco aggiornato regolarmente dei dieci rischi di sicurezza più critici per le applicazioni web, pubblicato dall’Open Worldwide Application Security Project (OWASP). È il riferimento standard del settore per stabilire le priorità del lavoro sulla sicurezza applicativa.

Le OWASP Top 10 sono uno standard di sicurezza completo? No. È un documento di sensibilizzazione e definizione delle priorità che copre i rischi più critici, non una checklist esaustiva. Usalo come punto di partenza, insieme a test più approfonditi e a pratiche di sviluppo sicuro.

Con quale frequenza vengono aggiornate le OWASP Top 10? OWASP le revisiona ogni pochi anni, man mano che i dati e gli schemi di attacco cambiano. Le categorie evolvono e vengono riclassificate, ma i rischi di fondo restano sostanzialmente stabili, quindi i concetti rimangono rilevanti tra una revisione e l’altra.

Quale rischio OWASP è il più pericoloso? Varia a seconda dell’applicazione, ma il controllo degli accessi non funzionante e l’injection sono stati storicamente tra i più comuni e dannosi. La priorità giusta per te dipende da come la tua specifica applicazione è costruita ed esposta.

Come faccio a sapere se la mia applicazione è interessata? L’unico modo affidabile è il test: analisi statica, test dinamici e un audit delle dipendenze rispetto al tuo codice reale e all’applicazione in esecuzione. Un test professionale di sicurezza applicativa mappa i tuoi rischi su queste categorie con correzioni prioritizzate.