Pētnieku grupa no vairākām Amerikas universitātēm, Cloudflare un Microsoft ir izstrādājusi jaunu uzbrukuma tehniku pret RADIUS protokolu, ko telekomunikāciju operatori, mākoņpakalpojumu sniedzēji un VPN pakalpojumu sniedzēji izmanto lietotāju autentifikācijai, autorizācijai un uzskaitei. Uzbrukums ar kodēto nosaukumu Blast-RADIUS ļauj viltotājiem viltot RADIUS servera autentifikācijas atbildi un izveidot savienojumu, nezinot lietotāja paroli.
Lai izmantotu ievainojamību (CVE-2024-3596), uzbrucējam ir jāspēj pārtvert tranzīta datplūsmu un veikt pilnvērtīgu MITM uzbrukumu, kas ļauj lasīt, pārtvert, bloķēt un modificēt ienākošos un izejošos tranzīta UDP paketes, ko sūta piekļuves punkti, lai pieprasītu klienta autentifikāciju (Access-Request), un ko RADIUS serveris atgriež ar darījuma apstiprinājumu vai noraidījumu. Pārtverot autentifikācijas pieprasījumu, uzbrucējs var nosūtīt viltotu atbildi, norādot citu rezultāta veidu (piemēram, Access-Accept, nevis Access-Reject). Uzbrucējs varētu arī pārtvert divfaktoru autentifikācijai izmantoto Access-Challenge atbildi un aizstāt to ar Access-Accept, lai apietu papildu verifikācijas soli.

Uzbrukums ir balstīts uz faktu, ka RADIUS protokols izmanto UDP kā transportēšanas protokolu un pārbauda pārraidīto ziņojumu integritāti, izmantojot MD5 algoritmu. Lai pārbaudītu ziņojumus, kas tiek pārraidīti starp serveris Veicot autentifikāciju starp piekļuves punktu un RADIUS serveri, tiek izmantota slepena atslēga, kas ir zināma gan piekļuves punktam, gan RADIUS serverim, bet nav zināma uzbrucējam. Atbildot uz autentifikācijas pieprasījumu, RADIUS serveris ģenerē MD5 jaucējkodu, ko piekļuves serveris izmanto, lai pārbaudītu, vai ziņojumu ir nosūtījis autorizēts serveris. MD5 jaucējkods ietver pieprasījumā nosūtīto nejaušo vērtību, pieprasījuma identifikatoru, atgrieztos atribūtus un slepeno atslēgu.
Vidēja cilvēka uzbrukuma laikā uzbrucējs var pārtvert pieprasījumā pārsūtīto identifikatoru un nejaušo vērtību, kā arī paredzēt operācijas kodu, lielumu un atribūtus. Uzdevums ir reducēts uz pareiza verifikācijas heša ģenerēšanu, kas atbilstu modificētajam operācijas rezultātam un tiktu pārbaudīts ar hešu, izmantojot slepenu atslēgu. MD5 algoritms nav izturīgs pret brutāla spēka uzbrukumiem, ļaujot uzbrucējam, manipulējot ar neatbilstošu papildināšanu, atrast datu kombināciju ar vēlamajiem parametriem, kuras MD5 hešs atbilst sākotnējās atbildes MD5 hešam, un nosūtīt viltotu atbildi ar autentifikācijas veiksmes kodu (Access-Accept), nevis kļūdas ziņojumu.

Tā kā autentifikācija un integritātes pārbaude netiek piemērota, apstrādājot piekļuves pieprasījuma paketes, uzbrukuma laikā sākotnējais pieprasījums no serveris Lai iegūtu piekļuvi, uzbrucējs var ievietot papildu atribūtu "Proxy-State", ko RADIUS serveris atspoguļos savā atbildē. "Proxy-State" saturs tiek izvēlēts, ņemot vērā sadursmes, lai MD5 verifikācijas jaucējvērtība reālajā un viltotajā atbildē būtu identiska. Eksperimenta laikā MD5 sadursmes atrašana uzbrukuma veikšanai aizņēma 3–6 minūtes, kas ir ilgāk nekā tipiskais 30–60 sekunžu taimauts. Tomēr sadursmju meklēšanas laiku var samazināt, izmantojot jaudīgāku aparatūru, GPU un paralēlizējot darbības.
Galvenais šīs ievainojamības mazināšanas pasākums ir paplašināmā autentifikācijas protokola (EAP, RFC 3579) izmantošana, kas papildu ziņojumu verifikācijai izmanto Message-Authenticator atribūtu. Lai aizsargātu pret uzbrukumu, var izmantot arī protokola paplašinājumus (RadSec), kas ļauj pārsūtīt RADIUS ziņojumus pa šifrētiem kanāliem, kuru pamatā ir TLS vai DTLS. Turklāt var samazināt atbildes taimautus un bloķēt atbildes ar Proxy-State atribūtu. RADIUS ziņojumu pārsūtīšana, izmantojot TCP, sarežģī uzbrukumu, bet to nenovērš.
Uzbrukuma kods vēl nav publiski izlaists, taču hashclash projektā ir veiktas izmaiņas, kas uzlabo MD5 sadursmju saskaņošanu, ņemot vērā uzbrukuma specifiku. FreeRADIUS RADIUS serverī problēma tika risināta 3.0.27 un 3.2.5 laidienos, nosakot obligātu Message-Authenticator atribūtu un pievienojot iestatījumu, lai ierobežotu pakešu apstrādi ar Proxy-State atribūtu.
Avots: opennet.ru
