版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
G网络协议中针对核心网NGAP协议的Fuzz测试框架设计与实现分析目录TOC\o"1-3"\h\u165555G网络协议中针对核心网NGAP协议的Fuzz测试框架设计与实现分析 -1-72721.1设计目标与需求 -1-227101.2总体架构设计 -2-304461.3主要功能模块的设计与实现 -3-76321.3.1连接建立模块 -3-296271.3.2数据包变异模块 -4-257811.3.3数据包发送模块 -7-5831.3.4反馈记录模块 -8-158711.4NGAP协议模糊测试流程 -8-1.1设计目标与需求 与软件、文件等模糊测试样本不同,通信协议有严格的格式规定。不符合格式的数据包会在解码过程中被大量丢弃,无法达到模糊测试的目的,测试效率低。此外,通信协议的业务流程之间还有着紧密的逻辑关系,如果不考虑逻辑关系,就不能实现对协议业务功能的全遍历。因此,为提高模糊测试效率和覆盖率,需要针对特定的通信协议开发其专有的模糊测试框架。NGAP协议是位于5G核心网N2接口的协议,为NG-RAN和AMF提供信令服务。为保证协议传输的可靠性,NGAP协议是建立在SCTP传输协议之上的应用层协议。因此,在进行NGAP协议的模糊测试时,首先要建立NG-RAN与AMF的SCTP连接,保证数据包的可达性,可以完成NG-RAN与AMF之间的正常信令交互。在此基础上,对正常信令进行变异生成异常数据包,并根据NGAP协议的业务流程按序发送变异数据包,完成对AMF网元健壮性的测试。针对NGAP协议的模糊测试系统的需求如下:系统可以实现模拟NG-RAN建立与AMF的连接,实现NGAP协议栈,完成与AMF基于NGAP协议的正常信令交互,并且可以正确处理AMF发出的数据包。实现基于信息元素和字段的多层次NGAP协议模糊测试策略,并根据该策略对NGAP协议数据包进行变异,尽可能降低AMF在数据包解码阶段的丢包率,提高模糊测试效率。基于有限状态自动机实现对NGAP协议发送数据包序列的编排,使模糊测试尽可能多的遍历NGAP协议的业务流程以及AMF网元的状态,提高模糊测试的覆盖率。实现对AMF网元状态的反馈和模糊测试结果的分析,首先对网元的状态进行实时监控,尽可能的实现自动化的模糊测试。其次对网元的崩溃点进行记录,记录造成崩溃的数据包,实现漏洞的复现,根据网元的日志文件,分析造成崩溃的原因。1.2总体架构设计本文将NGAP协议模糊测试框架分为四个模块(如图4-1)。连接建立模块:主要功能是模拟NG-RAN与AMF建立SCTP连接,保证在模糊测试过程中与AMF的正常连接,包括在AMF崩溃重启后,与AMF连接的重新建立;对建立连接的接口进行监听,接收由AMF网元发送的数据包。数据包变异模块:主要有三个功能:根据模糊测试策略,完成对NGAP协议数据包的变异;数据包封装包括对正常数据包以及变异后异常数据包的封装;数据包修复是指在生成变异数据包后,对关联字段以及校验字段进行重新计算。数据包发送模块:此模块主要的功能是在数据包变异完成后,根据AMF网元状态转移自动机和目标测试流程,完成对要发送数据包序列的组合,根据数据包发送序列按序发送数据包到AMF网元。反馈和记录模块:主要有两个功能,一个是对AMF网元状态的监视,判断其是否正常运行。其次是记录功能,对造成AMF网元崩溃的数据包进行记录,以便实现后续的漏洞复现与分析。图4-1针对NGAP协议的模糊测试框架功能模块图1.3主要功能模块的设计与实现1.3.1连接建立模块SCTP同时具有TCP协议面向连接和UDP协议面向消息的特点。与TCP相同,SCTP提供可靠、顺序、流控制和全双工的数据传输。在此基础上,SCTP支持多宿主并且可以同时处理多个数据流,相较于TCP协议容错能力更强,且SCTP不支持半开放连接,可以更好的抵御中MITM攻击和拒绝服务攻击,具有更好的安全性。与UDP相同,SCTP也支持不可靠的传输和数据包乱序传递,但是SCTP具有连接检测功能,可以检测丢失和重复的数据包。在本课题中使用开源的SCTP库[25]实现SCTP连接,以及NGAP数据包的发送与接收。NG-RAN与AMF建立SCTP连接具体实现如图4-2所示。图4-2NG-RAN与AMF网元建立SCTP连接实现代码流程在进行模糊测试时,数据包发送前需要对AMF网元的状态进行判断,本课题中使用的判断方法是,在发送数据包前尝试与AMF网元建立新的SCTP连接,如果连接失败,则表示AMF网元已经崩溃,此时需要重新启动网元,并与AMF网元重新建立新的连接。1.3.2数据包变异模块数据包变异模块主要实现了三个功能,正常数据包封装与发送,数据包中相关字段的变异,变异后数据包的修复(长度计算,鉴权参数RES和完整性校验码MAC计算)。数据包封装首先对NGAP协议正常信令进行封装,作为模糊测试的种子。利用Free5GC生成NGAP数据包的代码,生成NG-RAN侧发送到AMF网元的数据包,使用Wireshark抓取数据包分析数据包格式,将生成的数据包发送到AMF网元,观察AMF网元响应,根据核心网反馈信息,结合3GPP标准,对数据包中的错误字段进行修改,最终得到由NG-RAN向AMF网元发送的正确数据包,并对这些数据包进行封装,具体封装流程如图4-3所示。NGAP协议的数据包是由消息头部和若干信息元素IE组成的,首先对信息元素IE进行封装,之后根据3GPP标准填充数据包的控制字段,并选择相应的IE组成数据包。此外,针对部分承载了NAS消息的信息元素NAS-PDU还需计算鉴权参数RES和消息鉴别码MAC。图4-3NGAP正常数据包封装实现代码流程数据包变异首先是IE信息元素层面的变异,将数据包中信息元素ID进行随机变异,变异范围为0-173,是3GPP标准中定义的所有信息元素ID,若超过此范围,Free5GC会因无法解析IE将数据包丢弃,因此,在该范围内进行变异,可以导致数据包中部分信息元素丢失或者错误,但是大概率不会引起Free5GC丢弃数据包。字段层面的变异,将封装后的IE,以及变异的起始位置和长度等作为参数传递到变异函数中完成信息元素关键字段的变异,将变异后的IE组成变异后的数据包。变异策略:EnumChoiceMutator:针对Enumerated和Choice字段的变异策略,在字段取值范围内进行遍历,边界值替换。主要参数为变异字段所在信息元素IE,字段起始位置,字段长度,范围。Bit(s)Flip:翻转步长为1,即对变异字段每隔1比特进行一次翻转,每次翻转1/2/4比特,翻转操作,即将被翻转字段执行按位取反操作。Byte(s)Arith:选取字段中随机的单字节、双字节或四字节进行加减变异,即随机加上或减去一个数,被运算字节的大小端顺序随机。Byte(s)Interest:对字段中的单字节、双字节、多字节进行替换操作,例如:替换为边界值。Byte(s)Shuffle:对字段中的字节进行随机排序。Byte(s)Insert/Erase:在字段随机位置插入或删除随机长度字符串。Byte(s)Clone/Cover:随机拷贝字段中的一部分插入到字段的随机位置或直接覆盖原字段的随机字节。注:第(2)-(7)中变异策略的参数均为(变异字段所在信息元素IE,字段起始位置,字段长度)变异策略的组合:Sequential顺序测试,对数据包中需要变异的所有字段进行逐一测试,对每个字段使用该字段对应的所有变异方法。Random随机测试,随机选择数据包中需要变异的一个或者多个字段,对被选中的字段随机执行一个变异策略。Havoc随机测试,随机选择数据包中需要变异的一个或者多个字段,对被选中的字段随机执行多个变异策略。注:变异策略的组合只针对变异策略(2)-(7)数据包变异函数,首先对字段进行分类,对于Enumerated和Choice字段采取变异策略一,遍历和边界值替换,主要目的是触发新的协议状态和发现边界值处理异常。其他的数据类型,在执行变异策略时,首先要对字段长度进行判断,因为有些变异策略,例如:变异策略(3)Byte(s)Arith,对双字节或四字节进行加减运算,要求待变异字段长度大于两字节或四字节。因此需要先对字段长度进行判断,得到可执行变异策略范围。针对Integer类型主要采用比特翻转,加减运算,替换变异(替换为Integer类型的边界值),即变异策略(2)-(4)。其中Integer类型的边界值设定为Integer占用长度所能表示的最大无符号整数值。当Integer长度为n,其边界值为2n×8针对BitString和OctetString采用所有的变异策略进行变异。数据包修复 在执行完变异策略后,需要对数据包的关联字段和校验字段进行重新计算。关联字段:首先对信息元素长度(IE的第4个字节)和数据包长度(数据包的第4个字节)根据变异后的实际信息元素长度和数据包长度进行修改。校验字段:校验字段主要有两个一个是RES另一个是MAC。在接收到AMF网元发送的DownlinkNASTransportAuthenticationRequest数据包后需要读取RAND字段和AUTN中的SQN_XOR_AK两个字段,作为后续生成校验字段的参数。在发送UplinkNASTransportAuthenticationResponse数据包时,需要重新计算RES值并填充到信息元素NAS-PDU中。在接收到AMF发送的DownlinkNASTransportSecuritymodecommand后所有的上行信息中的信息元素NAS-PDU都需要计算MAC值。数据包变异和修复功能的具体实现如表4-1所示。表4-1数据包变异和修复功能伪代码Algorithm1:数据包变异模块算法Input:MessageType–消息类型,IEs–数据包包含的信息元素,Rand、SQN_XOR_AK–鉴权和完整性保护参数Output:NGAPPacket–NGAP数据包1.forIEinIEsdo2. /*对信息元素中的字段进行变异*/3.FieldBasedMutation(IE,Mutator_strategy,field_start,field_length,field_type…);1./*重新计算并修改变异后信息元素长度*/5. RecalculateIELength(IE,IE_Length_After_Mutation);6. ifIEcontainsRESthen7. /*重新计算并修改鉴权参数RES*/8. RecalculateRES(IE,Rand);9. elseifIEcontainsMACthen11./*重新计算并修改消息鉴别码MAC*/12. RecalculateMAC(IE,Rand,SQN_XOR_AK); 13. else11.continue;15. endif16.endfor17./*生成变异后数据包*/18.NGAPPacket←NGAPPacketGenerator(MessageType,IEs);19./*重新计算并修改数据包长度*/20.RecalculatePacketLength(NGAPPacket,Packet_Length_After_Mutation);21.returnNGAPPacket1.3.3数据包发送模块数据包发送模块根据AMF网元的有限状态自动机来实现NGAP协议数据包发送序列,NGAP数据包主要可以分为两种,一种是有响应的,一种是无响应的。如果待发送数据包的前一个数据包是有响应的,则根据AMF网元发送到NG-RAN的数据包判断下一个要发送的数据包,其中数据包类型的判断基于数据包的前三个字节(MessageType+ProcedureCode),如果前一个数据包没有响应数据包,则根据上一个发送的数据包判断AMF网元状态,并决定下一个发送的数据包。具体实现流程如表4-2所示,首先对测试的业务流程进行选择,根据业务流程执行相应的自动机,根据要迁移到的AMF网元状态调用不同的动作函数TransportTo…State。执行迁移到下一个状态需要执行的动作,包括数据包生成、变异、修复,数据包发送,数据包接收(部分状态转移不需要接收数据包)。之后通过与AMF网元建立连接测试网元的可达性,如果AMF不可达,则自动机回到初始状态。表4-2数据包发送模块伪代码Algorithm2:数据包发送模块算法Input:TestProcedure-要测试的业务流程,TestState–要测试的AMF网元状态Output:∅1./*根据TestProcedure调用相应流程的状态自动机*/2.functionStateTransition(TestProcedure,TestState)3./*根据要迁移到的网元状态,逐个调用状态转移函数*/1.functionTest(ProcedureName)Procedure(TestState)5.forstate<TestStatedo/*state初始值为InitialState*/6./*状态转移函数,即转移到下一个状态要执行的动作*/7.functionTransportTo(StateName)State(∅)8. ……/*调用数据包变异模块算法*/9. SendPacket(NGAPPacket,length);/*发送变异数据包*/10. RecvPacket(length);/*接收来自AMF网元数据包*/11./*测试AMF网元的可达性*/12.AMFState←TestConnection(AMF_IP,N2_Port);13. ifAMFStateisreachablethen11. state←NextState;/*如果AMF网元状态可达,则进入下一个状态*/15.else16. state←InitialState;/*如果AMF网元状态不可达,则回到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市数字供应链体系融合演进与生态重构(年)行业发展报告
- 游泳池给水系统安装验收记录
- 2026年房地产评估师《土地估价基础与实务》真题卷(附解析)
- 2026年全国中小学生安全知识竞赛试题库及答案
- 排水管道CIPP紫外光固化修复专项方案
- 医院不合理检查整改措施报告
- 2026版电工(初级)复审考试模拟题库全考点含答案
- 2026年苏教版高二第二学期政治期末课后巩固测评卷(附答案可下载)
- 2026年苏教版二年级英语期末易错专项突破试卷(含答案可下载)
- 山东威海市2026届高三第二次模拟模拟考试语文试题及参考答案
- 2026辽宁沈阳新具创新科技有限公司招聘5人备考题库及一套完整答案详解
- 2026年西双版纳州妇幼保健院医护人员招聘笔试备考题库及答案详解
- 2025年新疆初二地生会考考试真题及答案
- 2025-2026学年统编版九年级语文下册《出师表》知识点梳理
- (2026年版)《胰岛素静脉输注临床应用专家共识》2026版课件
- 竣工结算审核配合方案
- 2026年重庆市中考政治试题(附答案)
- 2025年广东省广州市初二学业水平地理生物会考真题试卷+解析及答案
- 通信器材入库检验手册
- 2025年卫生管理初级师考试真题及全及答案
- 人工智能训练师三级理论知识试题及答案
评论
0/150
提交评论