I tentativi di Information Disclosure sono un tipo di attacco mirato ad acquisire informazioni specifiche del sistema di un sito web, tra cui dati su utenti o informazioni finanziarie; dati commerciali o aziendali sensibili; dettagli tecnici sul sito web o distribuzione di software, numeri di versione e livelli delle patches. Le informazioni acquisite possono contenere anche la posizione dei files di backup o dei files temporanei. E maggiore sarà il numero di informazioni che un aggressore imparerà di un sito web, più facile sarà il sistema per comprometterle.
Come un sito diventa vulnerabile a questo attacco?
I motivi possono essere diversi:
- Mancata rimozione di un contenuto interno al pubblico. Ad esempio, i commenti degli sviluppatori sono talvolta visibili agli utenti.
- Configurazione non sicura del sito Web e delle relative tecnologie. Ad esempio, la mancata disattivazione delle funzionalità di debug e diagnostica a volte può fornire agli aggressori strumenti utili per aiutarli a ottenere informazioni riservate.
- Design dell’applicazione. Ad esempio, se un sito Web restituisce risposte distinte quando si verificano diversi stati di errore, ciò può anche consentire agli aggressori di enumerare dati sensibili, come credenziali utente valide.
Come prevenire questi attacchi?
Prevenire completamente la divulgazione di informazioni è complicato a causa dell’enorme varietà di modi in cui può verificarsi. Tuttavia, ci sono alcune best practices generali che puoi seguire per ridurre al minimo il rischio che questo tipo di vulnerabilità si insinui nei tuoi siti web.
- Assicurati che tutti coloro che sono coinvolti nella produzione del sito Web siano pienamente consapevoli di quali informazioni sono considerate sensibili. A volte le informazioni apparentemente innocue possono essere molto più utili per un utente malintenzionato di quanto le persone credano.
- Controlla qualsiasi codice per la potenziale divulgazione di informazioni come parte del tuo QA o crea diversi processi. Dovrebbe essere relativamente facile automatizzare alcune delle attività associate, come l’eliminazione dei commenti degli sviluppatori.
- Utilizzare il più possibile messaggi di errore generici.
- Verificare che le funzionalità di debug o diagnostica siano disabilitate nell’ambiente di produzione.
- Assicurati di comprendere appieno le impostazioni di configurazione e le implicazioni sulla sicurezza di qualsiasi tecnologia di terze parti che implementi.