Cancellazione / modifica dell'ID di sessione al logout

5

Durante la lettura dello standard OWASP ASVS (ancora beta) ho trovato un requisito V2.6 che dice

Verify that the session id is changed or cleared on logout.

Non vedo un chiaro motivo per cui è necessario che l'ID di sessione sia cambiato o cancellato dopo il logout. È necessario annullare la sessione, quindi dopo aver effettuato il logout non è possibile accedere a risorse protette. Ma perché dovrei voler cambiare l'ID della sessione? Difesa in profondità?

EDIT: Un'altra risposta alla domanda .

    
posta Marek Puchalski 29.07.2014 - 15:10
fonte

3 risposte

1

. It is necessary to have the session invalidated so after logging out no protected resources can be accessed. But why should I want to change the session id? Defense in depth?

L'ID sessione stesso può essere visualizzato come una porzione di informazione privata associata alla sessione utente autenticata. La cancellazione di questo ID dal lato client garantisce che questo valore privato non sia più disponibile.

Sì, si tratta di una sorta di difesa approfondita, in quanto sarà possibile verificare dal lato client che la sessione è cambiata, il che implicherebbe che il server non sappia nulla di più sulla sessione corrente (cioè non legata a nessuna account utente o detiene dati privati, ecc.). Se stavi esaminando un'applicazione contro lo standard ASVS e hai notato che l'ID sessione era cambiato al logout, puoi essere certo che tutti i dati della sessione sono stati cancellati e non sono più disponibili dal client. Sì, tecnicamente è possibile codificare un sistema per migrare qualsiasi dato di sessione nella nuova sessione, ma poiché non esiste un vero motivo per farlo, è una buona misura della qualità della gestione della sessione dell'applicazione.

Inoltre, l'invio del vecchio ID può essere eseguito come parte del test per garantire che non venga più riconosciuto come sessione autorizzata.

    
risposta data 30.07.2014 - 15:37
fonte
5

A causa della possibile fissazione della sessione: link

In computer network security, session fixation attacks attempt to exploit the vulnerability of a system which allows one person to fixate (set) another person's session identifier (SID). Most session fixation attacks are web based, and most rely on session identifiers being accepted from URLs (query string) or POST data.

Un altro problema: se l'utente ha lo stesso ID di sessione dopo il logout (anche se i contenuti della sessione vengono cancellati), l'attaccante guadagna la possibilità di prolungare l'utilizzo dell'id della sessione rubata. Alice accede ad un sito; L'attaccante ruba i cookie con l'id della sessione; Alice si disconnette dal sito; L'attaccante non può utilizzare i cookie rubati per accedere al sito; Alice accede al sito; L'attaccante può usare il cookie rubato, perché l'id di sessione di Alice è lo stesso;

La regola empirica è quella di cambiare l'ID della sessione il più spesso possibile.

    
risposta data 29.07.2014 - 15:22
fonte
2

È un altro modo di dire la stessa cosa. L'obiettivo è che un utente malintenzionato che acquisisce l'ID di sessione di un utente autenticato non dovrebbe essere in grado di continuare a utilizzare quell'ID di sessione per interagire con l'applicazione come l'utente autenticato dopo che l'utente si è disconnesso. Dopo il logout, l'applicazione non dovrebbe più riconoscere quell'ID di sessione. Dal punto di vista dell'implementazione, ciò può significare invalidare la sessione o modificare l'id di sessione sul server in modo che non possa più fare riferimento al vecchio ID di sessione.

    
risposta data 29.07.2014 - 15:18
fonte

Leggi altre domande sui tag