Scoperta vulnerabilità nei client VPN
La notizia è di qualche giorno fa: i ricercatori di cyber security dell’Università del New Mexico hanno scoperto una vulnerabilità legata ai client VPN, nello specifico WireGuard, OpenVPN e IKEv2/IPSec.
Il bug, che è stato tracciato come CVE 2019-14899, è stato riprodotto con successo su diverse distribuzioni Linux, su MacOS, iOS e Android.
La vulnerabilità nelle VPN: come funziona
Il bug permette di determinare se un connesso utente sta utilizzando la VPN, su quali siti sta navigando e quali numeri di sequenza e ACK sta usando: questo garantirebbe allo sniffer di iniettare dei dati nello stream TCP della vittima. A questo punto l’attaccante sarebbe in grado di effettuare session hijacking sulle connessioni attive del tunnel VPN.
Per riprodurre l’attacco servono quattro componenti:
- il device della vittima, connesso ad un Access Point;
- un Access Point controllato dall’attaccante;
- un server VPN non controllato dall’attaccante;
- un Web Server con indirizzo IP pubblico.
Dopo che la vittima si è connessa all’Access Point e collegata al provider VPN, l’attaccante è in grado di determinare l’IP virtuale dell’utente inviando pacchetti SYN-ACK. Se il pacchetto è inviato all’IP corretto, la macchina della vittima risponde con un RST; al contrario, se il pacchetto viene inviato ad un IP sbagliato, l’attaccante non riceve alcuna risposta.
Per individuare se esiste una connessione attiva verso un sito web i passi sono simili. Vengono inviati pacchetti SYN o SYN-ACK dall’IP del sito web verso quello virtuale della vittima: ai pacchetti corretti la vittima risponderà con non più di 2 ACK al secondo, mentre ai pacchetti errati risponderà con un RST ciascuno.
A questo punto c’è la fase di creazione e iniezione di pacchetti falsi da parte dell’attaccante nella connessione della vittima. Per fare ciò è necessario individuare i successivi sequence number e ACK number necessari.
La situazione attuale
I ricercatori che hanno individuato la vulnerabilità hanno indicato alcune possibili mitigazioni lato server. Tra queste troviamo:
- dimensione e durata dei pacchetti criptate;
- reverse path filtering: di default il router effettua il routing di qualsiasi pacchetto, anche di quelli non appartenenti alla propria rete. Utilizzando questo metodo, invece, tutti i pacchetti di risposta con un’interfaccia diversa da quella del pacchetto arrivato verrebbero ignorati;
- filtrare i bogon, ovvero gli IP fake.
Al momento, però, non è stata rilasciata nessuna patch.
Come fanno sapere gli stessi ricercatori, i test stanno procedendo e la lista potrebbe non essere esaustiva.