Scoperta vulnerabilità nei client VPN

Vulnerabilità VPN. Credits: threatpost.com

Vulnerabilità VPN. Credits: threatpost.com

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 WireGuardOpenVPN 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.

Credits: secpod.com
Credits: secpod.com

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.

Lista delle distribuzioni Linux testate dai ricercatori. Credits: cert-pa.it
Lista delle distribuzioni Linux testate dai ricercatori. Credits: cert-pa.it

Come fanno sapere gli stessi ricercatori, i test stanno procedendo e la lista potrebbe non essere esaustiva.