Passa al contenuto principale

Che cos'è il session hijacking e come funziona?

Hacker che usa un laptop

Per la maggior parte di noi, l'accesso a portali o siti Web fa parte dell'uso quotidiano di Internet. Ogni volta che accediamo a un sito Web, viene creata una sessione. Una sessione è la comunicazione tra due sistemi, che resta attiva finché non viene terminata dall'utente. L'avvio di una sessione è essenziale per la comunicazione su Internet, ma comporta anche il rischio di session hijacking (o dirottamento di sessione). Continua a leggere per altre informazioni sul session hijacking, su come funziona e su come proteggerti.

Che cos'è il session hijacking?

Si parla di session hijacking, a volte noto anche come cookie hijacking, cookie sidejacking o dirottamento di sessione TCP, quando l'autore dell'attacco assume il controllo della sessione Internet. Ciò può avvenire durante un acquisto online, il pagamento di una fattura o la verifica del saldo sul conto bancario. Gli autori di attacchi session hijacking prendono in genere di mira il browser o applicazioni Web con lo scopo di assumere il controllo della sessione di esplorazione per accedere a informazioni personali e password.

In questo modo, riescono a ingannare i siti Web spacciandosi per l'utente. Questo tipo di attacco può avere conseguenze gravi per la sicurezza delle applicazioni, in quanto consente agli autori degli attacchi di ottenere accesso non autorizzato ad account protetti (e ai dati che contengono) fingendosi utenti legittimi.

Che cos'è una sessione?

Ogni volta che un utente accede a un'applicazione o un sito Web tramite una connessione HTTP, il servizio autentica l'utente, ad esempio tramite un nome utente e una password, prima di aprire la comunicazione e consentire l'accesso. Tuttavia, poiché le connessioni HTTP sono in se stesse "stateless" (senza stato), ogni azione eseguita da un utente viene visualizzata in modo indipendente. Di conseguenza, se usassimo solo il protocollo HTTP, gli utenti dovrebbero continuare ad autenticarsi a ogni azione eseguita o pagina visualizzata.

Le sessioni consentono di risolvere questo problema. Una sessione viene creata nel server che ospita l'applicazione o il sito Web al momento dell'accesso dell'utente e funge quindi da riferimento per l'autenticazione iniziale. Gli utenti possono restare autenticati per tutto il tempo in cui la sessione è aperta nel server e terminare la sessione disconnettendosi dal servizio. Alcuni servizi terminano una sessione dopo un periodo di inattività prefissato.

Molti servizi creano queste sessioni emettendo un ID sessione, ovvero una stringa di numeri e lettere archiviati in cookie di sessione temporanei, URL o campi nascosti nel sito Web. In alcuni casi, anche se non in tutti, questi ID sessione sono criptati. Gli ID sessione sono spesso basati su informazioni prevedibili, ad esempio l'indirizzo IP di un utente.

Come funziona il session hijacking?

Ecco un esempio ipotetico del possibile funzionamento del session hijacking:

Passaggio 1. Un utente di Internet accede normalmente a un account. 

Può trattarsi di un account della banca o della carta di credito o di un negozio, un'applicazione o un portale online. L'applicazione o il sito Web installa un cookie di sessione temporaneo nel browser dell'utente. Il cookie contiene informazioni che consentono al sito di mantenere l'utente autenticato e connesso e di tenere traccia delle sue attività durante la sessione. Il cookie di sessione resta nel browser finché l'utente non si disconnette (o non viene disconnesso automaticamente dopo un periodi di inattività prefissato).

Passaggio 2. Un criminale riesce ad accedere alla sessione valida dell'utente di Internet. 

I cybercriminali usano diversi metodi per rubare le sessioni. Spesso, gli attacchi session hijacking comportano il furto del cookie di sessione dell'utente, l'individuazione dell'ID sessione al suo interno e l'uso di queste informazioni per assumere il controllo della sessione. L'ID sessione è noto anche come chiave di sessione. Quando il criminale ottiene l'ID sessione, può assumere il controllo della sessione senza essere rilevato.

Passaggio 3. L'autore dell'attacco session hijacking ottiene vantaggi dal furto della sessione.

Quando l'utente originale di Internet prosegue l'esplorazione online, l'autore dell'attacco può usare la sessione in corso per commettere diversi crimini. Ad esempio, può rubare denaro dal conto bancario dell'utente, acquistare articoli, ottenere dati personali per commettere il furto di identità o criptare dati importanti e quindi richiedere un riscatto per la restituzione.

Gli attacchi session hijacking vengono in genere compiuti su reti affollate con un numero elevato di sessioni di comunicazione attive. Di conseguenza, l'autore dell'attacco ha a disposizione un volume elevato di sessioni da sfruttare e anche una misura di protezione, perché il numero di sessioni attive sul server ne riducono le probabilità di rilevamento.

Tipi di session hijacking

Cross-site scripting
In un attacco cross-site scripting i cybercriminali sfruttano i punti deboli della protezione in un'applicazione o un server Web. Tramite il cross-site scripting l'autore dell'attacco inserisce script nelle pagine Web. Di conseguenza, il browser Web rivela la chiave di sessione all'autore dell'attacco, consentendogli di assumere il controllo della sessione.

Session sidejacking (noto anche come sniffing della sessione)
In questo tipo di attacco un criminale vuole accedere al traffico di rete di un utente. Può farlo quando l'utente usa una rete Wi-Fi non protetta o compiendo attacchi Man-in-the-Middle. In un attacco session sidejacking, un criminale usa lo "sniffing di pacchetti" per monitorare il traffico di rete di un utente di Internet e cercare sessioni. In questo modo, l'autore dell'attacco può ottenere un cookie di sessione e usarlo per assumere il controllo della sessione.

Correzione della sessione 
In un attacco di correzione della sessione il criminale crea un ID sessione e induce con l'inganno l'utente a usarlo per avviare una sessione. A questo scopo, l'autore dell'attacco può inviare all'utente un'e-mail contenente un collegamento a un modulo di accesso per il sito Web a cui vuole accedere. L'utente accede con il falso ID sessione, fornendo all'autore dell'attacco un punto di ingresso.

Attacco Man-in-the-Browser
Simile a un attacco Man-in-the-Middle, ma qui l'autore dell'attacco deve prima infettare il computer della vittima con un Trojan. Quando la vittima viene indotta con l'inganno a installare malware nel sistema, il malware attende che la vittima visiti il sito sotto attacco. Il malware Man-in-the-Browser può modificare invisibilmente le informazioni sulla transazione e può anche creare altre transazioni all'insaputa dell'utente. Poiché le richieste vengono avviate dal computer della vittima, è molto difficile per il servizio Web rilevare le richieste come false.

ID token di sessione prevedibile
Molti server Web usano un algoritmo personalizzato o un modello predefinito per generare ID sessione. Più un token di sessione è prevedibile, più e debole. Se gli autori degli attacchi riescono ad acquisire diversi ID e analizzare il modello, possono essere in grado di prevedere un ID sessione valido. Questo approccio può essere paragonato a un attacco di forza bruta.

Donna che accede al sito di una banca online

Qual è la differenza tra session hijacking e session spoofing?

Il session hijacking e il session spoofing hanno alcune caratteristiche simili, ma non sono lo stesso tipo di attacco. La differenza principale tra i due è che il session hijacking si verifica quando un utente legittimo ha già effettuato l'accesso a una sessione Web. Al contrario, il session spoofing si verifica quando l'autore dell'attacco si finge un utente per avviare una nuova sessione Web, ovvero l'utente non deve essere attualmente connesso.

Questa differenza fa sì che l'utente legittimo subisca conseguenze diverse dagli attacchi. Con il session hijacking l'autore dell'attacco che interrompe la sessione può causare comportamenti insoliti dell'applicazione o del sito Web o addirittura l'arresto anomalo per la vittima. Poiché, tuttavia, l'utente non è attivamente connesso durante un attacco session spoofing, non subirà alcuna interruzione durante la successiva sessione.

Impatto degli attacchi session hijacking

Molti sono i rischi associati alla mancata prevenzione di attacchi session hijacking. Eccone alcuni:

Furto d'identità 

Ottenendo accesso non autorizzato a informazioni personali sensibili salvate negli account, gli autori degli attacchi possono rubare l'identità di una vittima oltre i confini dell'applicazione o del sito Web sotto attacco.

Furto finanziario

Attraverso il session hijacking gli autori degli attacchi possono riuscire a effettuare transazioni finanziarie per conto dell'utente. Può trattarsi di un trasferimento di denaro da un conto bancario o di un acquisto con dati di pagamento salvati.

Infezione da malware

Se un hacker può rubare l'ID sessione di un utente, può anche riuscire a infettarne il computer con malware. In questo modo, può acquisire il controllo del computer della vittima e rubarne i dati.

Attacchi Denial of Service (DoS)

Un hacker che assume il controllo della sessione di un utente può sferrare un attacco DoS contro il server o il sito Web a cui è connesso, interrompendo il servizio o causandone l'arresto anomalo.


Accesso ad altri sistemi tramite SSO

