Che cos'è la fissazione della sessione?

click fraud protection

Ci sono molti diversi tipi di vulnerabilità di sicurezza che si trovano nei siti web, uno interessante è chiamato "Riparazione della sessione". La fissazione della sessione è un problema in cui un utente malintenzionato può influenzare l'identificatore di sessione, noto anche come ID di sessione di un utente, e quindi utilizzarlo per accedere al proprio account. Ci sono due modi in cui questo tipo di vulnerabilità può funzionare, può consentire all'aggressore di trovare o impostare l'ID di sessione di un altro utente.

Come viene eseguito un attacco di fissazione della sessione

L'id di sessione di un utente è spesso una parte fondamentale dell'autenticazione al sito Web ed è in molti casi l'unico dato che identifica lo specifico utente connesso. Il problema è che se un utente malintenzionato può impostare o apprendere l'ID di sessione di un altro utente, può utilizzare il token di sessione e quindi essere in grado di agire come utente.

In genere, ciò viene fatto inducendo un utente a fare clic su un tipo di collegamento di phishing. Il collegamento stesso è completamente legittimo ma include una variabile che imposta un ID di sessione specificato. Se l'utente accede con l'ID di sessione e il server non gli assegna un nuovo ID di sessione su login, l'attaccante può semplicemente impostare il proprio ID di sessione in modo che sia lo stesso e avere accesso a quello della vittima account.

Un altro modo in cui l'attaccante può scoprire l'ID di sessione della vittima è se appare in un URL. Ad esempio, se l'aggressore può indurre la vittima a inviare loro un collegamento che include l'ID di sessione della vittima, l'aggressore può utilizzare l'ID di sessione per accedere all'account della vittima. In alcuni casi, questo può accadere completamente per caso. Ad esempio, se l'utente copia l'URL con l'id di sessione e lo incolla su un amico o in un forum, qualsiasi utente che segue il collegamento verrà registrato con l'account dell'utente.

Riparazioni per la fissazione della sessione

Esistono alcune soluzioni a questo problema e, come sempre, la soluzione migliore è implementare il maggior numero possibile di soluzioni come parte di una strategia di difesa in profondità. La prima soluzione consiste nel modificare l'ID di sessione dell'utente al momento dell'accesso. Ciò impedisce a un utente malintenzionato di influenzare l'ID di sessione di un utente connesso. È inoltre possibile configurare il server in modo che accetti solo gli ID di sessione che ha generato e rifiuti esplicitamente qualsiasi ID di sessione fornito dall'utente.

Il sito Web deve essere configurato per non inserire mai dettagli utente sensibili come l'id di sessione nell'URL e dovrebbe inserirlo in un parametro di richiesta GET o POST. Ciò impedisce all'utente di compromettere accidentalmente il proprio ID di sessione. Utilizzando sia un ID di sessione che un token di autenticazione separato, raddoppia la quantità di informazioni di cui l'aggressore ha bisogno per ottenere e impedisce agli aggressori di accedere a sessioni con ID di sessione noti.

È fondamentale che tutti gli ID di sessione validi per un utente vengano invalidati quando si fa clic sul pulsante di disconnessione. È possibile rigenerare l'ID di sessione su ogni richiesta, se gli ID di sessione precedenti vengono invalidati, ciò impedisce anche agli aggressori di utilizzare l'ID di sessione noto. Questo approccio riduce anche significativamente la finestra delle minacce se un utente rivela il proprio ID di sessione.

Abilitando più di questi approcci, una strategia di difesa approfondita può eliminare questo problema come rischio per la sicurezza.