Che cos'è il dirottamento della sessione?

Pubblicato: 2023-04-27

Il dirottamento della sessione è un tipo di attacco informatico che i proprietari di siti WordPress devono conoscere. Conosciuto anche come dirottamento della sessione TCP, il dirottamento della sessione fa sembrare gli aggressori utenti correttamente registrati. L'attaccante assume il controllo di una sessione utente ottenendo il proprio ID di sessione all'insaputa o all'autorizzazione dell'utente valido. Dopo che un utente malintenzionato ha rubato l'ID di sessione di un utente, può mascherarsi come l'utente preso di mira. L'attaccante sarà in grado di fare tutto ciò che l'utente autorizzato può fare dopo che l'utente autorizzato ha effettuato l'accesso allo stesso sistema.

Una delle cose peggiori che gli hacker possono fare con una sessione dirottata è ottenere l'accesso a un'applicazione Web o ai controlli del server senza autenticazione. Quando un utente malintenzionato dirotta la sessione di un utente, non è necessario autenticarsi finché la sessione è attiva. L'applicazione che ha generato la sessione pensa di essere l'utente autenticato di cui ha violato la sessione.

In altre parole, l'hacker godrà dello stesso accesso dell'utente che ha compromesso. Poiché l'utente legittimo ha già autenticato la propria sessione prima che si verificasse l'attacco, un dirottamento riuscito consente a un utente malintenzionato di aggirare completamente l'autenticazione.

In questa guida, approfondiremo i dettagli del dirottamento della sessione. Ti mostreremo esattamente cosa devi fare per evitare che accada al tuo sito WordPress.

Cos'è esattamente una sessione?

Una sessione è semplicemente una serie di interazioni tra gli endpoint di comunicazione che si verificano durante una singola connessione HTTP.

L'Hypertext Transfer Protocol (HTTP) è fondamentale per il web. È ciò che ti consente di utilizzare collegamenti ipertestuali e caricare pagine web. HTTP è anche un protocollo a livello di applicazione per il passaggio di informazioni tra dispositivi su una rete.

Una caratteristica chiave di HTTP è che è "senza stato". Ciò significa che non salva alcun dato sui clienti (come te e il tuo browser) che aprono una sessione con un sito web. Ogni sessione è completamente nuova. HTTP non conserva i dati sugli utenti dalle loro sessioni precedenti.

Affrontare l'apolidia

Le applicazioni Web come WordPress devono tenere traccia dello stato tra più connessioni dello stesso utente e di utenti diversi. Deve identificare la sessione di ciascun utente, una volta effettuato l'accesso, potenzialmente su più di un dispositivo o browser.

Quando un utente accede a un'applicazione come WordPress, il server crea una sessione. La sessione manterrà lo "stato" della connessione per l'utente memorizzando parametri che sono univoci per loro. Le sessioni vengono mantenute attive sul server per l'intero periodo in cui un utente è connesso all'applicazione.

Una sessione termina quando un utente si disconnette dal sistema o dopo un periodo predefinito di inattività. Al termine di una sessione utente, l'applicazione dovrebbe eliminare i suoi dati dalla memoria del server.

Identificatori di sessione

Gli ID di sessione (o "chiavi" o "token") sono gli identificatori di sessione univoci. In genere, sono lunghe stringhe alfanumeriche casuali che il server e il client si scambiano. L'applicazione di autenticazione normalmente memorizza gli ID di sessione in URL, cookie o campi nascosti nelle pagine web.

Sebbene gli ID di sessione siano utili per mantenere lo stato in un sistema senza stato, presentano anche alcuni potenziali rischi per la sicurezza. Ad esempio, se comprendiamo gli algoritmi che generano gli ID di sessione per un'applicazione Web, possiamo generarli noi stessi. Inoltre, se l'applicazione Web non utilizza la crittografia SSL per crittografare HTTP come HTTPS, trasmetterà gli ID di sessione in chiaro. Su una rete pubblica, chiunque può intercettare connessioni non crittografate e rubare ID di sessione.

Come funziona esattamente il dirottamento della sessione in pratica?

Un attacco di dirottamento di sessione riuscito è estremamente furtivo. Di solito vengono eseguiti su reti molto trafficate con molte sessioni di comunicazione attive.

Alcune delle forme più comuni di dirottamento di sessione fanno uso di:

  • ID token di sessione prevedibili
  • Annusare la sessione
  • Sidejacking della sessione
  • Malware man-in-the-browser
  • Cross Site Scripting
  • Fissazione della sessione

Diamo un'occhiata a ciascuno di questi vettori di minaccia individualmente.

ID token di sessione prevedibili

Molti server Web utilizzano algoritmi personalizzati o modelli predefiniti per generare i propri ID di sessione. Maggiore è la prevedibilità complessiva di un token di sessione univoco, più debole è.

E più facile è prevedere per un hacker.

Annusare la sessione

Lo sniffing di sessione è uno dei metodi più semplici e di base utilizzati dagli hacker per il dirottamento di sessioni a livello di applicazione.

Un utente malintenzionato utilizzerà uno sniffer di pacchetti, come Wireshark, o un proxy come OWASP Zed per acquisire il traffico di rete. Se questo traffico contiene ID di sessione non crittografati per le connessioni tra client e un sito Web, gli ID possono essere rubati. Gli hacker possono utilizzare l'ID o il token valido per ottenere rapidamente l'accesso non autorizzato al sito e agli account degli utenti.

Session Sidejacking

