Vulnerabilitate în protocolul RADIUS, care permite falsificarea răspunsului la autentificare

Un grup de cercetători de la mai multe universități și companii americane, Cloudflare și Microsoft, a dezvoltat o nouă tehnică de atac asupra protocolului RADIUS, utilizat de operatorii de telecomunicații, serviciile cloud și furnizorii de VPN pentru autentificarea, autorizarea și contabilizarea utilizatorilor. Atacul, care a primit numele de cod Blast-RADIUS, permite falsificarea răspunsului serverului RADIUS în timpul autentificării și realizarea unei conexiuni a utilizatorului fără a cunoaște parola de acces.

Pentru a exploata vulnerabilitatea (CVE-2024-3596), atacatorul trebuie să aibă capacitatea de a intercepta traficul în tranzit și de a efectua un atac MITM complet, permițând citirea, interceptarea, blocarea și modificarea pachetelor UDP în tranzit, trimise de punctele de acces pentru a solicita autentificarea clienților (Access-Request) și returnate de serverul RADIUS cu confirmarea sau respingerea operațiunii. Odată interceptat cererea de autentificare, atacatorul poate trimite un răspuns falsificator, specificând un alt tip de rezultat (de exemplu, Access-Accept în loc de Access-Reject). De asemenea, atacatorul poate intercepta răspunsul Access-Challenge, utilizat în autentificarea cu două factori, și îl poate înlocui cu un răspuns Access-Accept pentru a ocoli trecerea prin etapa suplimentară de verificare.

Vulnerabilitate în protocolul RADIUS, care permite falsificarea răspunsului la autentificare

Atacul se bazează pe faptul că protocolul RADIUS folosește UDP ca transport și verifică integritatea mesajelor transmise prin algoritmul MD5. Pentru a verifica mesajele transmise între serverul punctele de acces și serverul RADIUS, se aplică o cheie secretă, cunoscută de punctul de acces și serverul RADIUS, dar necunoscută atacatorului. Ca răspuns la cererea de autentificare, serverul RADIUS generează un hash MD5, prin care serverul de acces poate verifica că mesajul a fost trimis de un server autorizat. Hash-ul MD5 acoperă valoarea aleatorie trimisă în cerere, identificatorul cererii, atributele returnate și cheia secretă.

Atacatorul în cadrul unui atac MITM poate intercepta identificatorul și valoarea aleatorie transmise în cerere, precum și poate prezice codul operației, dimensiunea și atributele. Sarcina constă în formarea unui hash de verificare corect care să corespundă rezultatului modificat al operației și să treacă verificarea prin hashing utilizând cheia secretă. Algoritmul MD5 nu este rezistent la coliziuni, ceea ce îi permite atacatorului să manipuleze cu completarea suplimentară nesemnificativă pentru a găsi o combinație de date cu parametrii doriti, al cărei hash MD5 va corespunde cu hash-ul MD5 al răspunsului inițial, și să trimită un răspuns fals cu un cod de succes al autentificării (Access-Accept) în loc de un mesaj cu informații despre eroare.

Vulnerabilitate în protocolul RADIUS, care permite falsificarea răspunsului la autentificare

Dat fiind că în procesarea pachetelor cu cererea de acces (Access-Request) nu se aplică autentificarea și verificarea integrității, în timpul atacului în cererea inițială de server acces, atacatorul poate adăuga atributul suplimentar „Proxy-State”, care va fi reflectat de serverul RADIUS în răspunsul său. Conținutul „Proxy-State” este ales având în vedere coliziunea, astfel încât valoarea hash-ului MD5 de verificare din răspunsurile reale și false să fie identice. În cadrul unui experiment, căutarea coliziunii în MD5 pentru a realiza atacul a durat între 3 și 6 minute, ceea ce este mai mult decât timeout-ul standard de 30-60 de secunde, dar timpul necesar pentru căutarea coliziunii poate fi redus prin utilizarea unor echipamente mai puternice, atragerea GPU-urilor și paralelizarea operațiunilor.

Ca măsură principală de protecție împotriva vulnerabilității, se recomandă utilizarea protocolului EAP (Extensible Authentication Protocol, RFC 3579), în care pentru verificarea suplimentară a mesajelor se folosește atributul Message-Authenticator. Pentru a preveni atacul, se pot utiliza, de asemenea, extensii ale protocolului (RadSec), care includ transmiterea mesajelor RADIUS prin canale criptate bazate pe TLS sau DTLS. În plus, valorile timeout-urilor pentru primirea răspunsului pot fi reduse la minimum și se pot bloca răspunsurile cu atributul Proxy-State. Transmiterea mesajelor RADIUS peste TCP complică atacul, dar nu îl exclude.

Codul pentru realizarea atacului nu a fost publicat încă în accesul public, dar proiectului hashclash i s-au transmis modificări care îmbunătățesc găsirea coliziunilor în MD5 luând în considerare specificul atacului. În serverul RADIUS FreeRADIUS, problema a fost rezolvată în versiunile 3.0.27 și 3.2.5 prin activarea aplicării obligatorii a atributului Message-Authenticator și adăugarea unei configurații pentru a limita procesarea pachetelor cu atributul Proxy-State.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster