La navigazione forzata (o forced browsing) rappresenta una tecnica di attacco estremamente efficace, spesso sottovalutata sia dagli sviluppatori che dagli utenti finali. Questo metodo sfrutta le vulnerabilità presenti nella gestione delle autorizzazioni e nell’accesso alle risorse web, permettendo agli attaccanti di accedere a pagine, file e dati sensibili che dovrebbero essere al di fuori della loro portata.

forced browsing attack

La navigazione forzata si basa sull’idea che, anche se una risorsa non è direttamente visibile o linkata all’interno di un’applicazione, essa può comunque essere accessibile attraverso tecniche di indovinazione di URL o l’uso di strumenti automatizzati per la scansione delle directory.
Questo tipo di attacco esplode lacune nella configurazione della sicurezza e nell’implementazione di controlli di accesso adeguati, esponendo le organizzazioni a rischi significativi, dalla perdita di dati sensibili fino a compromissioni più estese del sistema.

Con l’obiettivo di fornire una panoramica completa su questa minaccia e su come proteggersi, questo articolo esplorerà la natura della navigazione forzata, illustrando metodologie di attacco, esempi pratici, conseguenze potenziali e, soprattutto, strategie efficaci per mitigare il rischio e rafforzare la sicurezza delle nostre applicazioni web.

  1. Forced Browsing, che cos’è?
  2. Analisi operativa: come funziona questa tecnica?
  3. Conseguenze degli attacchi
  4. Considerazioni finali e misure di prevenzione

Forced Browsing, che cos’è?

Il forced browsing, noto anche come navigazione forzata, è una tecnica di attacco che mira a identificare e accedere a risorse, pagine web, file, o directory che sono presenti su un sito web o all’interno di un’applicazione web ma non sono direttamente linkate o visibili agli utenti.
Queste risorse, benché nascoste, rimangono accessibili attraverso URL diretti o attraverso la previsione di percorsi e nomi di file basati su schemi comuni o prevedibili.

Gli attaccanti sfruttano la navigazione forzata per cercare di bypassare le misure di sicurezza che normalmente proteggerebbero queste risorse, come i sistemi di autenticazione e autorizzazione, per ottenere accesso a:

  1. dati sensibili
  2. configurazioni interne
  3. dati personali degli utenti
  4. pannelli di amministrazione
  5. backup di database
  6. log di sistema

e altre informazioni che possono essere sfruttate per condurre ulteriori attacchi o per danneggiare sia l’entità che gestisce il sito web sia gli utenti che vi accedono.

La navigazione forzata può essere attuata manualmente, con l’attaccante che cerca di indovinare gli URL, o automaticamente, utilizzando strumenti di scanning che automatizzano il processo di enumerazione delle risorse non linkate. Questo tipo di attacco è efficace quando le applicazioni web non implementano correttamente controlli di accesso robusti o quando presumono erroneamente che nascondere un link o una risorsa sia sufficiente per proteggerla.

Per mitigare i rischi associati alla navigazione forzata, è fondamentale adottare una serie di misure di sicurezza, tra cui:

  • la verifica dell’autenticazione e dell’autorizzazione per ogni risorsa accessibile
  • l’impiego di liste di controllo di accesso (ACL)
  • la disattivazione dell’elenco delle directory sul server
  • l’uso di strumenti di testing della sicurezza per identificare e correggere vulnerabilità e configurazioni errate.

Analisi operativa: come funziona questa tecnica?

Le metodologie di attacco tramite navigazione forzata si basano su tecniche diverse per identificare e accedere a risorse web non protette adeguatamente. Queste tecniche possono variare dalla semplice identificazione di URL a metodi più sofisticati che utilizzano strumenti automatizzati.
Di seguito sono descritte alcune delle metodologie di attacco più comuni nella forced browsing:

1. Guess URL

Questa tecnica si basa sull’abilità dell’attaccante di indovinare URL, percorsi di directory o nomi di file basandosi su convenzioni di denominazione standard o prevedibili. Gli attaccanti possono tentare di accedere a risorse come /admin, /config, /backup o utilizzare combinazioni comuni per file come backup.zip, admin.php, ecc.

2. Enumerazione di directory e file

Gli attaccanti utilizzano tool di scansioni automatiche per enumerare directory e file presenti sul server web. Strumenti come DirBuster, OWASP ZAP o WFuzz vengono impiegati per automatizzare la ricerca di risorse nascoste, testando una vasta gamma di percorsi derivati da liste di parole contenenti nomi comuni di directory e file.

3. Manipolazione di parametri URL

Questa tecnica prevede la manipolazione dei parametri all’interno degli URL per accedere a risorse non autorizzate. Ad esempio, modificando l’ID utente in un URL come /profile.php?id=123 per tentare di accedere ai dati di altri utenti senza le dovute autorizzazioni.

4. Accesso a risorse prevedibili

Alcune risorse hanno ubicazioni o nomi prevedibili basati su schemi o convenzioni standard.
Gli attaccanti possono sfruttare questa prevedibilità per tentare di accedere a file di configurazione, pannelli di controllo, script di installazione non rimossi o documentazione interna.

5. Sfruttamento della configurazione errata del server

