RADIUS 协议中允许伪造身份验证响应的漏洞

来自美国几所大学以及 Cloudflare 和 Microsoft 公司的一组研究人员针对电信运营商、云服务和 VPN 提供商用于身份验证、授权和用户计费的 RADIUS 协议开发了一种新的攻击技术。该攻击代号为 Blast-RADIUS,可以在身份验证期间伪造 RADIUS 服务器响应,并在不知道访问密码的情况下组织订阅者连接。

要利用此漏洞 (CVE-2024-3596),攻击者必须能够拦截传输流量并执行全面的 MITM 攻击,从而允许他们读取、拦截、阻止和修改访问发送的传入和传出传输 UDP 数据包指向请求客户端身份验证(Access-Request)并由 RADIUS 服务器返回确认或拒绝该操作。截获身份验证请求后,攻击者可以发送虚构的响应,在该响应中指示不同的结果类型(例如,访问接受而不是访问拒绝)。攻击者还可能拦截用于双因素身份验证的访问挑战响应,并将其替换为访问接受响应以绕过额外的验证步骤。

RADIUS 协议中允许伪造身份验证响应的漏洞

该攻击基于以下事实:RADIUS 协议使用 UDP 作为传输协议,并使用 MD5 算法验证传输消息的完整性。为了验证在两者之间传输的消息,需要使用 MD5 算法。 服务器 当接入点与 RADIUS 服务器之间进行身份验证时,会使用一个只有接入点和 RADIUS 服务器知道但攻击者不知道的密钥。RADIUS 服务器在收到身份验证请求后,会生成一个 MD5 哈希值,接入服务器使用该哈希值来验证消息是否由授权服务器发送。MD5 哈希值包含请求中发送的随机值、请求标识符、返回的属性以及密钥。

MITM 攻击中的攻击者可以拦截请求中发送的标识符和随机值,还可以预测操作码、大小和属性。该任务归结为生成正确的验证散列,该散列将对应于操作的更改结果,并且将通过使用密钥的散列进行验证。 MD5算法不抗冲突选择,攻击者可以通过操纵不相关的填充来选择具有所需参数的数据组合,其MD5哈希值将与原始响应的MD5哈希值一致,并发送带有成功身份验证代码(访问接受)的虚构响应,而不是错误消息。

RADIUS 协议中允许伪造身份验证响应的漏洞

由于在处理访问请求数据包时未应用身份验证和完整性检查,因此在攻击期间,来自原始请求的身份验证和完整性检查将被破解。 伺服器 为了获取访问权限,攻击者可以插入一个额外的“Proxy-State”属性,该属性会被RADIUS服务器反映在其响应中。“Proxy-State”属性的内容经过精心设计,旨在消除MD5碰撞,从而使真实响应和伪造响应中的MD5验证哈希值完全相同。实验中,找到一个MD5碰撞来执行攻击耗时3-6分钟,这比通常的30-60秒超时时间要长。然而,通过使用更强大的硬件、GPU以及并行化操作,可以缩短碰撞搜索时间。

作为防范漏洞的主要措施,建议使用EAP协议(可扩展身份验证协议,RFC 3579),该协议使用Message-Authenticator属性进行额外的消息验证。为了防止攻击,您还可以使用协议扩展 (RadSec),它允许通过基于 TLS 或 DTLS 的加密通道传输 RADIUS 消息。此外,您可以将响应超时值减少到最小值并使用 Proxy-State 属性阻止响应。通过 TCP 传输 RADIUS 消息会使攻击变得更加困难,但并不能阻止其发生。

执行攻击的代码尚未公开发布,但 hashclash 项目已进行了更改,改进了 MD5 中冲突的选择,同时考虑到攻击的具体情况。 FreeRADIUS RADIUS 服务器在版本 3.0.27 和 3.2.5 中解决了该问题,方法是强制使用 Message-Authenticator 属性,并添加一个设置来限制处理具有 Proxy-State 属性的数据包。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster