随着网络安全威胁的不断增加,了解并预防可能的攻击变得至关重要。Blast-RADIUS是一种严重影响 RADIUS协议的安全漏洞,能够让攻击者绕过身份验证获取未经授权的访问权限。本篇文章将深入探讨该漏洞的工作原理、检测方法及应对措施,帮助您有效防范潜在的安全风险。
关于 Blast-RADIUS的基础知识
Blast-RADIUS是一种影响 RADIUS协议(依据 RFC 2865)的安全漏洞。它允许位于 RADIUS客户端和服务器之间的中间人攻击者伪造一个有效的访问接受(access-accept)消息,来响应实际已经失败的认证请求。这种伪造使攻击者能够在无需猜测或强制破解密码和共享密钥的情况下,获得对网络设备和服务的访问权限。攻击者在请求中插入了一个恶意属性,导致合法服务器响应中的认证信息与攻击者伪造的消息发生碰撞。这使得攻击者能够将拒绝转变为接受,并添加任意的协议属性。然而,攻击者并不会获取任何用户凭据。该漏洞已在 CVE-2024-3596中描述。
具体来说,该攻击是通过计算碰撞来攻击响应认证器的 MD5签名。该攻击代表了一个协议漏洞,因此影响所有不使用 EAP认证方法并通过 UDP未加密工作的 RADIUS实现。特别是,密码认证协议(PAP)和质询握手认证协议(CHAP)方法受到影响。
图1 对使用 PAP 方法进行 RADIUS 验证的 Blast-RADIUS 攻击
如果无法直接使用 TLS或 DTLS进行传输加密,可以使用 RFC 2869中描述的可选 RADIUS属性 "Message-Authenticator"作为替代方法。
该方法为整个 RADIUS数据包计算一个 HMAC-MD5校验和。未通过此完整性检查的数据包必须被静默丢弃。根据当前的状态,没有共享密钥的情况下,HMAC-MD5 校验和无法被伪造。
如果在所有数据包中都要求使用有效的消息认证属性,这种攻击将变得不可能。然而,这个属性仅在 EAP 认证方法中是强制性的,而在 PAP和 CHAP中并不是。即使在 RFC 5080中也只是定义了一个 "SHOULD"(建议使用)。
如何检查漏洞?
要检查您的实现是否存在漏洞,可以捕获 RADIUS服务器和 RADIUS客户端之间的通信数据包,并根据受影响的协议特性进行筛选。我们可以使用 ProfiShark或 IOTA捕获数据包,基于 RADIUS协议对 IOTA进行预筛选,并使用 Wireshark进行分析。需要捕获 RADIUS客户端与服务器之间的数据包,例如,在图2所示的内联模式下进行捕获。
图2 在 RADIUS 客户端(交换机)和 RADIUS 服务器之间定位 IOTA 或 ProfiShark
使用 ProfiShark进行捕获
在 ProfiShark Manager中,我们需要在 "Network Ports"选项卡中将 ProfiShark设置为内联模式(即取消勾选 "Span Mode"复选框,如图 3所示),然后将其内联集成到我们的网络中(如图 2所示)。
图3 在 ProfiShark Manager 中禁用 SPAN 模式,将 ProfiShark 内联集成到 RADIUS 客户端和 RADIUS 服务器之间
接下来,在 "Capture"选项卡中,根据需要设置捕获目录,并通过点击 "Start Capture"按钮开始捕获数据,直到我们获取到足够的数据为止。
图4 在 ProfiShark Manager 中设置捕获目录并开始捕获
使用 IOTA进行捕获
首先,我们需要确保在 IOTA管理界面的 "Capture > Interface Configuration"页面上,将 IOTA的捕获接口设置为内联模式。
图5 将端口控制设置为内联模式
然后,我们将 IOTA内联集成到生产网络中,并通过按下设备上的物理按钮或在 "Capture > Capture Control"页面上点击 "Start Capture"按钮开始捕获数据。
图6 通过 "Capture Control" 页面上的 "Start Capture" 按钮开始捕获
现在,我们可以通过应用程序或协议栈过滤器对 RADIUS协议进行过滤。最简单的方法是过滤 "APPLICATION"属性,并将其值设置为 "RADIUS"(如图 7所示),这样只会获取 RADIUS数据包。另一种选择是通过 "PROTOCOL_STACK"进行过滤,设置值为 "Ethernet | IPv4 | UDP | RADIUS"。
图7 过滤 RADIUS 数据包
在正确过滤协议后,我们可以滚动至概览仪表板的底部,直到看到流列表。接下来,我们需要选择要进一步分析的流,并点击左侧的下载按钮。
图8 可下载的流列表
分析易受攻击的执行方式
例如,我们可以使用 Wireshark检查 RADIUS请求中是否包含易受攻击的属性。首先,我们需要打开位于之前在 ProfiShark Manager中配置的目录或从 IOTA下载的文件夹中的 PCAPNG文件。接下来,我们需要一个显示过滤器来获取 RADIUS Access-Requests(代码 1)、Access-Accepts(代码 2)、Access-Rejects(代码 3)和 Access-Challenges(代码 11),但不包括使用 EAP方法或带有 "Message-Authenticator"属性值对的 RADIUS消息,因为它们不受此漏洞影响。为此,我们可以使用显示过滤器 “(radius.code in {1,2,3,11}) and not (radius.Message_Authenticator or eap)”,如图 9所示。这样,我们只会获取受此协议漏洞影响的 RADIUS数据包,并且可以看到受影响产品的源 IP地址。
图9 在 Wireshark 中使用显示过滤器筛选潜在易受攻击的 RADIUS 数据包的截图
作为使用 “Message-Authenticator” 属性值对来实现解决方案的数据包示例,我们可以参考图10,其中展示了该解决方案的实现。
图10 Wireshark 中带有消息认证器属性/值对的 RADIUS 访问请求截图。在此情况下,它也是一个不易受攻击的 EAP 认证
结论
IOTA和 ProfiShark可以帮助我们轻松高精度地收集 RADIUS数据包的包级数据并进行分析。Wireshark通过使用上述显示过滤器支持我们高效分析收集到的数据,快速筛选出易受攻击的 RADIUS实现。
作为应对 Blast-RADIUS攻击的替代方案,可以使用 “Message-Authenticator” 属性值对,或者在 RADIUS客户端到 RADIUS服务器的传输过程中,通过 RadSec或 IPSec使用 TLS传输加密来保护 RADIUS数据包。
审核编辑 黄宇
-
网络安全
+关注
关注
10文章
3124浏览量
59582 -
Iota
+关注
关注
0文章
28浏览量
8369 -
Wireshark
+关注
关注
0文章
49浏览量
6497
发布评论请先 登录
相关推荐
评论