Ognuno di noi per connettersi ad internet utilizza un router. Come giร in passato avevamo visto quiย a chi si occupa di questo blog piace, in particolare, l’uso della connessione via Ethernet, ovvero via cavo, ma tutti noi per motivi di spazio, libertร di movimento, preferenze varie scelgono il Wi-Fi. Senza contare, inoltre, come gli smartphone si prestino, grazie alla loro entitร mobile, proprio a quest’ultima scelta.
Alcuni giorni fa Mathy Vanhoef del gruppo di ricerca imec-DistriNet dell’Universitร belga KU Leuven ha scopertoย una falla relativa alla connessione Wi-Fi protetta e, in particolare, al WPA2.ย Questa notizia รจ stata preventivamente rilasciata alle aziende interessate dando loro il tempo di creare un aggiornamento e di tamponare il problema e, successivamente, รจ stato permesso alla stampa di renderlo noto.
Questa falla รจ stata denominata, come anticipato dal titolo di questo post, KRACK, acronimo diย Key Reinstallation AttaCKs.
Il WPA2, acronimo diย Wi-Fi Protected Access 2, รจ un protocollo di sicurezza che si occupa del criptaggio avanzato dei dati su rete Wi-Fi.ย Questi รจย basato e identificato con la tecnologia IEEE 802.1 di cui avevamo parlato quiย relativamente al modello OSI ed al livello Data Link, luogo in cui i dati trasmessi sulla rete vengono smistati, controllati e trasmessi. Il WPA2 viene utilizzato da tutti i moderni router ed in questi anni รจ venuto a sostituire gli obsoleti WPA e WEP: la differenza sostanziale tra il primo e gli altri รจ data dagli algoritmi di criptaggio utilizzati; il WEP, infatti, faceva uso dell’algoritmo RC4 (Rivest Cipher 4)ย di crittografia simmetrica (qui per maggiori info) e di due chiavi di 64 bit o 128 bit; mentre il WPA sebbene ancora funzionante con l’algoritmo RC4 aveva delle chiavi piรน forti, ovvero da 256bit, ed ogni client riceveva le chiavi via TKIP (Temporal Key Integrity Protocol); il WPA2 infine, che ha sostituito i precedenti TKIP e RC4, utilizza gli algoritmo AES (Advanced Encryption Standard), modello di cifratura a blocchi, e CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), studiato specificamente per le connessioni wireless.
Sarร quindi evidente, guardando agli elementi giร in nostro possesso, che tutti i sistemi operativi soffrono di questa falla perchรฉ essa si trova ad un livello, diciamo, piรน primitivo o piรน profondo: che esso sia Windows, Linux, OS X, Android, o altro, il momento in cui utilizziamo una connessione Wi-Fi che, necessariamente, sfrutta il WPA2 per criptare i nostri dati c’รจ la possibilitร che la falla che andremo a descrivere possa essere usata da qualche malintenzionato.
Prima di divertirci un po’ a vedere come questa falla possa essere sfruttata, diamo un’occhiata a cosa fare per limitarla. La maggior parte delle aziende e lo stesso M. Vanhoef consigliano questi due specifici passi:
- Disabilitare il protocollo 802.11r. Questi, se abilitato, permette di non udire il rumore del click durante il passaggio da un Wi-Fi all’altro e rende il roaming piรน veloce. Questo tipo di protocollo รจ abbastanza nuovo (risale infatti al 2008) da esistere solamente nei Wi-Fi di grandi aziende o piccoli business con accesso a tecnologie aggiornate: ciรฒ quindi non metterebbe in “pericolo” la connessione Wi-Fi della casa di un utente privato qualsiasi.
- Non usare TKIP ma continuare ad affidarsi al AESย (questo consiglio vale per qualsiasi utente sia commerciale che privato) poichรฉ il primo รจ meno sicuro soprattutto nel caso di uso di reti ibride.
- Scaricare eventualmente un aggiornamento per il proprio router se presente.
Il video sottostante, in inglese, descrive un esempio di ciรฒ che รจ stato fatto per dimostrare la falla di cui stiamo parlando. Vediamo allora di cosa si tratta e proviamo a spiegarlo.
Prima di tutto, come avevamo fatto noi stessi precedentemente, qui per dimostrare l’insicurezza delle reti Wi-Fi pubbliche, s’imposta una connessione Wi-Fi che ci permetta di testare il tutto senza ricadere nell’illegalitร e che utilizzi una connessione WPA2 che, come viene suggerito nel video, รจ indicato dal simbolo del lucchetto posto accanto a quello del Wi-Fi quando andiamo a controllare la lista delle connessioni. Dopodichรฉ, si prenderร uno smartphone Android connettendolo a questa rete dove questi ci permetterร di accedere alla versione protetta dei siti, ovvero l’HTTPS segnalati, come mostra l’immagine sottostante, dal lucchetto verde e la scritta “Sicuro” sulla sinistra della barra di ricerca del nostro browser.
A questo punto nel video ci viene mostrato il comando utilizzato come attacco allo script del WPA2 che sarebbe:
sudo ./krack-all-zero-tk.py wlp0s20u1 wlp0s20u1 testnetwork --target 90:18:7c:6e:6b:20
Dove la parola “testnetwork” indica il nome della connessione Wi-Fi che si ha intenzione di attaccare e la serie alfanumerica dopo il target altro non รจ che l’indirizzo MAC che indica specificamente lo smartphone in questione. Si inizializzerร quindi una ricerca della rete da attaccare.
Una volta trovato il corretto indirizzo della rete permettendo di farne una copia, un clone, da posizionare su un diverso canale: in questo modo sarร possibile lavorare su quelli che vengono definiti handshakes, ovvero “strette di mano” dopo aver, logicamente, indotto il target a connettersi alla rete-clone. Questo tipo di attacco viene generalmente definitoย Man In The Middleย (MITM) poichรฉ implica la presenza di un terzo attore che si insinua tra lo scambio di dati tra mittente e destinatario.
Per spiegare cosa siano gliย handshakes dobbiamo capire come funziona effettivamente il sistema di criptaggio WPA2: quando un pacchetto dati viene inviato via Wi-Fi questi รจ trasdotto in codice binario (ovvero il linguaggio macchina, il classico 0 1 con cui i computer funzionano); questo pacchetto viene criptato via XOR (eXcludive OR: รจ un operatore logico che riceve in ingresso “n” valori e restituisce “1” in uscita se, e solo se, vi รจ almeno un ingresso che differisce dagli altri) con un numero unico e randomico chiamato nonceย che dovrebbe modificarsi e mutare ogni volta. Tutta l’operazione di criptaggio si basa sul fatto che questo numero sia sempre randomico. Logicamente, per decriptare il messaggio, sarร necessario che il sistema ricevente conosca a sua volta il numero randomico che altro non รจ che la chiave di decriptaggio: ecco perchรฉ questo processo viene denominato “stretta di mano” o handshake.
Il video suggerisce anche come, utilizzando lo strumento denominato sslstrip sia possibile rimuovere la versione HTTPS di siti non propriamente configurati mutandoli in pagine HTTP che, come avevamo visto qui, inviano in chiaro nomi utenti e password visibili da chiunque analizzi il traffico di rete. Il comando in questo caso utilizzato sarร il seguente:
sslstrip -w sslstrip.log
A questo punto entra in gioco il software, di cui abbiamo giร parlato tempo faย quiย ed utilizzato anche qui, chiamato Wireshark che permette di osservare ed analizzare il traffico della rete.
A questo punto, una volta posto l’attacco MITM ed azionato Wireshark sarร possibile controllare i vari handshakes. In specifico, durante la terza “stretta di mano” sarร possibile convincere il client in connessione a reinizializzare i nodi. I sistemi operativi di Android e Linux presentano un interessante bug su cui si basa KRACK ed il problema del WPA2 di cui stiamo parlando; essi, infatti, se reinizializzati partono sempre con lo stesso numero nonce che si rivela, quindi, non essere randomico: questo rende possibile la manipolazione dei dati trasmessi, azioni di bruteforce e la ricerca di elementi ricorrenti che permettano di decriptare i messaggi.
In conclusione, possiamo dire che questo attacco risulta interessante dal punto di vista della sicurezza informatica e, logicamente, da correggere per evitare dei possibili attacchi, ma vorremmo sottolineare come sia necessario per portare a termine questo tipo di azione la prossimitร del malintenzionato alla rete Wi-Fi in uso nonchรฉ la difficoltร nel rendere invisibile la propria presenza durante il reindirizzamento del client al network-clone.
Lascia un commento