Diventa Autore per CoreTech | Scopri di più
25/03/20 CoreTech Blog
Gli ID di sessione sono un piacere per gli hacker malintenzionati. Una volta che un utente malintenzionato mette le mani su un ID di sessione, può ottenere l'accesso non autorizzato a un'applicazione web e impersonare completamente un utente valido. In generale, esistono tre metodi principali per ottenere un ID sessione valido:
Nota: Alcune fonti percepiscono la previsione e la fissazione non come tipi separati di attacchi, ma come metodi di dirottamento di sessione.
La maggior parte dei metodi si concentra sui cookie di sessione perché sono utilizzati più comunemente per trasportare ID di sessione. Tuttavia, questi metodi non si limitano al dirottamento dei cookie, poiché molti si applicano ugualmente ai token di sessione inviati in altre parti delle richieste HTTP, come le intestazioni di richiesta personalizzate o il corpo della richiesta.
Previsione della sessione
Un ID di sessione deve essere univoco e dovrebbe essere difficile da indovinare. Ecco perché nella maggior parte dei casi gli ID di sessione sono semplicemente numeri lunghi generati casualmente. Tuttavia, non tutti gli sviluppatori utilizzano librerie di gestione delle sessioni sicure e rinomate. Alcuni decidono di generare da soli gli ID di sessione e non lo fanno troppo bene.
Gli attacchi di previsione della sessione sono, in generale, tutti gli attacchi che tentano di indovinare un ID di sessione valido (di qualsiasi utente) in base alla modalità di generazione di tali ID. Ad esempio, uno sviluppatore potrebbe decidere di usare un tempo Epoch con codifica base64 come identificatore di sessione. Pertanto, sarebbe simile a un ID sessione valido MTU4MDMwMDE1OQ==. Se l'utente malintenzionato individua questo algoritmo, può tentare di indovinare un token di sessione valido provando epoche diverse e codificandole in base64.
Un attacco a forza bruta potrebbe anche essere considerato una forma di previsione della sessione. Se la chiave di sessione è breve e il server Web non è protetto da più tentativi, l'utente malintenzionato può provare tutti i valori possibili uno per uno fino a quando non ottiene uno che funzioni.
Sessione fissa
La fissazione della sessione ha luogo quando l'utente malintenzionato genera un ID di sessione valido che non è ancora stato utilizzato e quindi lo fornisce all'utente, che lo utilizza per l'autenticazione. L'utente malintenzionato deve prima capire quale formato di ID sessione è valido e quindi utilizzare l'ingegneria sociale come phishing o una tecnica di attacco simile per indurre l'utente a fare click sul collegamento di accesso e fornire le proprie credenziali, associando così l'ID di sessione all’account.
Per saperne di più sulla fissazione della sessione, dai un'occhiata al nostro articolo Cos'è la fissazione della sessione .
Sessione Side-Jacking
Il termine side-jacking della sessione viene utilizzato per descrivere gli attacchi man-in-the-middle (MITM) che vengono eseguiti per rubare la sessione. L'utente malintenzionato ascolta la comunicazione tra il server web e il client e intercetta gli ID di sessione validi.
Ci sono molte tecniche di side-jacking di sessione che si basano su diverse tecniche di attacco MITM. Nel caso più semplice, quando il traffico non è crittografato, è necessario un semplice sniffer che lavora nella stessa rete locale del client, monitorando il traffico di rete per le connessioni dell'utente e lo sniffing dei pacchetti. Ciò è particolarmente comune nel caso delle reti Wi-Fi pubbliche.
Se il sito Web o l'applicazione web utilizza connessioni esclusivamente crittografate, lo sniffing di sessione semplice non funzionerà, ma è possibile provare altri trucchi. Per saperne di più su di loro, dai un'occhiata al nostro articolo Tutto quello che devi sapere sugli attacchi man-in-the-middle.
Cross-site Scripting (XSS)
Uno dei modi più efficaci per un utente malintenzionato per ottenere un cookie di sessione consiste nell'utilizzare un attacco XSS. Se il sito Web o l'applicazione Web presenta una vulnerabilità XSS, l'utente malintenzionato potrebbe ingannare l'utente. In questo caso, la vittima visita una pagina che esegue JavaScript dannoso nel browser client. Tale codice dannoso accede al cookie di sessione e quindi lo invia a un server controllato dagli aggressori.
Per ulteriori informazioni su Cross-site Scripting, dai un'occhiata ai nostri articoli: Cross-site Scripting (XSS) e Tipi di XSS.
Altri metodi
Gli aggressori possono anche utilizzare altri metodi per ottenere informazioni sulla sessione. Per esempio, potrebbero tentare di infettare i sistemi informatici degli utenti con malware come trojan. Un esempio di questo può essere l'attacco man-in-the-browser, in cui gli identificatori di sessione vengono rubati direttamente dal browser web dell'utente.
Difesa contro il dirottamento di sessione e attacchi simili
Per proteggere gli ID di sessione, attenersi alle seguenti regole: