Autenticazione di Windows e ID sessione

4

Dopo un test di penetrazione eseguito su un'applicazione intranet che sto sviluppando, in ASP.NET MVC, una delle preoccupazioni sollevate è stata che l'applicazione supporta sessioni utente simultanee e si consiglia di riconfigurare l'applicazione per supportare solo una sessione alla volta per qualsiasi account utente.

È in uso l'autenticazione di Windows. Ciò significa che l'utente non deve accedere all'applicazione, ovviamente. L'applicazione controlla semplicemente la proprietà Windows Identity IsAuthenticated prima di procedere con qualsiasi azione. Neanche la sessione può essere scaduta. Non ci sono configurazioni disponibili, per quanto ne so, che possono limitare l'utente a un singolo ID di sessione.

Questa raccomandazione è corretta? In tal caso, posso limitare l'utente a un ID di sessione singola dato che sto utilizzando l'autenticazione di Windows?

    
posta Boggin 12.12.2013 - 16:50
fonte

2 risposte

3

Per le applicazioni standard di solito questo viene considerato come una priorità "bassa", principalmente come se un utente malintenzionato ha compromesso un account, può essere una restrizione utile per consentire a un utente solo di mantenere una singola sessione e disconnettere le sessioni precedenti quando viene avviato uno nuovo, in questo modo l'utente malintenzionato viene espulso al successivo accesso dell'utente.

In questo scenario l'utente malintenzionato dovrebbe essere registrato nell'account di dominio dell'utente per poter accedere alla sua sessione, quindi il controllo dovrebbe essere posizionato a livello di dominio (ad esempio, impedire agli utenti di avere più accessi simultanei al dominio) se ciò è auspicabile / possibile nel contesto della tua organizzazione

Quindi direi che la raccomandazione non si applica realmente all'applicazione che stai sviluppando, in quanto l'applicazione non ha realmente il controllo su quell'aspetto dell'autenticazione.

    
risposta data 12.12.2013 - 17:11
fonte
3

There is no configuration available, as far as I'm aware, that can limit the user to a single session id.

No, dovresti farlo da solo. Non sono sicuro di come funzioni il tuo modello auth-and-session al momento, ma in generale l'approccio sarebbe mantenere una tabella di ricerca persistente degli ID utente nel loro ID di sessione e lamentarti quando c'è una mancata corrispondenza.

Is this recommendation correct?

Per alcuni tipi di applicazioni, è probabilmente vantaggioso limitare gli accessi degli utenti, ma non è generalmente accettato come requisito di base, o addirittura come best practice. I framework Web non lo fanno per impostazione predefinita e la maggior parte non ti dà nemmeno un'opzione diretta per farlo.

Pesare: potrebbe legittimamente essere utile per un utente accedere con due browser o due dispositivi o accedere senza aver effettuato il logout da una sessione precedente recente? Oppure l'uso è in genere così lineare che questo non accadrà mai ed è più probabile che sia la prova di un'intrusione? Per me personalmente, le seccature extra degli utenti superano in genere i vantaggi marginali per la sicurezza, ma dipenderanno dal modello di utilizzo.

La buona notizia è che questa è una classica ricerca di riempimenti per pentest e se sei giù per preoccuparti di sessioni simultanee probabilmente stai facendo OK altrimenti. : -)

    
risposta data 15.12.2013 - 04:02
fonte