Un utente malintenzionato può utilizzare lo sniffing dei pacchetti per intercettare i cookie di sessione per gli utenti mentre accedono a un sito. Se le pagine di accesso non sono crittografate o viene utilizzata una crittografia debole, un criminale informatico può facilmente dirottare le sessioni utente in questo modo.

L'uomo nel browser

In questo attacco, l'attaccante deve inizialmente infettare il computer o il browser di una vittima con malware.

Questo malware può modificare in modo invisibile le informazioni sulle transazioni del browser e creare transazioni all'insaputa dell'utente. Le richieste del browser danneggiato vengono avviate dal dispositivo fisico della vittima, quindi si presume che siano valide.

Cross Site Scripting

Un criminale informatico può sfruttare le vulnerabilità dell'applicazione o del server per inserire codice arbitrario nelle pagine Web di un sito. Ciò farà sì che i browser dei visitatori eseguano quel codice quando viene caricata una pagina compromessa.

Quando HTTP-only non è impostato nei cookie di sessione, è possibile rubare una chiave di sessione attraverso il codice iniettato. Ciò darebbe agli aggressori tutto ciò di cui hanno bisogno per dirottare una sessione utente.

Fissazione della sessione

Questo utilizza un ID di sessione valido che non è stato ancora autenticato. Utilizzando la fissazione della sessione, un utente malintenzionato tenterà di indurre un utente ad autenticarsi con questo particolare ID.

Una volta avvenuta l'autenticazione, un utente malintenzionato ha ora pieno accesso al computer della vittima.

La fissazione della sessione esplora una grande limitazione nel modo in cui l'applicazione web gestisce un ID di sessione.

Cosa ottiene un hacker dal dirottamento della sessione?

Quando un hacker dirotta una sessione, può fare tutto ciò che un utente legittimo è stato autorizzato a fare in quella sessione attiva.

Il dirottamento di sessione più efficace e dannoso potrebbe comportare:

  • Conti bancari compromessi
  • Acquisti online non autorizzati articoli online
  • Identifica il furto
  • Furto di dati dai sistemi aziendali interni

Non bene! Una sessione di dirottamento di sessione riuscita può causare molti danni.

Quali sono alcuni esempi di dirottamento della sessione?

Nell'autunno del 2012, due ricercatori di sicurezza di nome Juliano Rizzo e Thai Duong hanno annunciato CRIME, un attacco che sfrutta una fuga di informazioni all'interno del rapporto di compressione delle richieste TLS come canale laterale. Ciò ha consentito loro di decrittografare le richieste effettuate dal client al server.

A sua volta, questo ha permesso loro di prendere il cookie di accesso di un utente e dirottare la sessione, impersonandolo su destinazioni online di alto valore come siti di e-commerce e banche.

Questa dimostrazione ha mostrato come un hacker potrebbe eseguire questo tipo di attacco per recuperare le intestazioni di una richiesta HTTP.

CRIME funziona per decrittografare i cookie HTTPS impostati dai siti Web per ricordare gli utenti autenticati utilizzando la forza bruta. Il codice di attacco costringe il browser della vittima a inviare richieste HTTPS appositamente predisposte a un sito Web mirato e analizza la variazione della loro lunghezza dopo che sono state compresse per determinare il valore del cookie di sessione della vittima. Questo è possibile perché SSL/TLS utilizza un algoritmo di compressione chiamato DEFLATE, che elimina le stringhe duplicate, come abbiamo visto sopra.

Il codice di attacco non è in grado di leggere il cookie di sessione incluso nelle richieste a causa dei meccanismi di sicurezza del browser. Tuttavia, può controllare il percorso di ogni nuova richiesta e può inserirvi stringhe diverse nel tentativo di far corrispondere il valore del cookie.

I valori dei cookie di sessione possono essere molto lunghi. Sono costituiti da lettere maiuscole e minuscole e cifre.

Di conseguenza, il codice di attacco CRIME deve avviare un numero molto elevato di richieste per decrittografarle, il che può richiedere diversi minuti.

Prevenzione del dirottamento della sessione

È importante ricordare che gli aggressori possono rubare e riutilizzare gli ID di sessione (o altri valori dei cookie sensibili) quando vengono trasmessi o archiviati in modo non sicuro. Sebbene la protezione al 100% non sia una garanzia, l'utilizzo della crittografia è una difesa importante.

Quando gli utenti si autenticano, i cookie SSL e sicuri devono essere obbligatori. E quando gli utenti autenticati visitano più di una pagina protetta, devono essere costretti a utilizzare HTTPS.

Oltre a ciò, i proprietari di siti WordPress devono utilizzare il plug-in di sicurezza WordPress iThemes Security Pro per la protezione dal dirottamento della sessione. La funzione Dispositivi attendibili integrata in iThemes Security Pro funzionerà 24 ore al giorno, sette giorni alla settimana, per proteggere il tuo sito da questo pericoloso attacco. Scopri come configurarlo per gli utenti del tuo sito.

Comprensione e prevenzione del dirottamento della sessione

Con le informazioni in questa guida, sai tutto ciò di cui hai bisogno per proteggere il tuo sito WordPress dal dirottamento della sessione:

  1. Assicurati che il tuo sito sia completamente crittografato utilizzando SSL e costringerà gli utenti a rimanere in HTTPS.
  2. Scarica e installa il plug-in iThemes Security Pro.

Seguendo questi semplici passaggi, proteggerai il tuo sito dal dirottamento della sessione.