Perché esiste una classifica, e perché conviene fidarsene
La sicurezza applicativa sembra un campo infinito, in cui ogni sistema ha i suoi problemi. In realtà i difetti si ripetono: gli stessi errori compaiono in applicazioni diverse, scritte da persone diverse, perché nascono dagli stessi modi di ragionare. Una fondazione indipendente, OWASP, raccoglie i dati da migliaia di applicazioni reali e pubblica ogni pochi anni una classifica dei dieci difetti più diffusi e più sfruttati. È il punto di partenza di chiunque faccia questo lavoro seriamente — e anche di chi lo fa per rubare.
Le porte, in ordine di quanto vengono provate
| Il difetto | Cosa significa in pratica |
|---|---|
| Controllo degli accessi rotto | Un utente arriva a dati o funzioni non suoi: vede l'ordine di un altro, apre una schermata da amministratore. Il numero uno. |
| Errori di configurazione | Un pannello lasciato aperto, un messaggio d'errore che rivela troppo, una password di default mai cambiata. |
| Componenti con falle note | Una libreria vecchia con una vulnerabilità già pubblicata, che chi attacca conosce prima di voi. |
| Errori di autenticazione | Login senza limite ai tentativi, password deboli accettate, sessioni che non scadono. |
| Iniezione | Dati inseriti dall'utente che l'applicazione esegue come fossero comandi, invece di trattarli come testo. |
Le prime quattro righe non sono attacchi sofisticati: sono cose che l'applicazione avrebbe dovuto controllare e non controlla. Si trovano provando, non con strumenti costosi.
Il numero uno merita una frase a parte
Che al primo posto ci sia il controllo degli accessi rotto dice una cosa importante: il difetto più diffuso e più dannoso non è un buco tecnico, è una dimenticanza di significato. L'applicazione sa chi siete — avete fatto il login — ma quando chiedete un dato non verifica che quel dato sia vostro. È il difetto del cliente che, cambiando un numero nell'indirizzo, apre i documenti di un altro cliente. Lo trattiamo a parte in una guida dedicata, perché è quello che troviamo più spesso nei portali e nei gestionali, ed è anche quello che potete verificare da soli in dieci minuti.
Cosa potete controllare senza chiamare nessuno
Le porte che si provano da soli
- Un cliente riesce a vedere i dati di un altro cambiando un numero? (La guida sull'IDOR spiega come verificarlo.)
- C'è un limite ai tentativi di login, o si può provare la password all'infinito?
- I componenti e le librerie sono aggiornati, o fermi alla versione del rilascio?
- Esistono pannelli di amministrazione raggiungibili senza essere loggati come amministratore?
- I messaggi d'errore mostrano dettagli tecnici (versioni, percorsi, righe di codice) a chi non dovrebbe vederli?