Skupina výzkumníků z několika amerických univerzit a společností Cloudflare a Microsoft vyvinula novou techniku útoku na protokol RADIUS, který využívají operátoři, cloudové služby a poskytovatelé VPN k autentizaci, autorizaci a účetnictví uživatelů. Útok, který dostal krycí název Blast-RADIUS, umožňuje padělat odpověď RADIUS-serveru během autentizace a zorganizovat připojení uživatele bez znalosti přístupového hesla.
K využití zranitelnosti (CVE-2024-3596) musí útočník mít možnost odposlechnout přenosový provoz a provést plnohodnotný útok MITM, který umožňuje číst, odposlouchávat, blokovat a měnit příchozí a odchozí přenosové UDP pakety, které jsou posílány přístupovými body pro žádost o autentizaci klientů (Access-Request) a vraceny RADIUS-serverem s potvrzením nebo odmítnutím operace. Pokud útočník zachytí žádost o autentizaci, může poslat padělanou odpověď, uvedením jiného typu výsledku (např. Access-Accept místo Access-Reject). Útočník také může potenciálně zachytit odpověď Access-Challenge používanou při dvoufaktorové autentizaci a nahradit ji odpovědí Access-Accept, aby obešel dodatečnou kontrolu.

Útok vychází z toho, že protokol RADIUS používá jako transport UDP a ověřuje integritu přenášených zpráv pomocí algoritmu MD5. Pro ověření zpráv, které se přenášejí mezi serverem přístupovým bodem a RADIUS-serverem, se používá tajný klíč, který je znám přístupovému bodu a RADIUS-serveru, ale není znám útočníkovi. V odpovědi na žádost o autentizaci RADIUS-server generuje MD5 hash, pomocí něhož se přístupový server může ujistit, že zprávu poslal autorizovaný server. MD5 hash pokrývá náhodnou hodnotu zaslanou v žádosti, identifikátor žádosti, vracené atributy a tajný klíč.
Útočník během MITM útoku může zachytit identifikátor a náhodnou hodnotu předanou v požadavku, a také může předvídat kód operace, velikost a atributy. Cílem je vytvoření správného kontrolního hash, který bude odpovídat změněnému výsledku operace a projde ověřením pomocí hashování se skrytým klíčem. Algoritmus MD5 není odolný vůči kolizím, což umožňuje útočníkovi manipulovat s bezvýznamným přídavným vyplněním, aby našel kombinaci dat s požadovanými parametry, jejíž MD5 hash bude shodný s MD5 hashem původní odpovědi, a poslat falešnou odpověď s kódem úspěšného ověření (Access-Accept) místo zprávy s informací o chybě.

Jelikož při zpracování paketů s požadavkem na přístup (Access-Request) není aplikováno ověřování a kontrola integrity, může útočník do původního požadavku v průběhu útoku vložit serveru dodatečný atribut „Proxy-State“, který se zobrazí RADIUS serverem ve své odpovědi. Obsah „Proxy-State“ je vybírán s ohledem na kolizi tak, aby hodnota kontrolního MD5 hashe v reálných a falešných odpovědích byla identická. Při provádění experimentu trval proces hledání kolize v MD5 k provedení útoku 3-6 minut, což je více než typický časový limit 30-60 sekund, ale čas hledání kolize může být zkrácen použitím výkonnějšího vybavení, zapojením GPU a paralelizací operací.
Jako hlavní opatření na ochranu proti této zranitelnosti se doporučuje využití protokolu EAP (Extensible Authentication Protocol, RFC 3579), ve kterém se pro dodatečné ověřování zpráv používá atribut Message-Authenticator. Pro ochranu před útokem lze také použít rozšíření protokolu (RadSec), která zahrnují přenos RADIUS zpráv prostřednictvím šifrovaných kanálů založených na TLS nebo DTLS. Kromě toho je možné zkrátit hodnoty časových limitů pro přijetí odpovědi na minimum a zablokovat odpovědi s atributem Proxy-State. Přenos RADIUS zpráv přes TCP komplikuje útok, ale nevylučuje jeho provedení.
Kód pro provedení útoku dosud nebyl zveřejněn, ale projektu hashclash byly předány změny, které zlepšují vyhledávání kolizí v MD5 s ohledem na specifika útoku. V serveru FreeRADIUS byla problém odstraněn ve verzích 3.0.27 a 3.2.5 zavedením povinného použití atributu Message-Authenticator a přidáním nastavení pro omezení zpracování paketů s atributem Proxy-State.
Zdroj: opennet.ru
