基于深度强化学习的高性能导向性模糊测试方案_肖天.pdf
《基于深度强化学习的高性能导向性模糊测试方案_肖天.pdf》由会员分享,可在线阅读,更多相关《基于深度强化学习的高性能导向性模糊测试方案_肖天.pdf(11页珍藏版)》请在咨信网上搜索。
1、2023 年 4 月 Chinese Journal of Network and Information Security April 2023 第 9 卷第 2 期 网络与信息安全学报 Vol.9 No.2 基于深度强化学习的高性能导向性模糊测试方案 肖天1,江智昊1,2,唐鹏1,黄征1,郭捷1,邱卫东1(1.上海交通大学网络空间安全学院,上海 200240;2.哥伦比亚大学,美国 纽约 10027)摘 要:随着移动互联网与信息技术的快速发展,越来越多的应用程序融入人们的生活,但这些应用程序中存在的漏洞严重威胁着用户隐私和信息安全。近年来,模糊测试作为流行的漏洞挖掘技术之一,因其漏洞易复现
2、且误报率低的特点而被广泛地使用。它能随机生成测试用例并执行程序,通过覆盖率或样本生成方面的优化以检测更深的程序路径。但是模糊测试中的变异操作存在一定的盲目性,易使生成的测试样本执行相同程序路径。因此传统模糊测试普遍存在挖掘效率低、输入构造的随机性强、算法对程序结构针对性有限等问题。针对上述问题,提出了基于深度强化学习的高性能导向性模糊测试方案,通过程序插桩等方法获取程序运行时的信息,使用深度强化学习网络指导模糊测试选择测试样本,生成有针对性和导向性的测试样本以快速逼近并检验可能存在漏洞的程序路径,从而提高模糊测试的效率。实验表明,在 LAVA-M 测试集与真实应用程序 LibPNG 和 Bin
3、utils 上,所提方案比流行模糊测试工具 AFL 与 AFLGO 在漏洞检测与复现等方面有着更好的表现,因此该方案可为今后的漏洞挖掘和安全研究提供支撑。关键词:漏洞挖掘;模糊测试;深度强化学习;程序路径 中图分类号:TP393 文献标志码:A DOI:10.11959/j.issn.2096109x.2023027 High-performance directional fuzzing scheme based on deep reinforcement learning XIAO Tian1,JIANG Zhihao1,2,TANG Peng1,HUANG Zheng1,GUO Jie1
4、,QIU Weidong1 1.School of Cyber Science and Engineering,Shanghai Jiao Tong University,Shanghai 200240,China 2.Columbia University,New York 10027,America Abstract:With the continuous growth and advancement of the Internet and information technology,continuous growth and advancement of the Internet an
5、d information technology.Nevertheless,these applications vulnerabilities pose a severe threat to information security and users privacy.Fuzzing was widely used as one of the main tools for automatic vulnerability detection due to its ease of vulnerability recurrence and low false positive errors.It
6、generates test cases randomly and executes the application by optimization in terms of coverage or sample generation to detect 收稿日期:20221204;修回日期:20230302 通信作者:邱卫东, 基金项目:国家自然科学基金(61972249)Foundation Item:The National Natural Science Foundation of China(61972249)引用格式:肖天,江智昊,唐鹏,等.基于深度强化学习的高性能导向性模糊测试方案
7、J.网络与信息安全学报,2023,9(2):132-142.Citation Format:XIAO T,JIANG Z H,TANG P,et al.High-performance directional fuzzing scheme based on deep reinforce-ment learningJ.Chinese Journal of Network and Information Security,2023,9(2):132-142.第 2 期 肖天等:基于深度强化学习的高性能导向性模糊测试方案 133 deeper program paths.However,the mu
8、tation operation in fuzzing is blind and tends to make the generated test cas-es execute the same program path.Consequently,traditional fuzzing tests have problems such as low efficiency,high randomness of inputs generation and limited pertinence of the program structure.To address these problems,a
9、direc-tional fuzzing based on deep reinforcement learning was proposed,which used deep reinforcement learning net-works with information obtained by staking program to guide the selection of the inputs.Besides,it enabled fast ap-proximation and inspection of the program paths that may exist vulnerab
10、ilities.The experimental results showed that the proposed approach had better performance than the popular fuzzing tools such as AFL and AFLGO in terms of vulnerability detection and recurrence on the LAVA-M dataset and real applications like LibPNG and Binutils.Therefore,the approach can provide su
11、pport for further vulnerability mining and security research.Keywords:vulnerability mining,fuzzing test,deep reinforcement learning,program path 0 引言 安全漏洞一直是计算机安全领域的核心问题之一。根据美国国家标准与技术研究院的统计数据分析,20122020 年收录的漏洞数量整体呈较快上升趋势,2021 年更是惊人地达到了21 957 个1。根据托管安全服务提供商Redscan 的分析,在2021 年这两万多个漏洞中,54%的漏洞被认为具有“高”可用
12、性,这意味着攻击者可以很容易地利用它们2。日益严峻的安全形势对漏洞挖掘提出了更高的要求。与其他技术相比,模糊测试所需的知识更少、自动化程度高、易复现、扩展性好,已成为较流行的漏洞挖掘方法之一。模糊测试通过向目标程序输入使用一定策略生成的测试用例,监测程序的运行情况,记录并分析目标程序发生的异常来发现潜在的安全缺陷3。模糊测试的漏洞挖掘能力主要取决于测试用例的质量和运行效率4。因此,如何在提高检测效率的同时,生成更加有效的测试用例,成为一大挑战。针对这个挑战,模糊测试的主要改进方式有两个:一是致力于提高代码覆盖率;二是通过“预生成”的方式,减少无效测试用例。提高代码覆盖率的方式是让测试用例的执行
13、路径尽量覆盖整个程序,从而降低漏报率。AFL(American fuzz lop)是一款基于覆盖率引导的开源灰盒测试工具,帮助测试人员挖掘了大量的高危漏洞,很大程度上推进了模糊测试的研究5。CollAFL6在 AFL 的基础上解决了哈希碰撞的问题,并改进了种子选取策略,但其提高代码覆盖率的同时,往往在与缺陷无关的路径上耗费大量的计算资源和时间,效率低。“预生成”的方式则是通过改进生成算法,生成特定类型的测试用例。例如,SemFuzz7可以针对已经公布的漏洞,利用通用漏洞披露(CVE)报告和相关日志等文本,自动生成触发漏洞的用例。虽然业界有大量关于优化反馈选择、用例生成的研究,但模糊测试仍然存在
14、着自适应性和针对性有限的问题,因此导向性模糊测试应运而生。导向性模糊测试又称定向模糊测试,它通过静态分析与特定的算法来指导种子优先度调整、能量调度和适应性变异,从而达到测试特定漏洞的目的。对于如何指导模糊测试生成抵达目标位置输入的问题,本文使用了深度强化学习中的经典算法 deep Q-learning8。深度强化学习的主要特点是能够让系统不断尝试,评估之前采取的行为修正自身的行为选取策略,使得无导向的随机过程转化为有导向的过程。鉴于深度强化学习的这种特性,本文选择将其融入 AFL 的测试用例生成中,将新旧样本间执行路径到目标节点的距离差作为深度强化学习网络(DQN,deep Q-learnin
15、g network)的反馈值,促使测试用例的执行路径逼近可能存在缺陷的路径。实验表明,深度强化学习优化了模糊测试的测试用例生成与选择策略,让模糊测试有了更好的针对性和导向性。鉴于以上特点,本文提出的模糊测试方案可主要应用于以下几个方面。(1)版本更新测试 测试人员可以使用本文提出的模糊测试方案对与版本更新相关的代码进行测试,在节省开销的同时,更有效地检测当前版本的补丁。(2)复现漏洞 在可访问程序源代码但没有崩溃输入的情况134 网络与信息安全学报 第 9 卷 下,所提方案可以根据漏洞报告中的源代码信息,快速达到漏洞位置,构造出可以触发漏洞的测试用例。(3)基于静态分析的模糊测试 因静态分析通
16、常存在误报率高的问题,所以往往需要一个验证漏洞的手段。静态分析提供了可能存在漏洞的位置,而所提方案可将其作为目标进行验证。1 相关工作 1.1 灰盒模糊测试 模糊测试可以分为黑盒模糊测试、白盒模糊测试和灰盒模糊测试9。灰盒模糊测试介于黑盒模糊测试和白盒模糊测试之间,在构造输入时,会参考源代码信息和软件运行时的反馈信息。灰盒模糊测试主要基于反馈获取机制、反馈处理机制、样本生成机制10。反馈获取机制能够在测试过程中获取测试目标的反馈;反馈处理机制以反馈信息为参考,从变异样本中筛选出优质样本组成下一轮测试的语料库;样本生成机制则是对语料库中的样本实施变异以获得新样本,为当前轮次的测试提供输入11。A
17、FL 是较为流行的基于覆盖率的灰盒模糊测试工具之一,其工作流程如图 1 所示。图 1 AFL 工作流程 Figure 1 The work process of AFL AFL首先会通过修改编译器策略或使用脚本进行程序插桩,用于在测试过程中获得代码覆盖率位图;然后从输入文件中选取一些测试样本添加到测试队列中,根据它们的标签及其对应的概率决定是否选择该样本进行测试;接着对当前测试样本按概率进行变异以生成新的样本,并输入待测程序中。如果变异后的测试用例更新了代码覆盖率位图,则将其添加到输入队列中。一轮测试结束后,需要根据情况对本轮测试使用到的测试样本打上标签,实现反馈处理;最后不断重复样本测试与样
18、本变异过程,直到用户停止 AFL 程序。所有触发了崩溃的测试样本将会被 AFL 保存,供用户进行分析。在具体的反馈处理过程中,AFL 会先根据代码覆盖率位图计算出当前测试样本的得分并分析其标签,再根据对应的概率决定是否选用该测试文件。AFL 的这种反馈处理机制使得它只具有有限的自适应性。如果能够使用非线性的函数根据反馈获取机制拟合出更加符合当前模糊测试状态的概率,就能够提高灰盒模糊测试的性能。强化学习是一个更好的选择,其作为一种解决序贯决策问题的机器学习模型,可以不断和模糊测试环境交互,最后得到模糊测试环境下的最优解。此外,AFL 对于不同输入类型、不同结构程序的针对性和自适应性很有限。如果通
19、过加强反馈获取机制,根据源代码和汇编代码获取更多关于程序的信息,就可以更加有效地加强灰盒模糊测试的针对性和自适应性,使得灰盒模糊测试更快地达到目标节点,从而验证该路径上是否存在漏洞。1.2 导向性模糊测试 AFLGO12是一款基于 AFL 开发的定向灰盒模糊测试工具,它对 AFL 的改进主要在于对测试样本变异策略的优化,它采用基于模拟退火的调度算法来最小化测试样本到目标的距离。测试过程中会为距离目标代码行号更近的测试样本赋予更多的能量,使得 AFLGO 可以比 AFL 更快地执行到目标代码行。同时,AFLGO 将分析工作集成到编译过程中,降低了运行时的开销。第 2 期 肖天等:基于深度强化学习
20、的高性能导向性模糊测试方案 135 在与定向白盒模糊测试 KATCH13的补丁测试对比实验中,AFLGO 额外发现了 7 个 CVE 漏洞,并可以在相同的时间内多覆盖 13%的目标。在与定向白盒模糊测试 BugRedux14的崩溃重现对比实验中,当只有堆栈跟踪中的方法可用时,AFLGO 复现出了 3 倍于 BugRedux 的方法调用。实验表明,AFLGO 在效率方面优于定向白盒模糊测试和无定向的灰盒模糊测试,证明了提高导向性和针对性是一种相当有效的模糊测试优化方法。与 AFLGO 不同的是,Chen 等15提出了相似度的概念。在模糊测试工具 Hawkeye 中,根据测量种子的执行轨迹和目标执
21、行轨迹之间的相似度,调整测试样本的优先级和功率调度使得模糊测试逼近目标。因为覆盖“目标路径”中更多节点的测试样本将会更有可能通过变异到达目标节点。业界有部分工作使用深度学习进行定向模糊测试。例如,FuzzGuard16使用基于深度学习的方法,可以在执行目标程序之前预测输入的可达性,过滤掉不可达的输入。同样地,DeFuzz17采用双向长短期记忆(LSTM)网络来识别注意力词,以识别潜在的易受攻击的功能和位置,并使用AFLGO 生成倾向于到达预测位置的输入来模糊潜在的漏洞。但是很少有研究将强化学习应用到导向性模糊测试中。1.3 强化学习 强化学习18的主要特点是在交互过程中,可以根据环境反馈的奖励
22、,修正网络的行为选取策略,不断优化动作选择策略,最终取得最大的累计奖励。强化学习问题一般通过马尔可夫决策过程(MDP,Markov decision process)来建模19。MDP通常由四元组(,)S P R来描述。1)S 为所有环境状态 s(state)的集合,sS。另有 A 表示有限的动作 a(action)的集合,aA。2)P(probability)为状态转移概率,(|,)P s s a表示在状态s下执行动作a,转移到状态s的概率。3)R(reward)为奖励函数,1|stRE R+=tSS=指的是时刻t在状态s下,下一时刻t+1能够获得的奖励值的期望。4)折扣因子,用于计算累积奖
23、励,01 强化学习的最终目的是采取某种策略,以获得最多的累积奖励。策略由一系列的动作组成。通常使用值函数来估计某个策略(下文用表示)的优劣程度。当主体采用策略时,累积奖励在状态s的期望定义为状态奖励值函数。强化学习的工作流程如图2所示。图 2 强化学习的工作流程 Figure 2 Working process of reinforcement learning 在与环境的互动中,主体根据强化学习网络选择某一行为,在该行为的作用下,环境返回状态信息和奖励,强化学习网络根据这些信息更新权重。训练时将不断重复上述过程,最终更新强化学习网络至当前环境下能获得的最大累计奖励。深度强化学习将深度学习的智
24、能感知能力与强化学习的决策能力结合,通过对高维感知输入的学习,实现了智能体的自主行为控制20。因此深度强化学习常被用于游戏、围棋、自动化控制等场景的智能任务。2013年,DeepMind发布了深度强化学习网络21-22,把强化学习算法Q-learning和深度学习网络相结合,其性能远超强化学习网络,并因AlphaGo23战胜围棋世界冠军而广为人知。其中,Q-learning24算法如算法1所示。算法 1 Q-learning算法 输入 状态信息集合S,动作集合A(s),折扣因子,学习率 输出 最终策略(a)1)随机初始化 Q(s,a),sS,aA(s)2)每轮迭代进行以下操作:3)初始化 sS
25、 4)重复以下操作直至状态s达到目标状态:136 网络与信息安全学报 第 9 卷 5)使用-greedy策略根据Q(s,a)从A(s)中挑选出动作a 6)执行动作a,获得奖励r与状态s 7)更新Q(s,a):(,)(,)Q s aQ s ar+max(,)(,)Q s aQ s a-8)更新策略()argmax(,),aQ s a=()aA s 9)更新s=s 算法1中的greedy是一种随机策略,在各种强化学习网络中都有着非常广泛的运用。如 式(1)所 示,greedy策 略 会 以()1A s-+的概率执行当前状态s下,令动作值函数Q(s,a)最大的动作a,以()A s的概率执行其他的动作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 深度 强化 学习 性能 导向 模糊 测试 方案 肖天
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。