SonicWall 防火墙安全态势深度分析:固件解密与漏洞洞察
SonicWall 暴露现状:固件解密解锁新洞察
这是关于 SonicWall 防火墙的三部分系列文章的第二篇。第一部分深入探讨了破解 SWI 格式固件加密的技术细节。在第二部分中,我们调查了公共互联网上 SonicWall 设备的当前状态。
背景与动机
在 Bishop Fox,我们以帮助客户领先恶意对手一步而自豪。为了保持技术前沿,我们投入研究以更好地理解客户面临的威胁 landscape。事实上,在获取网络立足点时,边缘安全设备(尤其是 VPN 设备)仍然是攻击者的易得目标。仅 2024 年,我们就观察到了针对 Check Point、思科、Ivanti、Fortinet、Palo Alto、Juniper 和 SonicWall 等设备的定向攻击(仅举几例)。
我们的客户也往往是这些供应商的客户,因此我们定期评估其产品的安全性。我们的目标是了解客户用于保护边界的安全设备、其更新状态、是否受已知漏洞影响以及它们对攻击者的吸引力。预知即预武装,我们努力用一流的情报保护客户。
当前对 SonicWall 的关注由几个因素驱动。2 月,SonicWall 发布了一份公告,描述了一个影响多个防火墙设备 SSL VPN 组件的高严重性身份验证绕过漏洞。这是首次运行 SonicOSX 的虚拟机设备(NSv)被纳入重大漏洞的影响范围。7 月,另一份公告发布,这次是一个影响 SSL VPN 和管理组件的高严重性身份验证绕过漏洞。随后在 8 月又发布了一个关键严重性的堆溢出漏洞。
至此,大多数现有研究都集中在上一代固件 SonicOS 上。随着系列 7 设备和固件的发布,SonicWall 对底层操作系统以及其打包和分发方式进行了重大更改。SonicOSX 还改变了用于保护固件镜像免受黑客和逆向工程师攻击的加密方法。
由于新漏洞的出现以及对近期固件的认知差距,我们决定深入研究 SonicOSX。新操作系统的虚拟机镜像发布(直到版本 7.1.1 才实现)为我们提供了逆向工程加密和访问底层文件系统所需的关键(更多内容将在本系列第三部分中介绍)。
一旦我们完全访问了 SonicOSX 文件系统,我们就能够开发指纹识别技术,以远程识别特定的操作系统版本。只要设备将其 SSL VPN 或管理接口暴露给互联网,我们现在就能以比以往更高的置信度评估该设备的安全状况。
暴露分析
我们的扫描识别出总共 430,363 个唯一目标(IP 地址和端口组合),这些目标在公共互联网上暴露了 SonicOS/X 登录页面。其中,大多数同时可访问管理接口和 SSL VPN 接口,而其余仅暴露一个接口。
需要指出的是,防火墙的管理接口绝不应公开暴露,因为这带来了不必要的风险。SSL VPN 接口虽然设计为通过互联网为外部客户端提供访问,但理想情况下应通过源 IP 地址限制进行保护。任何暴露都为恶意行为者提供了额外的攻击面。
如果我们按主要版本(SonicWall 与“系列”互换使用)分解暴露情况,我们可以开始了解随时间发布的不同硬件系列的采用率。最新的系列 7 占比略低于 40%,具有显著的采用率,但之前的系列 6 仍然更 prevalent,占比近 50%。系列 5 除一个型号外均已达到支持终止期,但仍保持显著存在,甚至完全停止支持的系列 4 仍有几百个目标可公开访问。其余 3%的目标无法明确识别。
图 1 - 系列分布
接下来,我们提高精度以检查版本组的分布。对于系列 4、5 和 6,SonicWall 按其补丁级别(如版本主.次.补丁)分组版本,而系列 7 版本在次要级别(如版本主.次)分组。
这在确定漏洞范围时很重要——例如,如果 SonicWall 发布公告称漏洞影响版本 6.5.3.4 及更早版本,则包括从版本 6.5.3.0 到 6.5.3.4 的版本,但属于其他组(如 6.2.7.0)的版本不受影响。对于系列 7,影响版本 7.1.2 及更早版本的公告将包括 7.1.0 但不包括 7.0.1。
以下两个图表(图 2 和图 3)说明了互联网上暴露的版本组的普遍性。请注意,通过提高精度,“未知”设备的数量也增加了——这是因为我们无法以该精度级别将它们明确识别为属于单个版本组(包括所有系列 4 设备)。
图 2 - 版本组分布(线性)
该视图(图 2 - 版本组分布(线性))的主要结论是,绝大多数可识别目标运行的固件版本位于最新的三个版本组中。为了更清楚地查看其余组,我们可以在对数尺度上绘制相同数据。
图 3 - 版本组分布(对数)
该视图(图 3 - 版本组分布(对数))揭示了较旧的系列 6 型号倾向于运行版本组 6.2.7 和 6.5.1 内的固件,而系列 5 倾向于组 5.8.1 和 5.9.0。当然,我们也可以看到仍在使用的各种遗留版本。
下面,我们将更仔细地查看这些版本的安全性,但首先,让我们进一步放大,看看我们的版本检测能有多精确。
图 4 - 系列 7 发布分布
该图表(图 4 - 系列 7 发布分布)显示了系列 7 暴露中特定发布的分布,以达到每个目标的最大可能精度。版本字符串中的“x”表示可能版本的范围,例如,“7.1.1-x”表示“我们知道此目标运行版本 7.1.1,但无法自信地识别是哪个发布”。此类范围用灰色标记以便识别;浅蓝色条表示每个版本组中的当前发布(7.0 和 7.1)。
该视图(图 4 - 系列 7 发布分布)主要告诉我们两件事:高比例的系列 7 设备运行其版本组中最新可用的固件发布(7.0.1-5161 和 7.1.2-7019),并且每个版本组中也有高比例的设备运行落后几个发布的版本(7.0.1-5119 和 7.1.1-7051)。在 7.0 组中,落后者的数量略高于保持最新者。我们还看到 7.0 组中暴露的发布分布比 7.1 组更广。一个 curious 异常值是近 3,300 个目标运行版本 7.0.0-414,该版本于 2020 年 12 月仅针对 NSsp 15700 设备发布。
接下来,我们查看系列 6 的相同数据。
图 5 - 系列 6 发布分布
该图表(图 5 - 系列 6 发布分布)上首先明显的是总体精度低得多,这归因于我们用于系列 7 与早期系列的指纹识别技术的差异。由于一个特定范围使大多数其他条不可见,表示确切版本的值用蓝色渲染。
该视图的关键结论是,绝大多数系列 6 设备运行(最新)6.5.4 版本组内的固件,并且 notably 不属于 6.5.4.4-44v-21-x 范围,该范围捕获所有系列 6 NSv(虚拟机)发布。我们还知道在 6.5.4.x 范围内识别的那些不属于 6.5.4.15-x 范围(包括两个最新发布 6.5.4.15-116n 和 6.5.4.15-117n),因此关于系列 6 暴露的最大比例,我们可以推断它们运行在硬件设备上,并且几乎是最新的,但不是当前的。对于大多数其他系列 6 版本组,数据不足使我们自信地说版本有多新。
系列 5 继续精度下降的趋势。
图 6 - 系列 5 发布分布
该视图(图 6 - 系列 5 发布分布)主要告诉我们,大多数系列 5 暴露在 5.9.1 和 5.9.2 版本组中(从 5.9.x 范围内的高比例推断,排除 5.9.0.x 范围),但我们无法自信地区分它们,因此它们可能运行也可能不运行当前固件。值得指出的是,系列 5 中只有版本 5.9.2.13 仍 actively 支持。
安全分析
既然我们了解了互联网上 SonicWall 防火墙暴露的总体分布,我们转向问题“这些暴露设备的安全性如何?”为了回答这个问题,我们将版本组与两个额外指标相关联:支持状态和漏洞状态。
首先,我们查看 SonicWall actively 支持的目标比例与已达到支持终止期的目标比例。
图 7 - 支持状态
基于可用数据,我们可以自信地说 169,473 个暴露设备(39%)是活跃的,20,710 个(5%)不受支持。我们无法以足够精度识别剩余的 240,180 个(56%)以确定其状态——指纹识别通常需要一些三角测量,因此准确解释数据涉及细微差别(更多如下)。
一旦我们按系列分布此信息,它就变得更有趣。
图 8 - 按系列的支持状态
这里我们开始看到大多数支持状态未知的设备属于系列 5 和 6。查看按系列的百分比可能有助于解释原因。
图 9 - 按系列的支持状态(百分比)
现在我们可以看到所有系列 7 设备当前是活跃的,而系列 4 设备不受支持。只有系列 5 和 6 具有混合支持状态,并且对于这些,通常只有每个版本组中的最新版本处于活跃支持下。
这应有助于澄清为什么大多数暴露在此处落入“未知”类别——我们只能确定目标的支持状态,如果我们能唯一识别其组中的最新版本。如果该版本的最佳可用精度落在一个范围内,那么我们所能做的就是识别哪些目标超出该范围。尽管如此,确切知道超过 20,000 个防火墙暴露在互联网上已达到支持终止期并非微不足道。
最后,我们将查看有多少设备受高和/或关键漏洞影响,首先按系列查看(受多个漏洞影响的目标根据最高严重性分类)。
图 10 - 按系列的漏洞状态
该视图(图 10 - 按系列的漏洞状态)的好消息是大多数系列 6 设备未受影响。坏消息是,我们可以自信地说,大多数在线暴露的系列 7 设备受至少一个高或关键严重性漏洞影响。正如我们 earlier 强调的, significant 比例的系列 7 设备落后于当前固件发布,而这 unfortunately 是结果。
图 11 - 按系列的漏洞状态(百分比)
百分比视图(图 11 - 按系列的漏洞状态(百分比))揭示了一些额外兴趣点:系列 4 设备,尽管终止支持,仍然不受任何已发布漏洞影响。我们对系列 5 设备的可见性不足,大多数暴露落在版本范围内,这些范围未给我们清晰的漏洞状态指示。
当谈到关键漏洞时,至少 7%的系列 6 和系列 7 设备受到影响,这引向我们最终的图表——大局视图。
图 12 - 漏洞状态
在扫描互联网以识别暴露的 SonicWall 防火墙及其固件版本后,我们发现 119,503 个设备受严重漏洞影响——25,485 个关键严重性和 94,018 个高严重性。受影响设备占确认暴露的 28%,而 223,333 个(52%)暂时未受影响。另外 87,527 个设备(20%)的状态无法使用我们当前方法确定。
上次我们查看 SonicWall 防火墙安全状态时,我们发现超过 178,000 个在线暴露设备易受 CVE-2022-22274 和/或 CVE-2023-0656 攻击。幸运的是,在过去的十个月中,这个数字似乎有所下降。虽然我们这次没有执行相同的漏洞测试,但基于我们看到的暴露版本,受影响目标的数量现在看起来 closer 到 37,000。然而,正如我们已经看到的,一批新漏洞已经出现取代了那两个,总体数字看起来并没有好多少。信息保持不变:尽早并经常打补丁!
方法论
为了识别互联网上潜在的 SonicWall 防火墙,我们查询了 Shodan 和 BinaryEdge 中分类为“SonicWall”的 HTTP/S 服务,并收到了大约 732,000 个唯一目标(IP 地址和端口组合)。我们用专有脚本扫描这些目标,该脚本检查多个 URL 路径的响应头、状态代码和正文内容,以确认可访问性,验证防火墙管理和 SSL VPN 接口,并筛选出低交互蜜罐。出于好奇,在大约 400,000 个确认暴露中,Shodan 和 BinaryEdge 各贡献了约 100,000 个唯一目标,这些目标未被其他服务提供。剩余的 200,000 个目标存在于两个数据集中。
然后,我们使用专有技术分析响应数据,以确定底层 SonicOS/X 固件最精确的版本(或版本范围)。如上文多处所述,这些技术存在局限性,导致我们识别任何给定目标版本的精度水平存在差异。我们尽最大努力仅呈现高置信度结果,并在适当时指示模糊性。
为了确定支持状态,我们将 SonicWall 的产品生命周期表信息与 mysonicwall.com 下载中心列出的固件版本相关联。为了确定漏洞状态,我们审查了所有影响下一代防火墙的关键、高或中严重性的 SonicWall 公告。我们枚举了每个公告的影响版本(考虑上文“暴露分析”中描述的版本组),并将影响版本合并为基于每个影响的最高严重性漏洞的集合。有趣的是,所有中严重性影响都被高严重性影响覆盖。
一旦我们映射了哪些版本与哪些支持状态和漏洞状态相关联,我们使用每个目标的最佳可用精度对其进行适当分类,然后聚合结果。应注意的一个限制是,某些漏洞仅影响特定设备型号,而我们的指纹识别技术未识别型号,因此尽管某些目标的版本在易受攻击范围内,但可能不受影响。我们的感觉是这对我们的结果影响最小,因为版本和型号之间往往存在高度相关性(即每个型号只能运行有限的一组版本,并且具有类似版本支持的型号往往出现在相同的公告中)。
结论
总体而言,我们的互联网范围调查结果告诉我们,SonicWall 安全状态虽然显示出进展迹象,但仍面临重大挑战。超过 430,000 台防火墙设备可公开访问这一简单事实就足以引起担忧,但当你加上超过一半在过时硬件上运行,并且超过四分之一受严重漏洞影响时,大局看起来相当令人担忧。
这里的亮点是,我们有证据表明大多数设备随时间推移正在打补丁(如 CVE-2022-22274 和 CVE-2023-0656 受影响目标的下降所示)。问题似乎是打补丁的速度跟不上新漏洞的速度。值得重复:尽早并经常打补丁。
鉴于 Zero Day Initiative 最近宣布了四个新的即将影响 SonicWall 产品的高和关键漏洞,似乎在未来几个月中,管理员将再次争先恐后地查找和修复其设备。Bishop Fox Cosmos 的客户可以放心,我们将在下一次公告发布时(有时更早)通知他们受影响设备,以便他们知道弱点在哪里,可以立即打补丁,并能够采取进一步措施减少暴露。
我们希望您享受这次对互联网上 SonicWall 安全状态的深入探讨!请继续关注本系列博客的最后一部分,其中我们将逐步介绍逆向工程和解密 SonicOS/X SIG 格式固件(这些固件构成可用固件镜像的大部分)。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论