Vulnerabilità nel protocollo RADIUS che consente la falsificazione della risposta durante l'autenticazione

Un gruppo di ricercatori di diverse università americane e delle aziende Cloudflare e Microsoft ha sviluppato una nuova tecnica di attacco al protocollo RADIUS, utilizzato dagli operatori di telecomunicazioni, dai servizi cloud e dai provider VPN per l'autenticazione, l'autorizzazione e il monitoraggio degli utenti. L'attacco, denominato Blast-RADIUS, consente di falsificare la risposta di un server RADIUS durante il processo di autenticazione e di stabilire una connessione per l'utente senza conoscere la password di accesso.

Per sfruttare la vulnerabilità (CVE-2024-3596), l'attaccante deve avere la possibilità di intercettare il traffico di transito e condurre un attacco MITM completo, che consente di leggere, intercettare, bloccare e modificare i pacchetti UDP di transito in entrata e in uscita, inviati dai punti di accesso per richiedere l'autenticazione dei clienti (Access-Request) e restituiti dal server RADIUS con la conferma o il rifiuto dell'operazione. Intercettando la richiesta di autenticazione, l'attaccante può inviare una risposta falsa, indicando in questa risposta un diverso tipo di risultato (ad esempio, Access-Accept invece di Access-Reject). L'attaccante potrebbe anche potenzialmente intercettare la risposta Access-Challenge, utilizzata nell'autenticazione a due fattori, e sostituirla con una risposta Access-Accept per eludere la fase di verifica aggiuntiva.

Vulnerabilità nel protocollo RADIUS che consente la falsificazione della risposta durante l'autenticazione

L'attacco si basa sul fatto che il protocollo RADIUS utilizza come trasporto UDP e verifica l'integrità dei messaggi trasmessi tramite l'algoritmo MD5. Per la verifica dei messaggi trasmessi tra server l'accesso e il server RADIUS, viene utilizzata una chiave segreta, conosciuta dal punto di accesso e dal server RADIUS, ma ignota all'attaccante. In risposta alla richiesta di autenticazione, il server RADIUS genera un hash MD5, tramite il quale il server di accesso può confermare che il messaggio è stato inviato da un server autorizzato. L'hash MD5 comprende il valore casuale inviato nella richiesta, l'identificatore della richiesta, gli attributi restituiti e la chiave segreta.

Un attaccante durante un attacco MITM può intercettare l'identificatore e il valore casuale inviati nella richiesta, oltre a poter prevedere il codice dell'operazione, la dimensione e gli attributi. L'obiettivo è formare un hash di verifica corretto che corrisponda al risultato modificato dell'operazione e superi il controllo tramite l'hashing utilizzando una chiave segreta. L'algoritmo MD5 non è resistente agli attacchi di collisione, permettendo all'attaccante di manipolare un padding non significativo per ottenere una combinazione di dati con i parametri desiderati, il cui hash MD5 coinciderà con l'hash MD5 della risposta originale, e inviare una risposta falsa con un codice di autenticazione riuscita (Access-Accept) al posto di un messaggio di errore.

Vulnerabilità nel protocollo RADIUS che consente la falsificazione della risposta durante l'autenticazione

Poiché durante l'elaborazione dei pacchetti di richiesta di accesso (Access-Request) non viene applicata l'autenticazione e il controllo dell'integrità, durante l'attacco l'attaccante può inserire un attributo aggiuntivo "Proxy-State" nella richiesta originale da server accesso, che sarà riflesso dal server RADIUS nella sua risposta. Il contenuto di "Proxy-State" è scelto in modo tale che il valore dell'hash MD5 di verifica nelle risposte reale e falsa sia identico. Durante un esperimento, la ricerca di collisione in MD5 per eseguire l'attacco ha richiesto da 3 a 6 minuti, che è superiore al timeout tipico di 30-60 secondi, ma il tempo di ricerca della collisione può essere ridotto utilizzando hardware più potente, GPU e parallelizzando le operazioni.

Come misura principale per proteggere da questa vulnerabilità, si propone di utilizzare il protocollo EAP (Extensible Authentication Protocol, RFC 3579), in cui per la verifica aggiuntiva dei messaggi si utilizza l'attributo Message-Authenticator. Per proteggere dagli attacchi, è anche possibile utilizzare le estensioni del protocollo (RadSec), che includono la trasmissione di messaggi RADIUS attraverso canali crittografati basati su TLS o DTLS. Inoltre, è possibile ridurre al minimo i valori dei timeout per la ricezione delle risposte e bloccare le risposte con l'attributo Proxy-State. La trasmissione dei messaggi RADIUS su TCP rende l'attacco più difficile, ma non ne esclude la possibilità.

Il codice per eseguire l'attacco non è ancora stato reso pubblico, ma sono state fornite al progetto hashclash modifiche che migliorano la ricerca di collisioni in MD5 tenendo conto della specificità dell'attacco. Nel server RADIUS FreeRADIUS, il problema è stato risolto nelle versioni 3.0.27 e 3.2.5 mediante l'abilitazione dell'obbligatoria applicazione dell'attributo Message-Authenticator e l'aggiunta di una configurazione per limitare l'elaborazione dei pacchetti con l'attributo Proxy-State.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster