OWASP Top 10

Indice dei contenuti

    OWASP Top 10 è il documento di riferimento mondiale per la sicurezza delle applicazioni web, pubblicato e aggiornato dall’Open Worldwide Application Security Project (OWASP). Elenca le dieci categorie di vulnerabilità più critiche, diffuse e pericolose per le applicazioni web, basandosi su dati raccolti da centinaia di organizzazioni e migliaia di applicazioni reali. Non è una lista di bug specifici, ma una tassonomia di classi di rischio che orienta sviluppatori, tester e architect nella costruzione di software sicuro.

    L’edizione più recente (2021) ha introdotto tre nuove categorie e riorganizzato le precedenti rispetto alla versione 2017.

    Le dieci categorie (edizione 2021)

    A01 — Broken Access Control

    Controlli di accesso assenti o mal configurati consentono a utenti non autorizzati di accedere a risorse, funzioni o dati altrui. Comprende IDOR, escalation di privilegi orizzontale e verticale, e accesso diretto a URL protette senza autenticazione.

    Frequenza: la categoria più diffusa — presente nel 94% delle applicazioni testate.

    A02 — Cryptographic Failures

    Uso improprio o assente di crittografia per proteggere dati sensibili in transito e a riposo. Ingloba la vecchia categoria “Sensitive Data Exposure” ampliandola con l’analisi delle cause crittografiche: algoritmi deboli (MD5, SHA-1, DES), chiavi hardcoded, certificati non validati, mancanza di TLS.

    A03 — Injection

    Dati non validati inviati a un interprete (SQL, LDAP, OS shell, XML) vengono eseguiti come comandi. Include SQL Injection, LDAP Injection, OS Command Injection, e XXE. La difesa principale è il binding parametrizzato delle query e la validazione rigorosa dell’input.

    A04 — Insecure Design

    Categoria nuova nel 2021. Riguarda le falle architetturali introdotte in fase di progettazione: threat modeling assente, requisiti di sicurezza ignorati, assenza di principi come defense in depth e least privilege. Non può essere corretta solo con una migliore implementazione — richiede riprogettazione.

    A05 — Security Misconfiguration

    Configurazioni errate a ogni livello dello stack: permessi eccessivi, account di default non disabilitati, stack trace esposte, header di sicurezza assenti, cloud storage pubblico, porte aperte non necessarie. Legata strettamente ai Security Headers HTTP.

    A06 — Vulnerable and Outdated Components

    Uso di librerie, framework o componenti con vulnerabilità note (CVE). L’ecosistema open source amplifica il rischio: una singola dipendenza vulnerabile può compromettere centinaia di applicazioni. Richiede un processo di gestione delle dipendenze (Software Composition Analysis) e aggiornamenti tempestivi.

    A07 — Identification and Authentication Failures

    Debolezze nei meccanismi di autenticazione: credenziali deboli, mancanza di MFA, gestione insicura delle sessioni (ID predicibili, mancata invalidazione al logout), attacchi di credential stuffing non mitigati.

    A08 — Software and Data Integrity Failures

    Categoria nuova nel 2021. Comprende scenari in cui il codice o i dati vengono aggiornati senza verifica di integrità: pipeline CI/CD compromesse, aggiornamenti automatici non firmati, deserializzazione insicura (Insecure Deserialization), Supply Chain Attack.

    A09 — Security Logging and Monitoring Failures

    Assenza o inadeguatezza di logging degli eventi di sicurezza: tentativi di login falliti non registrati, alert non generati, log non protetti da manomissione, assenza di correlazione (SIEM). Senza visibilità, le intrusioni restano non rilevate per settimane o mesi.

    A10 — Server-Side Request Forgery (SSRF)

    Categoria nuova nel 2021. Il server effettua richieste HTTP verso destinazioni controllate dall’attaccante, permettendo accesso a risorse interne (metadata cloud, endpoint amministrativi, servizi interni non esposti). Approfondita nella voce dedicata SSRF.

    Confronto con l’edizione 2017

    20212017Variazione
    A01 Broken Access ControlA05Risalita al primo posto
    A02 Cryptographic FailuresA03 Sensitive Data ExposureRinominata e ampliata
    A03 InjectionA01Sceso dal primo posto
    A04 Insecure DesignNuova categoria
    A05 Security MisconfigurationA06Invariata
    A06 Vulnerable ComponentsA09Risalita
    A07 Auth FailuresA02 Broken AuthRinominata
    A08 Software Integrity FailuresNuova categoria
    A09 Logging & MonitoringA10Invariata
    A10 SSRFNuova categoria

    Come usare l’OWASP Top 10

    L’OWASP Top 10 non è uno standard di sicurezza — è un documento di sensibilizzazione. Non sostituisce un threat model completo né una valutazione di sicurezza approfondita. Va usato come:

    • Checklist minima durante la progettazione e il Secure SDLC.
    • Base per i requisiti di sicurezza nei capitolati di appalto software.
    • Priorità per il Penetration Testing delle applicazioni web.
    • Riferimento per la formazione degli sviluppatori.

    Progetti che dichiarano “conformità OWASP Top 10” intendono generalmente che l’applicazione è stata testata e non presenta le vulnerabilità nelle dieci categorie — ma la vera conformità richiede un audit formale e non si riduce all’auto-dichiarazione.

    Risorse correlate

    Ultimo aggiornamento: