Mathy Vanhoef, autor KRACK napada na bežične mreže s WPA2, i Eyal Ronen, koautor nekih napada na TLS, otkrili su informacije o šest ranjivosti (CVE-2019-9494 — CVE-2019-9499) u tehnologiji zaštite bežičnih mreža WPA3, koje omogućavaju rekonstrukciju lozinke za pristup i pristup bežičnoj mreži bez znanja lozinke. Ranjivosti su grupirane pod kodnim imenom Dragonblood i omogućuju kompromitaciju metode usklađivanja veza Dragonfly, koja pruža zaštitu od napada na lozinke u offline režimu. Osim WPA3, metoda Dragonfly također se koristi za zaštitu od napada s rečnikom u EAP-pwd protokolu, koji se primenjuje u Androidu, RADIUS serverima i u hostapd/wpa_supplicant.
Istraživanje je otkrilo dva osnovna tipa arhitektonskih problema u WPA3. Oba tipa problema, u konačnici, mogu se koristiti za rekonstrukciju lozinke za pristup. Prvi tip omogućava povratak na nesigurne kriptografske metode (napad s povratkom): sredstva za osiguranje kompatibilnosti s WPA2 (prolazni način rada, koji omogućava korištenje WPA2 i WPA3) omogućuju napadaču da prisili klijenta da izvrši WPA2 četverostepeni postupak usklađivanja veza, što dalje omogućava korištenje klasičnih napada na lozinke primenjivih na WPA2. Osim toga, otkrivena je i mogućnost provođenja napada s povratkom direktno na metodu usklađivanja veza Dragonfly, koja omogućava povratak na manje zaštićene tipove eliptičnih krivulja.
Drugi tip problema dovodi do curenja informacija o karakteristikama lozinke putem sporednih kanala i temelji se na nedostatcima metode kodiranja lozinke u Dragonfly, koje omogućavaju rekonstrukciju izvorne lozinke na temelju posrednih podataka, poput promjena kašnjenja pri izvršavanju operacija. Korišteni u Dragonfly algoritam transformacije heša u eliptičnu krivulju (hash-to-curve) pokazao se osjetljivim na napade praćenjem zagađenja informacija u procesorskoj keš memoriji (cache attack), dok je algoritam transformacije heša u grupu (hash-to-group) podložan napadima mjerenjem vremena izvršenja operacija (timing attack).
Da bi izvršio napade putem analize predmemorije, napadač mora imati mogućnost izvođenja neprivilegiranog koda na sistemu korisnika koji se povezuje na bežičnu mrežu. Obje metode omogućuju prikupljanje informacija potrebnih za preciziranje tačnih delova lozinke tokom njenog pokušaja. Efikasnost napada je prilično visoka i omogućava razbijanje 8-znamenkaste lozinke koja uključuje mala slova, hvatanjem samo 40 sesija dogovora o povezivanju (handshake) i trošeći resurse ekvivalentne iznajmljivanju kapaciteta Amazon EC2 u vrednosti od 125 dolara.
Na osnovu otkrivenih ranjivosti predloženo je nekoliko scenarija napada:
- Napad povratkom na WPA2 s mogućnošću izvođenja napada rečnikom. U uslovima kada i klijent i pristupna tačka podržavaju i WPA3 i WPA2, napadač može postaviti vlastitu lažnu pristupnu tačku s istim imenom mreže koja podržava samo WPA2. U takvoj situaciji, klijent će primeniti metod dogovora o povezivanju karakterističan za WPA2, tokom kojeg će biti utvrđeno da je takvo vraćanje nedopustivo, ali će to biti učinjeno u fazi kada su poruke o dogovoru kanala već poslate i sve potrebne informacije za napad rečnikom su već procurele. Slična metoda je primenljiva i za povratak na problematične verzije eliptičnih krivulja u SAE.
Pored toga, otkriveno je da je demon iwd, koji razvija kompanija Intel kao alternativu wpa_supplicant-u, i bežični sloj Samsung Galaxy S10 podložni napadu vraćanjem čak i u mrežama koje koriste samo WPA3 — ako su ti uređaji prethodno bili povezani s WPA3 mrežom, pokušaće se povezati s lažnom WPA2 mrežom s istim imenom.
- Napad putem vanjskih kanala s izvlačenjem informacija iz procesorskog keša. Algoritam za kodiranje lozinki u Dragonfly sadrži uvjetno grane, a napadač, imajući mogućnost izvršavanja koda u sustavu korisničke bežične mreže, može na temelju analize ponašanja keša odrediti koji je od blokova izraza if-then-else odabran. Dobivene informacije se mogu koristiti za izvođenje napada s postupnim odabirom lozinke, koristeći metode slične offline napadima s rječnikom za WPA2. Za zaštitu se preporučuje prelazak na operacije s konstantnim vremenom izvođenja, neovisnim o prirodi obrađenih podataka;
- Napad putem vanjskih kanala s procjenom vremena izvršavanja operacija. U kodu Dragonfly prilikom kodiranja lozinki koristi se nekoliko multiplikativnih grupa (MODP) i promjenjiv broj iteracija, čiji broj ovisi o korištenoj lozinci i MAC adresi pristupne točke ili klijenta. Udaljeni napadač može odrediti koliko je iteracija izvršeno tijekom kodiranja lozinke i koristiti ih kao pokazatelj tijekom postupnog odabira lozinke.
- Napad uskraćivanja usluge. Napadač može blokirati rad određenih funkcija pristupne točke zbog iscrpljenja dostupnih resursa slanjem velikog broja zahtjeva za dogovor o komunikacijskom kanalu. Zaobići zaštitu od napada na temelju fludiranja koja je predviđena u WPA3 dovoljno je slati zahtjeve s lažnih, neponovljivih MAC adresa.
- Povratak na manje zaštićene kriptografske grupe koje se koriste u procesu dogovaranja veza u WPA3. Na primjer, ako klijent podržava eliptične krivulje P-521 i P-256, i koristi P-521 kao prioritetnu opciju, napadač, neovisno o podršci
P-521 s strane pristupne točke, može prisiliti klijenta da koristi P-256. Napad se provodi filtriranjem određenih poruka tijekom procesa dogovaranja veze i slanjem lažnih poruka s informacijama o nepostojanju podrške za određene tipove eliptičnih krivulja.
Za provjeru uređaja na prisutnost ranjivosti pripremljeno je nekoliko skripti s primjerima izvođenja napada:
- Dragonslayer — implementacija napada na EAP-pwd;
- Dragondrain — alat za provjeru ranjivosti pristupnih točaka u implementaciji metode dogovaranja povezanosti SAE (Simultaneous Authentication of Equals), koji se može koristiti za iniciranje napada uskraćivanja usluge;
- Dragontime — skripta za provođenje napada putem vanjskih kanala na SAE, koja uzima u obzir razlike u vremenu obrade operacija kad se koriste MODP grupe 22, 23 i 24;
- Dragonforce — alat za vraćanje informacija (pucanje lozinki) na temelju varijacija u vremenu obrade operacija ili određivanja trajanja podataka u predmemoriji.
Udruga Wi-Fi Alliance, koja razvija standarde za bežične mreže, objavila je da problem pogađa ograničen broj ranih implementacija WPA3-Personal i da se može riješiti ažuriranjem firmvera i softvera. Do sada nisu zabilježeni slučajevi iskorištavanja ranjivosti za zloćudne radnje. Kako bi povećala sigurnost, Wi-Fi Alliance dodala je dodatne testove u svoj certifikacijski program za bežične uređaje kako bi provjerila ispravnost implementacija i obratila se proizvođačima uređaja za zajedničku koordinaciju u rješavanju otkrivenih problema. Zakrpe za rješavanje problema već su objavljene za hostap/wpa_supplicant. Ažuriranja paketa dostupna su za Ubuntu. U Debianu, RHEL-u, SUSE/openSUSE, Archu, Fedori i FreeBSD problemi još uvijek nisu ispravljeni.
Izvor: opennet.ru
