Ogni specialista di sicurezza che si rispetti deve conoscerla. Si tratta di una raccolta delle vulnerabilità più incisive degli ultimi anni, più precisamente dell’ultimi 4, dato che la scorsa versione risale al 2017.
O.W.A.S.P (Open Web Application Security Project) è una fondazione no profit che si impegna a migliorare la sicurezza dei software. La top 10 è il fiore all’occhiello dell’associazione e probabilmente il loro “prodotto” più apprezzato dal pubblico.
Ma arriviamo al vivo dell’articolo:
La nuova TOP 10
- A01 Broken Access Control
- A02 Cryptographic Failures
- A03 Injection
- A04 Insecure Design
- A05 Security Misconfiguration
- A06 Vulnerable and Outdated Components
- A07 Identification and Authentication Failures
- A08 Software and Data Integrity Failures
- A09 Security Logging and Monitoring Failures
- A10 Server Side Request Forgery (SSRF)
I più avvezzi alla sicurezza conosceranno già la top 10 scorsa, più avanti dedicheremo qualche parola alle differenze tra 2017 e 2021, ma ora guardiamo punto per punto di cosa si tratta:
- A01:2021-Broken Access Control
- XA02:2021-Cryptographic Failures
- A03:2021-Injection
- A04:2021-Insecure Design
- A05:2021-Security Misconfiguration
- A06:2021-Vulnerable and Outdated Components
- A07:2021-Identification and Authentication Failures
- A08:2021-Software and Data Integrity Failures
- A09:2021-Security Logging and Monitoring Failures
- A10:2021-Server-Side Request Forgery
Rientrano in questa categoria tutte le violazioni del principio del minimo privilegio, questo può portare alla visione, modifica o alla distruzione di dati importanti, ad esempio, permettere la visione di account altrui fornendo il loro identificativo univoco (Insecure Direct Object Reference).
Riguarda il transito e lo stoccaggio dei dati in maniera crittata. Per fallimenti si intendono casi in cui la forza della crittografia sia insufficiente, come l’utilizzo di algoritmi vecchi e non sicuri, oppure la mancanza di entropia sufficiente o peggio l’utilizzo di chiavi di default.
Questa è forse la più famosa delle categorie da sempre presente nella Top Ten. In questa categoria possiamo annoverare moltissimi tipi di vulnerabilità, tra cui la SQL injection e gli altri tipi di mancata sanitizzazione dell‘input utente.
Era anche ora di introdurla in classifica una categoria del genere. Ormai sono anni che le applicazioni devono dare la priorità alla sicurezza piuttosto che alla fruibilità. Lo sviluppatore deve tenere a mente le parole “security by design” ancora prima il passare all’azione.
Fanno parte delle Security Misconfiguration tutti gli errori che un sistemista può compiere in fase di configurazione come: lasciare servizi inutili attivi oppure account di default abilitati.
L ‘utilizzo di componenti aggiuntivi in fase di costruzione dei contenuti facilita di molto il lavoro, ma importare componenti può essere pericoloso ancor di più se non viene svolto un regolare ciclo di update, lasciando scoperte vulnerabilità note che già sono state patchate.
Molto in voga l’implementazione di accessi remoti specie in aria di pandemia; lo smart working è ancora presente, ma i metodi di autenticazione non rispettano spesso gli standard di sicurezza; un esempio assimilabile a questa entry riguarda la mancata implementazione dell’autenticazione a due fattori che può essere scomoda per l ‘utente ma aumenta notevolmente la sicurezza.
Anche se bassa in classifica questo è un problema non da poco, l’integrità del dato è una delle basi della triade CIA. L’utilizzo di fonti non sicure pone l’utente a rischio di non ricevere il file che ha richiesto ma una copia malevola dello stesso.
Una politica di log molto verbosa è sicuramente comoda in sede di risposta agli incidenti, ma bisogna stare attenti al contenuto del log. Deve essere significativo per le nostre esigenze, ad esempio: sarebbe un errore non loggare i login falliti poiché potrebbero essere sintomo di un attacco brute force in corso.
Sono Server-Side Request Forgery, le richieste che un sito web fa a risorse esterne, senza validare l’Url fornito dall’utente. Questo permette a un attaccante di ridirezionare le richieste verso destinazioni inaspettate.
Differenze 2017-2021
Riportiamo un’infografica riassuntiva dei principali cambiamenti. Quello che possiamo dire è che le voci in tabella hanno assunto un carattere più generale includendo un maggior numero di vulnerabilità, allargando così lo spettro di copertura della top ten.
La classifica, dice O.W.A.S.P., è basata sui dati senza affidarvisi completamente, complice anche la presenza di due voci (A09-A10) inserite a causa di alcuni sondaggi svolti con gli utenti del settore.
Un altro cambiamento, riguardo al come viene stilata la classifica, riguarda la raccolta dei dati: nel 2017 le categorie erano impilate considerando la possibilità che un attacco potesse essere portato a termine. Nel 2021 il discorso si fa più tecnico considerando anche quale possa essere l’impatto di queste vulnerabilità.
L’impatto non viene calcolato in maniera totalmente statistica poiché esistono vulnerabilità non testabili in maniera completamente automatica. Questo creerebbe una certa polarizzazione della classifica verso alcuni tipi vulnerabilità, ciò obbliga ad utilizzare un diverso metodo d’inferenza, passando dalla frequenza all’incidenza.
L’utilizzo della frequenza oltre a soffrire del bias dato dall’automatismo, soffre di un’altra tendenza negativa collegata alla sistematicità della vulnerabilità incontrata. Ad esempio, un’applicazione potrebbe contenere 200 volte la stessa vulnerabilità, mentre un approccio che riguarda l’incidenza considererà quelle 200 vulnerabilità uguali ad una sola occorrenza, volgendo quindi lo sguardo a quante applicazioni vulnerabili più che quante vulnerabilità sono state trovate in un campione.
L’immissione di due categorie completamente derivate dal sentore popolare consente di avere una vista più ampia, permettendo di sapere cosa gli esperti del settore pensino sia una grave vulnerabilità. Grave, non diffusa.
Ci auguriamo che chiunque si cimenti a creare un’applicazione faccia tesoro delle informazioni che di volta in volta la fondazione OWASP fornisce agli utenti finali.