Che cos'è il dirottamento della sessione? Come garantire la privacy della sessione
Pubblicato: 2021-07-13Possono succedere molte cose tra un login e un logout.
Gli aggressori cercano sessioni in cui possono ottenere l'accesso non autorizzato ai tuoi account e sfruttare i tuoi dati. Dovresti assicurarti di autenticare i tuoi dati di accesso in un ambiente sicuro e proteggerti dagli attacchi di dirottamento della sessione.
Puoi usare firewall per applicazioni web per rilevare anomalie nel traffico in entrata e bloccare il traffico potenzialmente dannoso non appena arriva. Ma per correggere solide difese di sicurezza, è fondamentale comprendere in dettaglio il dirottamento di sessione, i suoi tipi e gli strumenti che gli aggressori potrebbero utilizzare per penetrare negli account utente.
Che cos'è il dirottamento della sessione?
Il dirottamento della sessione , noto anche come dirottamento dei cookie, è un processo per assumere il controllo della sessione di un utente ottenendo o generando un ID sessione mentre la sessione è ancora in corso.
Un utente malintenzionato potrebbe utilizzare il cross-site scripting (XSS), la forza bruta, il reverse engineering o vari altri metodi per mettere le mani sui cookie di sessione e ottenere l'accesso non autorizzato agli account utente.
Una sessione inizia quando accedi a un servizio come un'applicazione Web e termina quando ti disconnetti. Hypertext Transfer Protocol (HTTP) è un protocollo stateless, il che significa che trasporta ogni richiesta in modo indipendente senza fare riferimento a nessuna richiesta precedente, richiedendo all'utente di autenticarsi ogni volta che visualizza una pagina web. Per evitare di richiedere a un utente di accedere ogni volta, il server assegna un ID di sessione per fornire un'esperienza Web senza interruzioni dopo l'autenticazione.
Gli aggressori cercano di rubare l'ID di sessione del bersaglio o di indurli a fare clic su un collegamento dannoso che li porta a una sessione prefabbricata per un attacco di dirottamento della sessione. Una volta che l'utente è stato autenticato sul server, gli attori delle minacce possono dirottare la sessione e indurre il server a considerare valida la propria sessione.
Quando un utente malintenzionato prende di mira un cookie di sessione, è correlato al dirottamento della sessione dell'applicazione Web, non al dirottamento della sessione TCP (Transmission Control Protocol). TCP è un protocollo di trasporto utilizzato sopra l'IP per garantire una trasmissione affidabile di pacchetti. L'applicazione Web restituisce un cookie di sessione dopo l'autenticazione riuscita che un utente malintenzionato sfrutta per dirottare una sessione. Non ha nulla a che fare con la connessione TCP tra il dispositivo dell'utente e il server.
Metodi di dirottamento della sessione
Gli aggressori di solito hanno alcuni metodi di scelta durante l'esecuzione di un dirottamento della sessione. Possono usarli singolarmente o in combinazione per rilevare gli account utente e svolgere attività dannose.
Cross Site Scripting
In un attacco di cross-site scripting (XSS) , un hacker malintenzionato inganna il computer del bersaglio facendogli eseguire un codice mascherato da codice attendibile appartenente a un server. Consente a un utente malintenzionato di ottenere una copia del cookie per eseguire le proprie azioni dannose. In genere, le pagine Web sono incorporate con JavaScript. Senza adeguate tutele e strumenti di sicurezza delle applicazioni, rivela le informazioni riservate degli utenti se gli script vengono eseguiti.
Se il server non imposta l'attributo HTTPOnly nei cookie di sessione, gli script possono esporli agli aggressori.
Iniezione di malware
Alcuni malware o i trojan sono programmati per rubare i cookie del browser ed eseguire azioni dannose all'insaputa dell'utente. Ad esempio, quando un utente visita un sito Web dannoso o fa clic su un collegamento non richiesto, il malware esegue la scansione del traffico di rete, raccoglie i cookie di sessione e li invia a malintenzionati. Gli aggressori con accesso alla memoria locale possono rubare le chiavi di sessione dalla memoria locale temporanea del browser (cookie jar) oppure possono ottenere il contenuto di file o memoria del server o del computer dell'utente.
Forza bruta
Gli aggressori possono eseguire un attacco di forza bruta per indovinare la chiave di sessione di un utente. Quando un'applicazione utilizza una chiave di sessione sequenziale o prevedibile, rende la sessione vulnerabile a un dirottamento. Questo era un metodo preferito in passato, ma con le applicazioni moderne, gli ID di sessione sono lunghi e generati casualmente, offrendo una sostanziale resistenza agli attacchi di forza bruta.
Sollevamento laterale della sessione
In session side jacking , un utente malintenzionato sfrutta lo sniffing dei pacchetti per leggere il traffico di rete e rubare il cookie di sessione. In genere, i siti Web utilizzano la crittografia Secure Sockets Layer/Transport Layer Security (SSL/TLS) nelle loro pagine di autenticazione. Tuttavia, alcuni non lo utilizzano a livello di sito dopo l'autenticazione, consentendo agli aggressori di intercettare i dati scambiati tra il server e le pagine Web.
Una volta che gli aggressori mettono le mani sui cookie di sessione, possono dirottare le sessioni degli utenti per condurre operazioni dannose. Ad esempio, un malintenzionato che prende di mira un utente connesso a un WiFi non protetto può facilmente leggere i dati o il traffico condiviso tra altri nodi e punti di accesso.
Fissazione della sessione
Gli aggressori a volte possono creare una sessione mascherata e indurre un utente ad autenticarsi su un server vulnerabile. Ad esempio, un attore di minacce potrebbe utilizzare Ingegneria sociale (phishing) o un metodo simile per convincere un utente a fare clic su un collegamento che lo porta a una sessione predisposta con un cookie di sessione noto. Una volta che l'utente si è autenticato, l'attaccante può utilizzare la chiave di sessione nota per dirottare la sessione dell'utente.
Un utente malintenzionato può anche indurre gli utenti a completare un modulo di accesso prefabbricato che include un ID sessione nascosto e fisso.
Livelli di attacchi di dirottamento della sessione
Esistono due livelli di attacchi di dirottamento della sessione. Questi attacchi possono essere correlati in quanto un attacco riuscito a un livello di rete fornirà all'attaccante informazioni per sfruttare un utente effettivo a livello di applicazione.
Dirottamento del livello di trasporto
Il dirottamento del livello di trasporto si verifica nelle connessioni TCP in cui un utente malintenzionato intercetta gli scambi di dati tra un server Web e un utente, escludendo il canale di comunicazione impostato tra di loro. Quindi, i malintenzionati inviano pacchetti di dati dannosi travestiti da legittimi sia al client che al server, prendendo il controllo della sessione dell'utente.
Un metodo comune di dirottamento del livello di trasporto è lo spoofing IP , in cui un utente malintenzionato utilizza un indirizzo IP falsificato mascherato da attendibile per comunicare con i computer sulla rete. Usano pacchetti IP instradati alla sorgente per intercettare la comunicazione attiva tra due nodi. Lo spoofing IP sfrutta indebitamente l'autenticazione una tantum all'inizio della sessione TCP.
Dirottamento del livello dell'applicazione
Nel dirottamento del livello dell'applicazione, un utente malintenzionato ruba l'ID di sessione di un utente dopo che un utente si è autenticato nella propria applicazione. Gli attacchi man-in-the-middle sono esempi tipici di dirottamento della sessione a livello di applicazione, in cui il dirottatore intercetta il canale di comunicazione tra il client e il server.
Anche gli attacchi proxy rientrano nel dirottamento del livello dell'applicazione. Un utente malintenzionato indirizza il traffico a un server proxy con un ID sessione predefinito per intercettare la comunicazione durante questi attacchi.
3 Tipi di dirottamento della sessione
Il dirottamento della sessione implica indovinare o intercettare i cookie di sessione in una sessione esistente o ingannare un utente per autenticarsi in una sessione prefabbricata. Esistono tre tipi di attacchi di dirottamento della sessione.
1. Attivo
Nel dirottamento della sessione attiva , un utente malintenzionato rileva una connessione attiva in una rete. Possono disattivare l'audio di tutti i dispositivi e assumere il controllo del canale di comunicazione tra il client e il server. Quindi, lasciano andare l'affiliazione tra il server e il dispositivo dell'utente.
Esistono alcuni modi in cui un utente malintenzionato può interrompere la comunicazione tra un client e un server. In genere, gli intrusi inviano traffico massiccio per attaccare una sessione valida e causare un attacco DoS (Denial of Service) .
2. Passivo
Il dirottamento di sessione passivo è simile a quello attivo, tranne per il fatto che un utente malintenzionato controlla la comunicazione tra un client e un server. L'attaccante non blocca l'utente effettivo fuori dalla sessione, ma supervisiona lo scambio di comunicazioni in corso.
Il motivo principale degli attacchi passivi è rubare le informazioni scambiate e utilizzarle per scopi dannosi.
3. Ibrido
Gli attacchi di dirottamento della sessione ibrida sono una combinazione di attacchi attivi e passivi. In un attacco ibrido, gli aggressori monitorano il traffico di rete finché non trovano un problema, quindi prendono il controllo della sessione e iniziano a impersonare utenti legittimi.

