Sicurezza del token di sicurezza Passportjs

1

Utilizzo Express js struttura web e passaporto js libreria per l'autenticazione. Tutto funziona bene ma ho un dubbio.

Per mantenere una sessione di accesso persistente, il passaporto js utilizza sessione cookie e salva due cookie nel browser dell'utente. Uno è session e un altro è session.sig . Ho anche il modulo di autorizzazione nella mia app che viene dopo aver superato l'autenticazione.

Il mio problema si verifica quando due utenti hanno effettuato l'accesso e entrambi hanno ruoli diversi (diritti e permessi). Se uno degli utenti copia il valore session e session.sig dal browser di un altro utente e incolla all'interno del cookie del proprio browser, è in grado di ottenere i dettagli e i diritti dell'account.

Quindi è una vulnerabilità o è una cosa generale?

Che cosa succede se qualcuno utilizza uno strumento proxy web come "Burp"?

Grazie.

    
posta Arpit Meena 27.06.2017 - 12:06
fonte

2 risposte

1

Diversi professionisti AppSec hanno opinioni diverse su questo. Ho conosciuto alcuni che hanno sostenuto che questa è una vulnerabilità.

Personalmente, penso: "dipende" (lo so, quella frase è cliché).

Due motivi:

  1. Se un utente autenticato sta collaborando con un utente malintenzionato o se è un utente malintenzionato, è necessario accettare che l'applicazione & i dati sono esposti nella misura in cui l'utente ha accesso. Tratto questo come "hey questo è praticamente lo stesso come l'utente che passa le sue credenziali di accesso" - anche se tecnicamente è diverso.

  2. Lo stesso vale se il sistema / browser del client viene compromesso nella misura in cui un utente malintenzionato ha accesso a tutto ciò che lo contiene.

Tuttavia, spostando i cookie di sessione da un browser a un altro o peggio, un sistema a un altro è difendibile in una certa misura - attraverso l'uso di nonce per conversazione e / o mantenendo altre informazioni sul profilo del client come UA Strings e IP indirizzi. Ci sono dei limiti su quanto lontano puoi andare con questa linea di difesa, ma poi nessuna singola difesa è sufficiente contro un determinato attaccante.

    
risposta data 27.06.2017 - 12:32
fonte
1

I token di sessione sono considerati segreti, se li copi da un browser a un altro, è normale che tu possa effettivamente accedervi mentre le tue applicazioni guardano questi valori per verificare l'identità.

Se stai usando uno strumento proxy web come il rutto, gli hacker hanno già eseguito con successo un man-in-the-middle. Ecco perché utilizziamo SSL / TLS: per crittografare il traffico in modo che questo token sensibile non perda.

Ci sono alcune azioni di attenuazione che puoi intraprendere come controllare l'agente utente o gli indirizzi IP per ogni sessione. Se questi cambiano, invalidi immediatamente la sessione.

    
risposta data 27.06.2017 - 12:33
fonte

Leggi altre domande sui tag