Mathy Vanhoef, autore dell'attacco KRACK alle reti wireless con WPA2, ed Eyal Ronen, coautore di alcuni attacchi a TLS, hanno rivelato informazioni su sei vulnerabilità (CVE-2019-9494 — CVE-2019-9499) nella tecnologia di protezione delle reti wireless WPA3, che consentono di ricreare la password di accesso e ottenere accesso alla rete wireless senza conoscere la password. Le vulnerabilità sono raggruppate sotto il nome in codice Dragonblood e consentono di compromettere il metodo di assegnazione delle connessioni Dragonfly, che fornisce protezione contro il brute forcing in modalità offline. Oltre a WPA3, il metodo Dragonfly è anche utilizzato per proteggere contro gli attacchi di dizionario nel protocollo EAP-pwd, utilizzato in Android, nei server RADIUS e in hostapd/wpa_supplicant.
Durante la ricerca sono emersi due principali tipi di problemi architettonici in WPA3. Entrambi i tipi di problemi possono, alla fine, essere utilizzati per ricreare la password di accesso. Il primo tipo consente di effettuare un rollback a metodi crittografici non sicuri (downgrade attack): i mezzi per garantire la compatibilità con WPA2 (modalità transitoria, che consente l'uso di WPA2 e WPA3) permettono all'attaccante di costringere il client a eseguire l'assegnazione delle connessioni WPA2 a quattro fasi, consentendo poi di utilizzare attacchi classici di brute forcing applicabili a WPA2. Inoltre, è stata identificata la possibilità di un attacco di downgrade diretto sul metodo di assegnazione delle connessioni Dragonfly, che consente di tornare a tipi di curve ellittiche meno sicure.
Il secondo tipo di problemi porta a perdite su canali esterni di informazioni sulle caratteristiche della password ed è basato su difetti nel metodo di codifica della password in Dragonfly, che consentono, attraverso dati indiretti, come le variazioni nei tempi di esecuzione delle operazioni, di ricreare la password originale. L'algoritmo di hash-to-curve utilizzato in Dragonfly si è dimostrato vulnerabile ad attacchi tramite tracciamento delle informazioni residue nella cache del processore (cache attack), mentre l'algoritmo hash-to-group è vulnerabile ad attacchi tramite misurazione dei tempi di esecuzione delle operazioni (timing attack).
Per eseguire attacchi tramite analisi della cache, l'attaccante deve avere la possibilità di eseguire codice non privilegiato sul sistema dell'utente che si connette alla rete wireless. Entrambi i metodi consentono di ottenere informazioni necessarie per verificare la correttezza della selezione delle parti della password durante il processo di attacco. L'efficacia dell'attacco è piuttosto elevata e permette di trovare una password di 8 caratteri, che include simboli in minuscolo, intercettando solo 40 sessioni di handshake e impiegando risorse equivalenti all'affitto di capacità di Amazon EC2 per 125 dollari.
Sulla base delle vulnerabilità identificate, sono stati proposti diversi scenari di attacco:
- Attacco di downgrade a WPA2 con possibilità di attacco a dizionario. In condizioni in cui sia il client che il punto di accesso supportano sia WPA3 che WPA2, l'attaccante può avviare un proprio punto di accesso fasullo con lo stesso nome della rete, che supporta solo WPA2. In tale situazione, il client utilizzerà il metodo di handshake tipico di WPA2, nel corso del quale verrà stabilito che un simile downgrade non è ammissibile, ma ciò avverrà in una fase in cui i messaggi di negoziazione del canale sono già stati inviati e tutte le informazioni necessarie per un attacco a dizionario sono già trapelate. Un metodo simile è applicabile anche per il downgrade a versioni problematiche delle curve ellittiche in SAE.
Inoltre, è stato scoperto che il demone iwd, sviluppato da Intel come alternativa a wpa_supplicant, e lo stack wireless del Samsung Galaxy S10 sono suscettibili ad attacchi di downgrade anche in reti che utilizzano solo WPA3: se questi dispositivi si erano precedentemente connessi a una rete WPA3, tenteranno di connettersi a una rete WPA2 fasulla con lo stesso nome.
- Attacco tramite canali laterali con estrazione di informazioni dalla cache del processore. L'algoritmo di codifica delle password in Dragonfly contiene diramazioni condizionali e un attaccante, avendo la possibilità di eseguire codice nel sistema dell'utente della rete wireless, può, basandosi sull'analisi del comportamento della cache, determinare quale blocco della struttura if-then-else è stato scelto. Le informazioni ottenute possono essere utilizzate per eseguire un attacco di forza bruta progressivo, utilizzando metodi simili a quelli delle attacchi dizionario offline per la selezione delle password WPA2. Per la protezione, si suggerisce di passare all'uso di operazioni con tempo di esecuzione costante, indipendentemente dalla natura dei dati elaborati;
- Attacco tramite canali laterali con valutazione del tempo di esecuzione delle operazioni. Nel codice Dragonfly, durante la codifica delle password vengono utilizzati diversi gruppi moltiplicativi (MODP) e un numero variabile di iterazioni, il cui numero dipende dalla password utilizzata e dall'indirizzo MAC del punto di accesso o del client. Un attaccante remoto può determinare quante iterazioni sono state eseguite durante la codifica della password e utilizzarle come indizio per un attacco di forza bruta progressivo.
- Chiamata di negazione del servizio. Un attaccante può bloccare il funzionamento di determinate funzioni del punto di accesso a causa dell'esaurimento delle risorse disponibili inviando un gran numero di richieste di negoziazione del canale di comunicazione. Per eludere la protezione contro il flooding prevista in WPA3 è sufficiente inviare richieste da indirizzi MAC fittizi e non ripetibili.
- Rollback a gruppi crittografici meno sicuri utilizzati nel processo di negoziazione delle connessioni in WPA3. Ad esempio, se un client supporta curve elliptiche P-521 e P-256, e utilizza P-521 come opzione prioritaria, l'attaccante, indipendentemente dal supporto
di P-521 sul lato del punto di accesso, può costringere il client a utilizzare P-256. L'attacco viene effettuato filtrando alcuni messaggi durante il processo di negoziazione della connessione e inviando messaggi falsi con informazioni sull'assenza di supporto per determinati tipi di curve elliptiche.
Per verificare la presenza di vulnerabilità nei dispositivi, sono stati preparati diversi script con esempi di attacchi:
- Dragonslayer - implementazione di attacchi su EAP-pwd;
- Dragondrain — un utility per verificare la vulnerabilità dei punti di accesso nella realizzazione del metodo di negoziazione delle connessioni SAE (Simultaneous Authentication of Equals), che può essere utilizzato per avviare un attacco di denial of service;
- Dragontime — uno script per condurre attacchi tramite canali alternativi contro SAE, che considera le differenze nei tempi di elaborazione delle operazioni utilizzando i gruppi MODP 22, 23 e 24;
- Dragonforce — un utility per il recupero delle informazioni (cracking delle password) basato su dati relativi ai diversi tempi di elaborazione delle operazioni o sull'individuazione delle informazioni in cache.
L'alleanza Wi-Fi, che sviluppa standard per le reti wireless, ha annunciato che il problema riguarda un numero limitato di prime implementazioni WPA3-Personal e può essere risolto tramite aggiornamenti del firmware e del software. Non sono stati registrati casi di sfruttamento delle vulnerabilità per attività dannose. Per migliorare la sicurezza, l'alleanza Wi-Fi ha aggiunto ulteriori test al programma di certificazione per verificare la correttezza delle implementazioni e ha contattato i produttori di dispositivi per coordinare la risoluzione dei problemi identificati. Le patch sono già state rilasciate per hostap/wpa_supplicant. Gli aggiornamenti dei pacchetti sono disponibili per Ubuntu. In Debian, RHEL, SUSE/openSUSE, Arch, Fedora e FreeBSD i problemi rimangono non risolti.
Fonte: opennet.ru
