Perché È Importante
Il server ti dice costantemente più di quanto mostri il browser. Un frontend moderno riceve un errore JSON completo e mostra solo l'amichevole campo message, scartando in silenzio lo stack, l'eccezione del database e il dettaglio di debug. Leggi la risposta grezza in un proxy di intercettazione come Burp Suite e quel dettaglio nascosto diventa ricognizione gratuita.
L'information disclosure è una delle scoperte più comuni nel bug bounty e il silenzioso primo passo di molte violazioni reali, perché converte il tirare a indovinare in un attacco mirato. È catalogata come CWE-200 ed è alla base della fase di ricognizione di quasi ogni assessment web.
Sorgenti Comuni
- Stack trace: fanno trapelare il linguaggio, il framework, i percorsi dei file e i numeri di riga, spesso da un'eccezione non gestita.
- Errori del database: fanno trapelare il motore, il nome del database, le tabelle e le colonne, la preparazione perfetta per una SQL injection.
- Header prolissi: i banner
ServereX-Powered-Byrivelano software e versioni che un attaccante può associare a CVE note. - API che restituiscono troppo: endpoint che ritornano più campi di quelli mostrati dalla UI, a volte inclusi i dati di altri utenti o flag interni.
- Source map, commenti ed endpoint di debug: espongono la logica interna, le rotte nascoste e, occasionalmente, dei segreti hardcoded.
Un Esempio Pratico
Un form di login mostra il messaggio generico "l'email o la password fornita non è corretta". La stessa richiesta in un proxy restituisce un 401 il cui JSON trasporta anche un campo stack che punta a /home/app/node_modules/payload/dist/auth/operations/login.js. In un solo login fallito il tester ora sa che il runtime è Node.js, che il framework è Payload e i percorsi esatti del server, niente di tutto ciò che il browser ha mostrato. Quel dettaglio guida ogni test successivo.
Come la Sfruttano gli Attaccanti
Un nome di framework trapelato punta a vulnerabilità note. Un percorso di file trapelato permette a un attaccante di indovinare altri endpoint. Un nome di tabella e di colonna trapelato trasforma un tentativo di injection alla cieca in una precisa UNION SELECT. La disclosure in sé può sembrare innocua, ma rimuove l'incertezza che protegge la maggior parte dei target, ed è per questo che i triager la premiano ancora anche quando non viene mostrato alcuno sfruttamento ulteriore.
Come Testarla
Innesca errori di proposito e leggi la risposta grezza. Invia tipi inattesi, rimuovi campi obbligatori, manda JSON malformato, richiedi risorse inesistenti e confronta una risposta 500 con una normale 200. Ispeziona ogni header, cerca campi che la UI non mostra mai e controlla /.well-known/, le source map e le risposte API prolisse. L'abitudine che conta è leggere la risposta che il server ha realmente inviato, non la pagina che il browser ha disegnato.
Prevenzione
Mostra agli utenti errori generici e tieni il dettaglio nei log lato server. Disabilita l'output di debug in produzione, rimuovi i banner di versione e assicurati che le API restituiscano solo i campi autorizzati tramite modelli di risposta espliciti. Soprattutto, testa la tua applicazione attraverso un proxy così da vedere le risposte grezze che i browser dei tuoi utenti stanno nascondendo.
Come insegniamo Information Disclosure
Nel nostro Cybersecurity Bootcamp, non imparerai solo la teoria su Information Disclosure. Praticherai con strumenti reali in laboratori pratici, guidato da professionisti del settore che usano questi concetti quotidianamente.
Trattato in:
Modulo 10: Penetration Testing e Hacking Etico
360+ ore di formazione esperta • CompTIA Security+ incluso