《Sensors》:A Stateful Fuzzing Methodology for Security Verification of 5G Core Equipment
编辑推荐:
随着第五代(5G)网络向开放和基于软件的架构演进,无线接入网与5G核心网之间的NG应用协议(NGAP)的安全验证变得日益重要。本文提出了一种结合有状态模糊测试与规范引导的安全验证的有状态安全验证方法。该方法从第三代合作伙伴计划(3GPP)规范中推导出接入和移动
随着第五代(5G)网络向开放和基于软件的架构演进,无线接入网与5G核心网之间的NG应用协议(NGAP)的安全验证变得日益重要。本文提出了一种结合有状态模糊测试与规范引导的安全验证的有状态安全验证方法。该方法从第三代合作伙伴计划(3GPP)规范中推导出接入和移动性管理功能(AMF)状态模型、变异类型和预期行为。对于每个攻击场景,它通过正常的NGAP过程建立所需的连接状态,注入变异消息,并将观察到的AMF响应和处理日志与规范定义的预期行为进行比较。研究人员使用每个实现324个攻击场景对四个开源5G核心网实现进行了评估,共产生1296次测试。其中,877次产生了足够的证据来解释AMF处理结果,可解释结果率为67.7%。该评估涵盖了40种上行链路NGAP消息类型中的27种,并识别出32处规范违背,包括11个安全漏洞,这些漏洞均未导致核心网崩溃。这些结果证明了在NGAP安全验证中联合考虑连接状态和规范定义行为的重要性。
移动通信网络已从封闭、以硬件为中心的系统演变为开放、软件驱动的架构。尽管这种转变提高了部署灵活性和可扩展性,但也引入了来自多个供应商的异构组件,并扩大了需要安全验证的接口集合。NG应用协议(NGAP,控制面协议)作为无线接入网(RAN)与第五代(5G)核心网之间的控制面协议,支持gNodeB(gNB)与接入和移动性管理功能(AMF)之间的注册和移动性管理等功能。传统上,运行NGAP的N2接口被视为受信任的运营商管理域的一部分,但在开放无线电接入网和私有5G部署中,gNB可能包含来自多供应商的软硬件并在物理分布式环境中运行,使得受信任端点的假设难以维持。现有的NGAP安全研究主要依赖模糊测试来检测崩溃和内存错误等,但仅达到目标状态并不能确定AMF是否正确处理了消息,如接受无效消息或省略错误响应等逻辑漏洞难以被发现。为此,研究人员提出了一种结合有状态模糊测试与规范引导的安全验证的方法,能够检测无崩溃情况下的逻辑安全漏洞,该成果发表在《Sensors》上。这项研究通过联合考虑连接状态和规范定义行为,填补了NGAP安全验证的空白,对提升5G核心网设备的安全性具有重要意义。
研究人员为开展研究用到的主要关键技术方法包括:首先,通过分析第三代合作伙伴计划(3GPP)规范中NGAP流程的依赖关系,推导出AMF连接状态模型,并定义了强制信息元素(IE)省略、语法变异、语义变异、标识符不匹配、状态违背和安全能力变异六种变异类型。其次,构建了324个结合目标连接状态、NGAP消息、变异方法和规范预期行为的基于状态的攻击场景。在执行测试时,通过正常NGAP流程建立所需的连接状态,随后注入变异消息,并收集响应和处理日志。最后,将观察到的处理结果与规范定义的预期行为进行比较以识别规范违背。测试在四个开源5G核心网实现上开展,并与5Greplay和ASNFuzzGen等现有工具进行了对比评估。
5G AMF的安全验证结果
按变异类型的可解释结果率
研究人员对四个目标核心网共进行了1296次测试,其中877次产生了可解释的AMF处理结果,总体可解释结果率为67.7%。强制IE省略的可解释结果率最高,为71.7%,其次是标识符不匹配(69.3%)和状态违背(67.8%),因为这些变异保留了ASN.1结构,使消息能够到达验证UE标识符和连接状态的解码后逻辑。语法和语义变异的结果率分别为66.8%和58.1%,因为部分输入在ASN.1解码或特定验证阶段被拒绝。安全能力变异的可解释结果率为100%。在未产生可解释结果的场景中,主要原因是变异输入违反了ASN.1结构要求或在传输后无明确的AMF响应。
按AMF状态的可解释结果率
基于状态的分析显示,针对S
3状态的测试最多(632次),其次是S
2(232次)和S
4(196次)。S
0的可解释结果率最高,为85.4%,而S
1至S
4的范围在64.3%至69.1%之间。在S
0中,变异消息无需执行前置NGAP流程即可传输。对于S
2及之后的深层状态,尽管需要完成额外的状态建立步骤,可解释结果率并未随连接状态深入而持续下降。S
4的结果率最低(64.3%),主要因为部分核心网的切换准备流程未成功完成或未产生足够日志。
漏洞分析
将877个可解释场景的观察结果与规范预期行为对比,共识别出32处规范违背,其中11处产生了安全相关影响并被归类为安全漏洞。标识符不匹配产生的违规最多。11个安全漏洞包括4个标识符不匹配、3个状态违背和4个安全能力变异,主要涉及接受与当前连接不匹配的UE标识符、在无所需UE上下文时执行后续流程以及未经验证更新UE安全能力。所有漏洞均未导致核心网崩溃或内存错误,而是作为正常流程的一部分被处理。这些漏洞已负责任地披露并被修补。
与现有NGAP模糊测试工具的比较
测试用例数量与消息覆盖率
5Greplay和ASNFuzzGen分别生成了7103和8288个测试用例,而提出的方法仅执行324个场景。然而,提出的方法测试了40种上行链路NGAP消息类型中的27种(覆盖率67.5%),而5Greplay和ASNFuzzGen分别只测试了8种(20.0%)和5种(12.5%)。现有工具通过对同一消息重复变异增加用例数,无法覆盖需前置流程的消息;提出的方法通过结合状态特有消息和变异类型,扩大了测试消息范围。
执行时间与状态覆盖率
5Greplay、ASNFuzzGen和提出的方法的平均单次测试时间分别为0.63 s、0.38 s和4.15 s。现有工具在不执行前置流程的情况下快速传输输入,仅在S
0至S
2三个状态中测试,状态覆盖率为60%。提出的方法在传输变异消息前建立所需状态,并在测试后重置,可在S
0至S
4所有五个状态中测试,实现100%状态覆盖率。这反映了测试速度与状态依赖测试范围之间的权衡。
本研究提出了一种用于5G核心网实现的有状态NGAP安全验证方法。研究人员分析了3GPP规范中的NGAP流程及其依赖关系,定义了从S
0到S
4的连接状态模型,并通过结合特定状态目标消息、变异类型和预期行为构建了324个攻击场景。在四个开源5G核心网实现上进行1296次测试后,获得了67.7%的可解释结果率,覆盖了27种上行链路NGAP消息。与现有工具相比,该方法将测试范围扩展到了需要已建立UE上下文或正在进行的切换流程的过程。对比观察到的处理结果与规范预期,共识别出32处规范违背,包括11个安全漏洞。这些漏洞包括接受与当前连接不一致的UE标识符、在无所需UE上下文的情况下执行后续流程,以及在未进行所需验证的情况下更新已存储的UE安全能力。这些漏洞均未导致核心网崩溃,而是在AMF作为正常NGAP流程处理违规输入时发生的。这表明NGAP安全验证应同时考虑接收消息的连接状态和规范要求的处理行为。该方法存在一定局限性:评估仅限于从gNB到AMF的上行链路NGAP消息;状态模型仅来自评估中包含的NGAP流程;部分场景因缺乏明确响应或日志无法确定结果;且未评估在无N2接入或gNB级协议能力的较弱攻击者模型下的可利用性。未来的研究可扩展到双向NGAP工作流,并将异常转换和恢复路径作为额外变异输入的起始条件,以更全面地探索NGAP状态空间。