SSO sta per "Single Sign-On". Gli autori degli attacchi possono ottenere accesso non autorizzato anche ad altri sistemi se è abilitato SSO, estendendo il potenziale rischio di un attacco session hijacking. Questo rischio è particolarmente grave per le organizzazioni, molte delle quali abilitano ora l'accesso SSO per i dipendenti. In definitiva, questo significa che anche interi sistemi altamente protetti con protocolli di autenticazione più efficaci e cookie di sessione meno prevedibili, come quelli che contengono informazioni finanziarie o sui clienti, sono tanto protetti quanto lo è l'anello più debole al loro interno.

Esempi di attacchi session hijacking

Zoombombing
Durante la pandemia da Covid-19 il mondo ha fatto ricorso ad app per videoconferenze come Zoom. Tali app sono diventate un obiettivo frequente di attacchi session hijacking, tanto che questi hanno acquisito il soprannome di "zoombombing". La cronaca ha riportato notizie di attacchi session hijacking durante sessioni video private, in alcuni casi con uso di linguaggio volgare e offensivo e condivisione di immagini pornografiche. Come risposta, Zoom ha introdotto misure di tutela della privacy più rigorose per ridurre al minimo i rischi.

Slack
Nel 2019 un ricercatore su una piattaforma di bug bounty ha identificato in Slack una vulnerabilità che consentiva agli autori di attacchi di imporre agli utenti falsi reindirizzamenti di sessione per rubarne i cookie di sessione. In questo modo, gli autori degli attacchi ottenevano l'accesso a tutti i dati condivisi all'interno di Slack (la cui quantità, per molte organizzazioni, può essere notevole). Slack ha risposto rapidamente, correggendo la vulnerabilità entro 24 ore dalla segnalazione del ricercatore.

GitLab

Nel 2017 un ricercatore nel settore della sicurezza ha identificato una vulnerabilità in GitLab che rendeva i token di sessione degli utenti direttamente disponibili nell'URL. Ulteriori indagini hanno rivelato come GitLab usasse anche token di sessione persistenti senza scadenza, per cui ogni volta che l'autore di un attacco otteneva un token di sessione, poteva usarlo senza preoccuparsi della sua scadenza. Questa combinazione di esposizione aperta e token persistenti creava un rischio grave di session hijacking per gli utenti attraverso attacchi di forza bruta. GitLab ha corretto la vulnerabilità modificando il proprio modo di usare e archiviare i token.

Come prevenire il session hijacking

Usa questi suggerimenti per prevenire il session hijacking e migliorare la tua sicurezza online:

Evita reti Wi-Fi pubbliche
Evita di effettuare transazioni importanti come operazioni bancarie, acquisti online o accesso ad account e-mail o di social media su reti Wi-Fi pubbliche. Un cybercriminale nella rete potrebbe usare lo sniffing di pacchetti per tentare di acquisire i cookie di sessione e altre informazioni.

Usa una VPN
Se devi accedere a una rete Wi-Fi pubblica, usa una Virtual Private Network (VPN) per ottenere la massima sicurezza e proteggere le sessioni da attacchi session hijacking. Una VPN maschera l'indirizzo IP e mantiene private le attività online facendole passare tutte attraverso un tunnel privato appositamente creato. Una VPN cripta i dati inviati e ricevuti.

Guardati dal phishing e da altre truffe online
Evita di fare clic su qualsiasi collegamento all'interno di un'e-mail se non hai la certezza che provenga da un mittente legittimo. Gli autori di attacchi session hijacking possono inviarti un'e-mail contenente un collegamento su cui fare clic. Il collegamento può installare malware sul dispositivo o reindirizzarti a una pagina di accesso a un sito tramite un ID sessione preparato dall'autore dell'attacco.

Informati sulla sicurezza del sito
Banche, provider di servizi e-mail, rivenditori online e siti di social media attendibili implementano misure di sicurezza per evitare il session hijacking. Preferisci i siti Web il cui URL inizia con HTTPS, dove la S significa "sicuro". L'uso di negozi online o altri provider ambigui privi di solide misure di sicurezza può esporti a un attacco session hijacking.

Usa un software anti-virus 
Installa un software anti-virus attendibile in grado di rilevare facilmente i virus e proteggerti da qualsiasi tipo di malware, incluso quello usato dagli autori di attacchi session hijacking. Mantieni i sistemi aggiornati configurando aggiornamenti automatici su tutti i dispositivi.

Prodotti correlati:

Articoli successivi:

Che cos'è il session hijacking e come funziona?

L'autore di un attacco session hijacking assume il controllo della sessione Internet per ottenere accesso non autorizzato a dati o risorse. Scopri di più.
Kaspersky logo

Articoli correlati: