Grupa istraživača sa nekoliko američkih univerziteta i kompanija Cloudflare i Microsoft razvila je novu tehniku napada na RADIUS protokol koji koriste telekom operateri, cloud servisi i VPN provajderi za autentifikaciju, autorizaciju i korisnički račun. Napad, kodnog naziva Blast-RADIUS, omogućava krivotvorenje odgovora RADIUS servera tokom autentifikacije i organiziranje pretplatničke veze bez poznavanja pristupne lozinke.
Da bi iskoristio ranjivost (CVE-2024-3596), napadač mora biti u stanju presresti tranzitni promet i izvesti punopravni MITM napad koji mu omogućava da čita, presretne, blokira i modificira dolazne i odlazne tranzitne UDP pakete poslane pristupom tačke za zahtjev za autentifikaciju klijenta (Access-Request) i koje vraća RADIUS server potvrđujući ili odbijajući operaciju. Nakon što je presreo zahtjev za provjeru autentičnosti, napadač može poslati fiktivni odgovor, navodeći u ovom odgovoru drugačiji tip rezultata (na primjer, Access-Accept umjesto Access-Reject). Napadač bi također potencijalno mogao presresti Access-Challenge odgovor koji se koristi u dvofaktorskoj autentifikaciji i zamijeniti ga Access-Accept odgovorom kako bi zaobišao dodatni korak verifikacije.

Napad se zasniva na činjenici da RADIUS protokol koristi UDP kao transport i provjerava integritet prenesenih poruka koristeći MD5 algoritam. Da bi se provjerile poruke prenesene između server Kada se vrši autentifikacija između pristupne tačke i RADIUS servera, koristi se tajni ključ koji je poznat pristupnoj tački i RADIUS serveru, ali nepoznat napadaču. Kao odgovor na zahtjev za autentifikaciju, RADIUS server generiše MD5 hash, koji pristupni server koristi za provjeru da li je poruku poslao ovlašteni server. MD5 hash uključuje slučajnu vrijednost poslanu u zahtjevu, identifikator zahtjeva, vraćene atribute i tajni ključ.
Napadač u MITM napadu može presresti identifikator i nasumične vrijednosti poslane u zahtjevu, a također može predvidjeti operacijski kod, veličinu i atribute. Zadatak se svodi na generiranje ispravnog verifikacijskog heša koji bi odgovarao promijenjenom rezultatu operacije i koji bi bio verificiran heširanjem korištenjem tajnog ključa. MD5 algoritam nije otporan na izbor kolizije, što omogućava napadaču da, manipulirajući nebitnim paddingom, odabere kombinaciju podataka sa potrebnim parametrima, čiji će se MD5 hash poklopiti sa MD5 hashom originalnog odgovora, i pošalje fiktivni odgovor s uspješnim kodom za autentifikaciju (Access-Accept) umjesto poruke o grešci.

Budući da se autentifikacija i provjera integriteta ne primjenjuju prilikom obrade paketa zahtjeva za pristup (Access-Request), tokom napada originalni zahtjev od server Da bi dobio pristup, napadač može umetnuti dodatni atribut "Proxy-State", koji će RADIUS server odraziti u svom odgovoru. Sadržaj "Proxy-State" je odabran imajući na umu kolizije, tako da će MD5 vrijednost heša za provjeru u stvarnim i krivotvorenim odgovorima biti identična. Tokom eksperimenta, pronalaženje MD5 kolizije za izvođenje napada trajalo je 3-6 minuta, što je duže od tipičnog vremenskog ograničenja od 30-60 sekundi. Međutim, vrijeme pretraživanja kolizije može se smanjiti korištenjem snažnijeg hardvera, korištenjem GPU-ova i paralelizacijom operacija.
Kao glavna mjera zaštite od ranjivosti, predlaže se korištenje EAP protokola (Extensible Authentication Protocol, RFC 3579), koji koristi atribut Message-Authenticator za dodatnu verifikaciju poruke. Za zaštitu od napada možete koristiti i proširenja protokola (RadSec), koja omogućavaju prijenos RADIUS poruka preko šifriranih kanala baziranih na TLS ili DTLS. Osim toga, možete smanjiti vremensko ograničenje prijema odgovora na minimum i blokirati odgovore s atributom Proxy-State. Prenos RADIUS poruka preko TCP-a otežava napad, ali ne sprečava da se dogodi.
Kod za izvođenje napada još nije javno objavljen, ali je hashclash projekat dobio izmjene koje poboljšavaju selekciju kolizija u MD5, uzimajući u obzir specifičnosti napada. FreeRADIUS RADIUS server je riješio problem u izdanjima 3.0.27 i 3.2.5 tako što je učinio obaveznim atribut Message-Authenticator i dodao postavku za ograničavanje obrade paketa sa atributom Proxy-State.
izvor: opennet.ru