Errori nella configurazione del server, come l’abilitazione dell’elenco delle directory, possono permettere agli attaccanti di visualizzare l’intero contenuto di una directory non protetta. Da qui, possono navigare liberamente tra le risorse disponibili e identificare file sensibili o punti di ingresso vulnerabili.

6. Brute Force su Autenticazioni e Form di Login

Sebbene non strettamente limitata alla navigazione forzata, la tecnica del brute force può essere utilizzata in combinazione con gli attacchi di navigazione forzata per superare autenticazioni deboli o indovinare credenziali di accesso a risorse protette.

Conseguenze degli attacchi

Gli attacchi di navigazione forzata possono avere conseguenze serie per le organizzazioni e gli utenti finali.
Di seguito sono elencate alcune delle principali ripercussioni che possono derivare da questi attacchi:

Violazione dati sensibili
Gli attaccanti possono accedere a dati sensibili, come informazioni personali degli utenti, dati finanziari, documenti confidenziali, o credenziali di accesso. Questo può portare a violazioni della privacy, furto di identità, e perdite finanziarie significative sia per gli utenti che per le organizzazioni.

Accesso non autorizzato a funzioni amministrative
La navigazione forzata può permettere agli attaccanti di scoprire e accedere a pannelli di amministrazione o funzionalità backend senza le dovute autorizzazioni, consentendo loro di modificare configurazioni, gestire account utente, o eseguire altre azioni amministrative dannose.

Compromissione sito web 
Ottenendo l’accesso a file di configurazione o script di installazione tramite navigazione forzata, un attaccante può modificare il comportamento del sito web o dell’applicazione, inserire malware, distribuire contenuti dannosi, o realizzare attacchi di defacement.

Perdita di reputazione e fiducia
Un attacco di navigazione forzata di successo può danneggiare seriamente la reputazione di un’organizzazione, minando la fiducia dei clienti e degli utenti. Questo può tradursi in perdite finanziarie a lungo termine, diminuzione della clientela, e costi elevati per ripristinare l’integrità e la sicurezza dei sistemi.

Sanzioni legali
Le organizzazioni che subiscono violazioni di dati a seguito di attacchi di navigazione forzata possono affrontare sanzioni legali, multe e obblighi di risarcimento se si scopre che non hanno adottato misure adeguate per proteggere i dati sensibili, violando le normative sulla privacy e protezione dei dati come il GDPR in Europa.

Considerazioni finali e misure di prevenzione

Gli attacchi di forced browsing spesso derivano da debolezze nella configurazione di sicurezza delle applicazioni web.
Queste vulnerabilità emergono quando le componenti delle applicazioni web diventano esposte a causa di configurazioni errate o non affidabili.

Le vulnerabilità dovute a errori di configurazione possono interessare sia sistemi che componenti software.
Alcuni esempi includono funzionalità di amministrazione remota, servizi non necessari esposti dal software, file o script di configurazione di test e account utente predefiniti forniti dal software del server web. Queste funzionalità consentono agli aggressori di accedere al sistema.

Queste debolezze possono essere sfruttate per vari tipi di attacchi, inclusi buffer overflow, iniezioni di codice e di comandi, tentativi di credenziali e Cross-Site Scripting (XSS).

Per prevenire il forced browsing, è essenziale adottare due approcci principali:

  1. Controllo degli accessi
    Fornire agli utenti accesso in linea con le loro autorizzazioni e applicare politiche di controllo degli accessi e di autorizzazione adeguate.
    Un firewall delle applicazioni web (WAF) rappresenta una soluzione eccellente in questo contesto poiché offre controllo degli accessi e protezione contro attacchi basati su sessione a livello di URL, applicando politiche di autorizzazione.
  2. Implementazione di una lista di controllo degli URL dell’applicazione
    Creare una lista di controllo contenente solo gli URL sicuri e consentiti.
    Ogni richiesta al di fuori di questa zona sarà automaticamente respinta, in quanto questi URL sono fondamentali per il corretto funzionamento dell’applicazione. L’elaborazione manuale e la gestione di tale lista possono essere dispendiose, ma un WAF può automatizzarne la creazione e l’applicazione, analizzando il traffico attendibile e apprendendo lo spazio URL effettivo. Inoltre, può imporre un elenco di blocchi per le directory e i file spesso vulnerabili.

Anche i WAF più potenti possono presentare vulnerabilità agli attacchi di forced browsing dovuti a difetti di sicurezza.
Tuttavia, è possibile sviluppare un’architettura di sicurezza per il WAF che massimizzi l’efficacia, riducendo al minimo la frequenza e le conseguenze degli attacchi tradizionali.

In fase di sviluppo, è consigliabile utilizzare modelli di applicazioni web a livello singolo o doppio, ma è fondamentale notare che questa configurazione può presentare punti deboli. Pertanto, in produzione, è preferibile adottare un’architettura a livelli multipli/N, che elimina questi punti deboli e permette la compartimentazione attraverso la separazione delle funzioni in base ai livelli, ognuno eseguito su un sistema autonomo.

Per ottimizzare prestazioni, utilizzo, visibilità e affidabilità, il WAF dovrebbe essere posizionato dietro il livello di bilanciamento del carico nella maggior parte delle configurazioni delle applicazioni. Sebbene il WAF possa essere collocato in vari punti nel flusso dei dati, questa posizione garantisce migliori prestazioni, poiché è più vicina all’applicazione protetta.