AFLNeTrans:状态间关系感知的网络协议模糊测试.pdf
《AFLNeTrans:状态间关系感知的网络协议模糊测试.pdf》由会员分享,可在线阅读,更多相关《AFLNeTrans:状态间关系感知的网络协议模糊测试.pdf(12页珍藏版)》请在咨信网上搜索。
1、NETINFOSECURITY2024年第1期理论研究doi:10.3969/j.issn.1671-1122.2024.01.012AFLNeTrans:状态间关系感知的网络协议模糊测试一洪玄泉,贾鹏,刘嘉勇(四川大学网络空间安全学院,成都6 10 0 6 5)摘要:网络协议是现代通信系统中不可缺少的部分,其实现程序的安全性不容忽视。模糊测试已经成为现代漏洞挖掘的主流方式,并在软件安全领域中取得了较大的成功。网络协议模糊测试通常指对网络协议实现程序进行模糊测试,然而传统模糊测试在此类程序的测试上仍存在一些问题。首先,由于网络协议实现程序中不同状态对应不同代码,传统灰盒模糊测试中使用的代码覆盖
2、不能表示网络协议实现程序的内部状态。其次现有灰盒协议模糊器中的状态引导机制依赖于代码覆盖率,不能很好地挖掘网络协议实现程序的状态间关系。对此,文章提出了一种由协议状态间关系和程序代码覆盖率共同引导模糊测试过程从而提升模糊测试效果的模糊器AFLNeTrans,其利用状态间关系作为主要引导机制,引导模糊测试快速探索协议实现程序更多的状态空间,并在Profuzzbench上对其进行了评估实验。实验结果表明,AFLNeTrans 在发现状态转移数量上有较明显的提升,并且在代码覆盖率和unique_crash数量上相比现有工具也有提升。关键词:软件测试;模糊测试;网络协议;状态引导中图分类号:TP309
3、文献标志码:A文章编号:16 7 1-112 2(2 0 2 4)0 1-0 12 1-12中文引用格式:洪玄泉,贾鹏,刘嘉勇AFLNeTrans:状态间关系感知的网络协议模糊测试J.信息网络安全,2 0 2 4,2 4(1):12 1-132.英文引用格式:HONG Xuanquan,JIA Peng,LIU Jiayong.AFLNeTrans:Fuzzing ofProtocols with State RelationshipAwarenessJJ.Netinfo Security,2024,24(1):121-132.AFLNeTrans:Fuzzing of Protocols w
4、ith State Relationship AwarenessHONG Xuanquan,JIA Peng,LIU Jiayong(School of Cyber Science and Engineering,Sichuan University,Chengdu 610065,China)Abstract:Network protocols are essential components of modern communicationsystems,and the security testing of their implementation programs is of great
5、importance.Fuzzing has become the mainstream method for modern vulnerability discovery,and has收稿日期:2 0 2 3-0 9-0 4基金项目:国家重点研发计划2 0 2 1YFB3101803作者简介:洪玄泉(19 9 9 一),男,广西,硕士研究生,主要研究方向为二进制安全;贾鹏(19 8 8 一),男,河南,副教授,博士,CCF会员,主要研究方向为漏洞挖掘和软件动静态分析;刘嘉勇(19 6 2 一),男,四川,教授,博士,主要研究方向为网络应用安全和信息内容安全。通信作者:贾鹏121NETINF
6、OSECURITY理论研究2024年第1期achieved great success in the field of software security.Traditional fuzzing still has someproblems in testing network protocol implementation programs.First,since different states innetwork protocol implementation programs correspond to different codes,the code coverageused in
7、traditional gray-box fuzzing cannot accurately represent the internal state of networkprotocol implementation programs.Second,the state guidance mechanism in existing gray-box network protocol fuzzers depends on code coverage,which cannot effectively mine thestate relationships in those programs.To
8、address the above problems,this paper proposedAFLNeTrans,a fuzzer that guides the fuzzing process by both protocol state relationships andprogram code coverage to improve the fuzzing effect.AFLNeTrans used state relationshipsas the main guidance mechanism to guide fuzzing to quickly explore more sta
9、te space ofnetwork protocol implementation programs.AFLNeTrans was evaluated on a benchmark ofwell-known protocol fuzzers.Experimental results show that AFLNeTrans has a significantincrease in the number of state transitions found,and also has an improvement in codecoverage and unique_crash number c
10、ompared to existing tools.Key words:software test;fuzzing,network protocol;state guide0引言近年来,软件安全问题逐渐成为大众关注的焦点。随着技术的不断发展,各种形式的软件安全问题给国家和社会带来了极大的危害!。在此背景下,网络协议作为网络设备之间的通信规则,在整个网络传输中具有重要的作用。尽管网络协议拥有接近完美的设计规范,但在其程序开发过程中,开发人员容易考虑不到所有因素,从而引人安全漏洞。网络协议实现程序是网络基础设施攻击面的主要组成部分,其通过特定的协议接口向用户暴露,因此可能会接收到来自恶意用户的数据
11、包。若程序本身存在漏洞或缺陷,就可能导致远程代码执行、拒绝服务和信息窃取等攻击。据统计,网络协议实现程序高危漏洞的数量每年都在持续增加2 。例如,2 0 14年,SSL协议的开源软件实现OpenSSL被曝出心脏出血漏洞(HeartbleedVulnerability)3,攻击者可以利用该漏洞窃取用户隐私信息;2 0 17 年,Windows操作系统中SMBv1协议被黑客组织曝出永恒之蓝漏洞(EtermalBlue)4,导致全球范围内发生了严重的网络攻击。漏洞挖掘是检测软件安全的主要途径之一。在自动化挖掘漏洞的方法中,灰盒模糊测试已然成为主流之一。近年来,许多软件中的严重错误和漏洞不断被披露,A
12、FL5/AFL+、Li b Fu z z e r 6 、H o n g g Fu z z/7 等模糊器已在开源软件和一些商业软件中发现了数千个漏洞。传统灰盒模糊工具通常依赖代码覆盖率来指导整个模糊测试。但是,并非所有软件都能直接从灰盒模糊工具中受益。网络协议实现程序无法直接从文件中读取测试用例,需要从网络中接收客户端请求来调用相应的回调函数。同时,网络协议实现程序内具有大量的状态空间,与客户端交互的过程中会实时更新自身内部状态。传统模糊测试工具使用的代码覆盖率无法直接反映协议程序内部状态。对网络协议实现程序进行模糊测试时,模糊器通常需要充当客户端,网络协议实现程序运行在待测服务器上。模糊器通过
13、特定的端口与网络协议实现程序进行交互,客户端生成并发送数据包,同时接收来自待测服务器的响应包。待测服务器接收来自客户端的数据包,处理请求后更新内部状态,并将处理结果返回客户端。目前针对网络服务器的模糊测试主要有两种方法。第一种是黑盒协议模糊测试,这种方法速度较快,代表性工作有Peach8和Boofuzz9。主流方法是使用定制模板生成测试数据包并发送到指定待测端口处,根据服务器响应时间等侧信道信息,来识别软件程序中是否存在的安全隐患。但协议原语的编写需要大量的专家经验和人力介人,并且黑盒模糊测试不能获取服务器内部反馈信息来提高生成测试用例的质量,存在较大的随机性,会浪费很多时间在无效的测试用例上
14、。第二种是灰盒协议模糊测试。一些研究人员将122NETINFOSECURITY2024年第1期理论研究灰盒模糊测试技术移植到网络上。2 0 2 0 年,用于网络服务器的有状态的灰盒模糊器AFLNET10I被提出,它将传统模糊测试中的文件型测试用例拆分成消息链,使用消息级别的变异方法对数据包进行变异,并通过网络通信的方式发送。AFLNET通过分析网络服务器响应包内容来提取服务器内部状态,从而实现对某个特定状态进行模糊测试,同时可以获取待测服务器的代码覆盖率,提高测试用例的有效性。然而,由于网络服务器程序的复杂性,现有的协议灰盒模糊工具不能高效地探索网络协议服务器状态空间。主要的挑战有两个方面:1
15、)状态引导不够全面,当下较流行的灰盒模糊器仍使用代码覆盖率来引导模糊测试进化方向,首先在每轮测试之前选取感兴趣的状态,然后选择可以到达此状态的种子对目标进行测试,最后基于服务器反馈的状态序列来更新内部信息。只有发现了新的代码覆盖率,模糊器才会用状态序列更新状态机,这在本质上忽略了各状态之间的潜在转移关系。2)在网络协议实现程序中,很多深层次代码的触发往往需要特定的前置状态,直接使用代码覆盖率更新状态机,可能导致模糊器忽略掉某些状态的转换关系,而漏洞和错误可能存在于这些转移中。本文在AFLNET的基础上提出了一种可感知协议状态间关系的灰盒协议模糊测试工具AFLNeTranS。针对AFLNET状态
16、引导不够全面的问题,本文的AFLNeTrans在模糊测试过程中不仅记录每次测试得到的服务器状态序列,还能学习状态序列内状态之间的转移信息。在后续迭代过程中,这些状态转移信息将会在状态选择、种子保留和能量调度3个方面引导模糊测试的方向。在状态选择阶段,为了解决每个状态测试的充分性问题,本文将状态的选择构建为多臂老虎机问题,并使用Epsilon-Greedy算法12 结合状态转移信息的方案来解决。在种子保留阶段,那些被触发新状态覆盖的种子也会加人到种子队列中,继续参与后续模糊测试流程。在能量调度阶段,可以触发更多唯一状态转移的种子将会被分配更多的能量,能得到更多的变异机会。实验结果表明,AFLNe
17、Trans在状态转移数量、代码覆盖率和uniquecrash数量上都有明显的提升。本文所作贡献如下。1)全面分析了当前最流行的协议灰盒模糊器AFLNET,并指出其设计缺陷以及影响模糊测试效率的原因。2)在代码覆盖率引导基础上,提出了一种状态覆盖率引导机制,定义了一个状态转移位图。该位图会在种子保留阶段与代码覆盖率位图一起决定种子去留,在能量调度阶段更加合理地分配种子能量。3)在状态选择阶段,提出了状态激励的多臂老虎机算法方案,能够提升选择状态的效果。并在能量调度阶段考虑了状态转移的唯一性来对种子进行优先级控制。4)实现了一种基于状态间关系进行引导的灰盒协议模糊测试工具AFLNeTrans,并通
18、过实验验证了其有效性,在转移数量、代码覆盖率、unique_crash数量上都要优于基准协议模糊器。1背景及动机1.1灰盒模糊测试现有的灰盒模糊测试工具使用插桩技术来记录被测程序的代码覆盖率,并结合有效的遗传算法引导模糊测试。这种模糊测试仅依赖于运行时从目标程序收集到的轻量级指标(如关于测试用例覆盖的代码块和分支),并迭代地变异种子文件以最大化这些指标。因此,灰盒模糊测试可以从一组初始的种子语料库开始自动进化,无需任何关于待测目标的先验知识就可以完成对目标的测试。AFL(A me r i c a n Fu z z y Lo p)是一个比较有代表性的灰盒模糊器,使用边覆盖率表示代码覆盖率,能够识
19、别那些改变被测程序控制流的测试用例并保存,使得这些测试用例可以在之后的测试中使用。AFL的工作流程主要是:1)加载用户提供的初始种子文件到测试队列中。2)筛选出合理的种子,对其进行变异操作,并将变异后得到的新测试用例投喂给待测程序执行。3)若该测试用例触发了新的代码覆盖,则将该种子保存到测试队列中;否则,直接抛弃123NETINFOSECURITY理论研究2024年第1期这个测试用例。4)重复步骤2)步骤3)的过程,直到AFL收到终止信号。许多研究人员致力于智能化灰盒模糊测试技术,由AFL衍生出了很多灰盒模糊器,如 AFLFast13、Co l l A FL14、M O PT 15、T o r
20、 t o i s e Fu z z 1 GREYONE17、Q SYM 18 和 IJON19 等。传统灰盒模糊器在测试无状态的程序时效果较好,但面对有状态的程序时,由于代码覆盖率不能有效地表示程序内部状态,测试效率较低。此外,网络协议实现程序需要通过客户端交互来推进状态的转换,其深层次的代码只有满足特定的前置状态后才会被后续交互的测试用例触发。而传统灰盒模糊器只是将测试用例一次性通过文件形式投喂给待测程序,不满足网络交互需求,因此难以探索深层次的代码。1.2网络协议实现程序的模糊测试网络服务器的模糊测试一般以黑盒测试为主。研究者开发了几款黑盒模糊器,如Sulley/20、Pe a c h 和
21、Boofuzz,这些模糊器需要手动定义协议的规范模型和协议语法的有限状态机模板生成测试用例、构建消息序列,并对待测服务器进行测试。黑盒模糊测试的有效性很大程度上由开发人员对协议的理解和编写模板的质量决定。此外,黑盒模糊测试无法获取程序内部的运行时信息,如代码覆盖和数据流信息等,不会保留那些可以发现协议模型未知状态的种子来提高生成消息的质量。近年来,许多研究员致力将灰盒模糊测试运用到网络协议服务器上。THUAN211为解决协议服务器灰盒模糊测试过程的交互问题,提出了一种基于AFL的支持网络功能的无状态模糊器AFLNWE,使用TCP和UDP传输协议对网络服务器进行模糊测试,将测试用例读到缓冲区,使
22、用Socket通信方式传递到服务器接口。所有数据发送完毕后,通过检测服务器的代码覆盖率来更新种子队列。但AFLNWE仍然没有解决交互问题,且只用到了传统代码覆盖率的反馈。随后PHAM10)基于AFLNWE推出了一种有状态的灰盒网络协议模糊器AFLNET,将消息序列和网络协议状态序列这加人AFLNWE。A FLNET 将测试用例按照一定的规则拆分成消息序列,通过Socket的方式依次传输到待测服务器,同时收集并按照规格分析从服务器返回的响应包,提取服务器的状态码来组成状态序列,然后根据每次测试的状态序列构建状态机,结合代码覆盖的信息来引导模糊测试的进化方向。AFLNET首先在每轮迭代时从状态集合
23、中选出待测目标状态,然后从测试队列中选出可以到达目标状态的种子文件,按协议预定义将该种子的消息序列分为M1、M 2、M 3三部分,其中M1用于到达目标状态;M2则用于变异产生新的数据包来测试目标状态;M3表示剩下的消息序列,用于结束本次交互。其次,对M2变异后,与M1和M3重组成新的测试用例发送到待测服务器。最后根据网络数据包的特性,AFLNET在AFL原有HAVOC变异的基础上增加了消息序列级别的变异策略,一定程度上提高了变异有效性。后续的网络灰盒模糊测试基于AFLNET衍生出很多变体。例如,LIU2等人使用蒙特卡洛树搜索算法来优化模糊测试中状态机构建,并提出新的状态选择算法,实现了AFLN
24、ET_LEGION;St a t e A FL2 3 对内存操作函数做插桩,每次网络迭代过程中通过检测内存来收集更细粒度的状态信息,避免编写协议数据包提取代码的人工介人,能够更细粒度地表示服务器状态,但引入了较大的运行时开销;SNPSFuzzer24利用快照技术对待测目标的位置拍摄进程快照,当需要测试服务器特定状态时直接从快照文件恢复到状态对应的位置,从而可以避免前置消息序列的发送时间,提高了测试效率;SnapFuzz/25将文件系统重定向到快速读写的内存文件系统来优化文件读写性能,同时通过消除同步延迟来加速网络通信;SGFuzz26基于Libfuzzer,使用Honggfuzz的一款插件,将
25、网络传输重定向到文件传输,并通过源代码级别插桩监控程序变量的方式构建状态转移树以引导模糊测试;NSFUZZ27 通过对状态变量的操作语句插桩来检测服务器状态,同时识别网络循环事件的入口点,将该入口点作为模糊器向服务器发送测试用例的同步信息,从而消除模糊124NETINFOSECURITY2024年第1期理论研究测试过程中无效的等待时间,加快了数据吞吐速率。现阶段的灰盒协议模糊测试主要研究加快交互速度和整体状态引导两方面。然而,现有针对状态引导的研究都未能深人探讨各个状态间的相互关系。1.3现有问题分析现有的针对网络协议服务器的灰盒模糊器在状态引导层面只考虑到了状态表面的情况,而忽略了状态之间的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AFLNeTrans 状态 关系 感知 网络 协议 模糊 测试
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。