Gli attacchi ibridi dipendono dallo spoofing e sono ulteriormente classificati nei seguenti tipi:
- Un attacco di blind spoofing coinvolge gli aggressori che prendono di mira una vittima senza interrompere una sessione. Catturano i pacchetti di dati scambiati tra un server e un utente e cercano di decifrare le sequenze di pacchetti TCP.
- Un attacco di spoofing non cieco include il monitoraggio del traffico tra un server e un utente per prevedere il patto successivo per prevedere il suo intervallo di sequenza TCP. Un utente malintenzionato prende il controllo della sessione a livello di applicazione e crea una nuova sessione, utilizzando un token di sessione che potrebbe essere rubato o prevedibile.
Session hijacking vs. session spoofing vs. session replay
La principale differenza tra il dirottamento della sessione e lo spoofing della sessione è la tempistica dell'attacco.
Gli attacchi di dirottamento della sessione vengono condotti una volta che gli utenti si autenticano nell'applicazione. L'attacco può causare ritardi o comportamenti non comuni nelle applicazioni. È perché un utente malintenzionato sfrutta i tuoi dati mentre sei ancora connesso. Se un'applicazione si arresta frequentemente in modo anomalo, potrebbe suggerire un attacco di dirottamento della sessione.
Nello spoofing di sessione , le vittime non sono a conoscenza dell'attacco. Gli aggressori potrebbero utilizzare ID di sessione rubati o contraffatti e impersonare utenti autentici senza fare affidamento su un utente per eseguire l'autenticazione.
Un replay di sessione è un po' diverso.
In session replay , gli aggressori hanno già cookie di sessione (raccolti dal dirottamento della sessione) e possono usarli come vogliono. Potrebbero indurre una vittima a ripresentare una richiesta precedentemente valida, come l'acquisto di più quantità di articoli per la quale avevano originariamente richiesto un'unità.
Strumenti di dirottamento della sessione
Diversi strumenti possono aiutare un utente malintenzionato a condurre un attacco di dirottamento della sessione. Puoi usarli dentro test di penetrazione e controlla se i tuoi sistemi e le tue applicazioni sono a prova di attacco.
Ecco alcuni dei popolari strumenti di dirottamento della sessione utilizzati per eseguire un attacco.
* Questi strumenti devono essere utilizzati solo per scopi etici per testare e rafforzare i sistemi contro il dirottamento della sessione.
Criceto e furetto
Hamster agisce come un server proxy che manipola i dati raccolti da Ferret, che cattura i cookie di sessione che passano la rete.
Ecco un esempio di utilizzo del criceto proposto da Strumenti di Kali:
root@kali:~# criceto
--- Strumento di sollevamento laterale HAMPSTER 2.0 ---
Imposta il browser per utilizzare il proxy http://127.0.0.1:1234
DEBUG: set_ports_option(1234)
DEBUG: mg_open_listening_port(1234)
Proxy: in ascolto su 127.0.0.1:1234
thread iniziale
T-Sight
T-Sight è stato inizialmente sviluppato come strumento di monitoraggio della rete da eseguire sulla piattaforma Windows. Tuttavia, durante il monitoraggio di una rete, è possibile dirottare una sessione poiché tutte le comunicazioni attraverso la rete vengono copiate in tempo reale, fornendo un output di trasmissione dati preciso. Per questo motivo, Engrade, lo sviluppatore di T-Sight, ora fornisce licenze software solo a indirizzi IP predeterminati.
Travolgente
Juggernaut è uno strumento di sniffing di rete che può essere utilizzato in modo dannoso per condurre un attacco di dirottamento della sessione. È possibile configurare Juggernaut per guardare tutto il traffico di rete in una rete locale (LAN) o ascoltare un particolare token di sessione. Può essere impostato per registrare il traffico di rete dopo che una vittima ha effettuato un tentativo di accesso.
Juggernaut è diverso dai normali sniffer di rete che registrano tutto il traffico di rete in enormi file di registro. Juggernaut mantiene un database di connessione che consente a un utente malintenzionato di controllare tutte le connessioni basate su TCP e persino dirottare una sessione. Lo strumento di dirottamento della sessione fornisce anche una funzione integrata di assemblaggio dei pacchetti. Gli aggressori utilizzano questa funzionalità per frammentare i pacchetti per eludere i sistemi di rilevamento delle intrusioni e i firewall.
Ecco un esempio dell'utilizzo di Juggernaut quando lo esegui tramite la riga di comando di Linux:
Juggernaut ?) Aiuto 0) Informazioni sul programma 1) Database di connessione 2) Spia di una connessione 3) Ripristina una connessione 4) Demone di ripristino automatico della connessione 5) Dirottamento della connessione Simplex 6) Dirottamento della connessione interattiva 7) Modulo di assemblaggio dei pacchetti 8) Numero dell'opzione Souper sekret otto 9) Dimettersi
- Il database di connessione mostra una connessione attiva.
- Spiare una connessione consente di monitorare il traffico di rete attraverso canali di comunicazione aperti e fornisce un'opzione per archiviare i registri.
- Reimposta una connessione chiude una sessione inviando un pacchetto RST all'origine.
- Il demone di ripristino automatico della connessione consente di configurare un host basato sull'indirizzo IP e sul pacchetto RST all'origine ogni volta che l'host tenta di stabilire una sessione.
- Il dirottamento della connessione Simplex consente di immettere un singolo comando nella destinazione. Gli aggressori lo usano per impedire il rilevamento.
- Il dirottamento interattivo della connessione ti consente di condurre un dirottamento completo della sessione e creare una grande tempesta di ACK.
- Il modulo di assemblaggio dei pacchetti ti consente di creare il tuo pacchetto.
- L'opzione Souper Sekret numero otto non ha funzionalità.
- Step down consente di uscire dal programma.
Questi erano alcuni degli strumenti utilizzati dagli aggressori per condurre attacchi di dirottamento della sessione.
È necessario rafforzare le reti e i sistemi contro strumenti simili come Hunt, TTY-Watcher, IP-Watcher, 1164, Wireshark, SSHMITM, Hjksuite, C2MYAZZ, che gli aggressori utilizzano per sfruttare le sessioni utente.
Come prevenire il dirottamento della sessione
Il dirottamento delle sessioni può avere conseguenze disastrose per le organizzazioni, comprese le perdite finanziarie e reputazionali subite dopo anni di costruzione di una buona reputazione e fornitura di un servizio fedele nel settore.
Le aziende devono impostare misure di sicurezza strategiche per evitare di diventare il bersaglio di attacchi di dirottamento della sessione. Queste misure includono:
- Crittografia di tutta la trasmissione di dati su una pagina web
- Implementazione della certificazione HTTPS (Hypertext Transfer Protocol Secure) sulle pagine web
- Aggiornare e correggere regolarmente i browser
- Adozione di strumenti di sicurezza informatica come software di protezione DDoS e tecnologia dell'inganno
- Effettuare l'accesso e la disconnessione con attenzione da ogni sessione
- Incorpora framework web invece di creare un sistema di gestione delle sessioni interno
- Rigenera la chiave di sessione dopo l'autenticazione per impedire agli hacker di sfruttare l'ID di sessione generato durante l'accesso
- Rafforza la verifica dell'identità includendo controlli aggiuntivi come la verifica dell'indirizzo IP abituale di un utente o delle tendenze di utilizzo dell'applicazione
- Utilizza solo reti wireless sicure ed evita di operare su qualsiasi Wi-Fi pubblico
- Maschera il tuo indirizzo IP utilizzando un software di rete privata virtuale (VPN) e mantieni le tue sessioni protette
Avere HTTPS a livello di sito è probabilmente il meccanismo preventivo più importante. Se sei preoccupato per problemi di prestazioni, puoi implementare SSL nelle pagine di accesso del sito Web e in altre aree sensibili. Un'altra importante misura preventiva sarebbe crittografare il valore di sessione memorizzato in un cookie di sessione.
Proteggi le tue sessioni
Il dirottamento della sessione può essere problematico. Sii proattivo e imposta un meccanismo di difesa adeguato per proteggerti dagli attacchi di dirottamento della sessione e per proteggere il tuo account e i tuoi dati.
Con gli hacker che sviluppano costantemente nuovi metodi per violare i perimetri di difesa di un'organizzazione, potrebbe diventare ancora più complicato garantire la sicurezza al 100%.
Scopri di più sulla risposta agli incidenti e su come puoi gestire un incidente informatico quando un utente malintenzionato ottiene l'accesso al tuo account o ai tuoi dati.