DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

这篇具有很好参考价值的文章主要介绍了DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DARWIN: Survival of the Fittest Fuzzing Mutators

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

作者背景

达姆施塔特工业大学:成立于1877年,是德国著名理工科大学

‡萨格勒布大学: 是克罗地亚最大的大学,也是该地区历史最悠久的大学

§拉德堡德大学:位于荷兰奈梅亨市,又称奈梅亨大学,欧洲顶尖的研究型学术院校

发表时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wtjRTCBW-1683793219416)(null)]

研究支持

这项工作得到了德国联邦教育和研究部StartUpSecure资助项目 “Sanctuary”(16KIS1417)、德国联邦教育和研究部和黑森州高等教育、研究和艺术部在ATHENE内的支持,以及欧洲研究理事会(ERC)在欧盟地平线2020研究和创新计划(赠款协议号952697)的支持

相关链接

[论文链接](ndss2023_s159_paper.pdf (ndss-symposium.org))

[开源代码](TUDA-SSL/DARWIN: Code for the NDSS’23 paper “DARWIN: Survival of the Fittest Fuzzing Mutators” (github.com))

这篇论文虽然是2023年发表的,但研究是从2020年开始做,因此一些数据并没有及时更新,这里可以和另一篇发表在2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE)上的论文One Fuzzing Strategy to Rule Them All进行对比,这篇论文相关内容可以参考以下链接:

论文链接

CSDN链接

微信公众号链接

这篇论文作为对比,记为HavocMAB


背景

优化种子调度策略存在瓶颈

基于变异的模糊测试中的交互非常复杂且模糊实例具有随机性常常导致不可预测的结果,改善这种脆弱交互的大多数努力都集中在优化种子调度上。然而,像 Google 的 FuzzBench 这样的实际结果突出表明,这些方法在实践中并没有始终如一地显示出改进

现有的优化变异调度表现较差,且参数配置较为复杂

现有的变异策略(论文以MOPT为例)

MOPT
  • 提出了一种改进的粒子群优化算法(PSO)来学习全局最优变异概率分布
  • MOPT 的粒子群算法同时具有局部和全局最优概率分布,使得寻找最优解和算法本身变得复杂,并且在模糊化过程中使用成本更高
  • MOPT 引入了各种用户可配置的参数,直接引导优化过程,因此用户需要解决另一个复杂的问题来避免非最优调度
  • MOPT在fuzzbench上并没有比AFL优秀

此处插入前不久发表的另一篇论文为例(在论文中作者并没有提及这篇论文):

Havoc
  • 现有的变异策略都需要用户对参数进行设置

  • 使用不同的编译器叠加次数(stacking size)和使用不同的变异方法(单元变异和块变异)对Havoc的影响,作者提出对于不同的程序,应该设置不同的stacking size

  • 作者提出了以stacking size 和变异方法为臂,建立一个多臂老虎机模型,记为HavocMAB

    DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

  • 作者只对比了Havoc的覆盖信息,评估结果表明,与采用三个并行线程增加计算资源的 QSYM 相比,HavocMAB 可以使所有测试项目的边覆盖率平均提高11.1% ,甚至略高于最先进的 QSYM。进一步使用三个并行线程执行 HavocMAB,在所有的基准项目上,QSYM 的平均边缘覆盖率提高了9%。

  • 但是作者在文中并没有提到发现任何crash

问题:寻找(近似)最优变异调度策略来改进模糊化算法

通过以上一些说明,可以发现现有的变异调度方法也未能令人信服,因为缺乏实际的改进或太多的用户控制参数,其配置需要关于目标程序的专家知识,这对用户的能力具有较高要求。

因此作者提出了一个不需要用户进行参数设置的寻找(近似)最优变异调度策略来改进模糊化算法的变异调度器,通过进化算法推断出下一个模糊迭代的最优选择是哪个变异算子,该算法在AFL的基础上进行构建,称为Darvin。

Metaheuristics
  • 该方法协调局部改进和更高层次策略之间的交互,以创建一个能够逃避局部最优并在解决方案空间中执行鲁棒搜索的过程
  • 元启发式优化算法一般分为基于单个解的元启发式算法和基于种群的元启发式算法
  • 基于种群的元启发法对一组解进行处理(例如,进化算法(EA)和粒子群优化(PSO)等群算法
  • 元启发式优化算法需要平衡“多样化”与“集中化”两种性质;
    • 多样化是指算法能够探索搜索空间中的有希望区域并逃逸局部最优解。这有助于发现更广阔的搜索范围。
    • 集中化是指算法能够聚焦在当前最优解附近寻找更好的相邻解。这有助于充分利用有希望的搜索范围获得更优的结果。
    • 元启发式方法在应用于具体的优化问题时,多样化与集中化性质的交互作用决定了其效果的好坏。如果两者达到良好平衡,则有助于算法寻找到更优的全局解

方法

DARWIN利用进化策略,在一个类似于强化学习的设置中,为变异操作符选择近似理想的概率分布,以避免在次优变异体上浪费模糊迭代

生成的概率分布不是静态设置的,而是在模糊过程中学习的,并且动态地适应目标程序

具体方法之下:

执行过程

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

如上图所示,Darvin的执行包括四个步骤:

  1. 在havoc阶段模糊测试器从队列中选择一个输入用例,并随机选择下一个要应用的变异方法。最初,变异选择的概率分布是均匀的
  2. 应用一次变异之后,模糊测试器决定是否应继续变异此输入用例,或者将其在插桩的目标应用程序上进行测试
  3. 生成报告,变异调度器通过DARWIN 进化策略学习报告并优化概率分布
  4. 在下一次迭代中应用优化后的概率分布
进化算法

ES在μ个父节点上执行,在每次迭代中通过随机扰动算子产生一系列不同的修正解,个数用 λ 表示。在评估每个子解决方案之后,将在下一次迭代中选择所有子解决方案和当前父解决方案中的最佳子解决方案作为父解决方案λ通常设置为4,μ作者通过测试将其设置为5,它的值主要影响覆盖速度,对覆盖影响较为轻微

伪代码如下图所示:

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

解的编码和扰动

作者使用二进制向量的方式(0 1)来表示是否选择一个变异操作,扰动则通过一位的字节翻转来实现,如下图所示:

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

目标函数

作者以发现的新的独特路径作为反馈信号来作为评估单个解决方案的主要标准

同时Darwin并不需要用户进行参数的选择和输入


实现效果

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

如上图所示为各个模糊器在10个benchmark中的路径覆盖数,通过对比可以发现对于大部分的测试用例,Darvin都能到达最高的路径和边缘数量,同时在第一小时内都有最快速的增长。

对于cxxfilt,AFL的性能明显优于基于变异调度的MOPT和Darvin,且MOPT和Darvin表现效果相似,作者对cxxfilt的变异历史进行分析:如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SSB8uMNr-1683793219390)(null)]

作者提出导致这一差异主要有两个原因:

  • 在40分钟后DARWIN和MOPT更重视mutator 8和10
  • cxxfilt更重视分解重载函数,变异调度器只能给严重依赖解析的模糊目标带来一点好处。然而,它们的性能影响降低了模糊器的原始执行速度,导致覆盖率较低
结论

通过以上实验,Darvin的平均边覆盖相比于Mopt提高了6.77%,相比于AFL提高了1.73%

fuzzbench 代码覆盖评分

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

作者还将这一方法在Ecofuzz上进行集成,在fuzzbench上的覆盖评分如下:

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

Crash

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

作者对比了在21个crash中三个fuzzer发现的crash的数量和时间,如上图所示,可以发现:

  • 在总共发现的21个错误中,Darvin可以最快地找到其中的15个
  • MOPT 在4种情况下是最快的,但仅仅是因为在其中两种情况下,Darvin不能触发 bug (MOPT 平均需要两天以上才能找到 bug)。
  • AFL 只能找到12个缺陷

因此,在发现crash上AFL明显优于其他两个fuzzer,作者接下来还测试了在24小时连续10次运行中发现的bug数量,"max "指的是在一次运行中遇到的最大错误。"uniq "指的是在所有10次运行中的独特崩溃的数量,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-guyVAJbq-1683793219406)(null)]

DARWIN 还在 objeccopy 中发现了一个全新的错误(一直到24年前引入的 binutils 2.39) ,这个错误导致了内存泄漏。Objeccopy.c 中的 copy _ relocation _ in _ section 并不是在所有可能的情况下都释放缓冲区(relpp)。这个 bug 很难触发,因为函数只在高堆栈深度调用。导致 bug 的测试用例是通过基于相对较早的测试用例和来自实验中期的测试用例的拼接发现的。我们负责任地向各自的开发人员披露了分类错误,他们承认并修复了这个错误文章来源地址https://www.toymoban.com/news/detail-439026.html


工作总结

  • 提出了一种新的变异调度方法 DAR-WIN,这是第一种利用进化策略的变异来优化变异算子的概率分布的变异调度方法
  • 利用变异调度算法对 AFL 进行扩展,实现了一个 DARWIN 原型系统,并将其在EcoFuzz上也进行了扩展,并且,这一工具并没有引入任何新的参数来避免用户的应用障碍
    露了分类错误,他们承认并修复了这个错误

工作总结

  • 提出了一种新的变异调度方法 DAR-WIN,这是第一种利用进化策略的变异来优化变异算子的概率分布的变异调度方法
  • 利用变异调度算法对 AFL 进行扩展,实现了一个 DARWIN 原型系统,并将其在EcoFuzz上也进行了扩展,并且,这一工具并没有引入任何新的参数来避免用户的应用障碍
  • 评估了Darvin和MOPT,AFL的覆盖效果,在代码覆盖方面,Darvin明显优于AFL和MOPT,尤其是在binutils上。此外,在 MAGMA 上对 DARWIN 进行评估,结果显示 DARWIN 最快的触发了21个错误中的15个。最后,DARWIN 发现了20个独特的 bug (包括一个之前未报告的 bug) ,比 AFL 多出66% ,

到了这里,关于DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文笔记|OUTRAGEOUSLY LARGE NEURAL NETWORKS- THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER

    ICLR 2017 神经网络吸收信息的能力受到其参数数量的限制。条件计算,即网络的某些部分在每个示例的基础上处于活动状态,在理论上已被提出作为一种在不按比例增加计算量的情况下大幅增加模型容量的方法。然而,在实践中,存在重大的算法和性能挑战。在这项工作中,我

    2024年02月01日
    浏览(38)
  • 论文笔记--Exploiting Asymmetry for Synthetic Training Data Generation: SynthIE and the Case of Informati

    标题:Exploiting Asymmetry for Synthetic Training Data Generation: SynthIE and the Case of Information Extraction 作者:Martin Josifoski, Marija Sakota, Maxime Peyrard, Robert West 日期:2023 期刊:arxiv preprint   文章提出了一种利用LLM反向生成数据集的方法,并在此基础上提出了SynthIE模型,模型在信息抽取领域

    2024年02月03日
    浏览(51)
  • the “@esbuild/darwin-x64“ package is present but this platform needs the “@esbuild/darwin-arm64“

    搭建vite运用ts项目时,为了配置别名 ./src = @ ,引入了 import path from \\\'path\\\' ,出现报错,不存在path,但是path是存在node环境中的,所以就引入对ts进行声明了。 使用 npm i -D @types/node 解决了path报错,但是当再次运行的时候就出现了 the \\\"@esbuild/darwin-x64\\\" package is present but this platform n

    2024年02月12日
    浏览(34)
  • On the Spectral Bias of Neural Networks论文阅读

    众所周知,过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数,它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题,为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题,研究人员使用傅里叶分析来研究深层网络。他们证明了具有有限权值

    2024年02月22日
    浏览(36)
  • Hopper: Interpretative Fuzzing for Libraries——论文阅读

    problem 1 :虽然目前最先进的fuzzers能够有效地生成输入,但是现有的模糊驱动程序仍然不能全面覆盖库的入口。(entries in libraries,库中的不同条目或入口点。包括调用库中的函数、使用库中的类等) problem 2 :大多数模糊驱动程序都是开发人员手工制作的,它们的质量取决于开

    2024年02月02日
    浏览(34)
  • 论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks

    1 原论文的题目(中英文)、题目中包含了哪些?这些的相关知识分别是什么? 题目:PowerTCP: Pushing the Performance Limits of Datacenter Networks       PowerTCP:逼近数据中心的网络性能极限 2 论文的背景:作者、工作单位、发表刊物、索引情况 作者:Vamsi Addanki 、Oli

    2024年02月15日
    浏览(26)
  • 论文阅读 The Power of Tiling for Small Object Detection

    Abstract 基于深度神经网络的技术在目标检测和分类方面表现出色。但这些网络在适应移动平台时可能会降低准确性,因为图像分辨率的增加使问题变得更加困难。在低功耗移动设备上实现实时小物体检测一直是监控应用的基本问题之一。在本研究中,我们解决了在高分辨率微

    2024年02月11日
    浏览(33)
  • 【论文阅读】Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data

    Github: https://github.com/LiheYoung/Depth-Anything 2024年 TikTok 实习生的工作 这篇论文提出了一个使用的方案,用于鲁棒的单目深度估计,Depth Anything 论文的模型结构没有创新(Transformer),主要贡献在于 探索了简单有效的数据扩展方式(如何有效利用大量的无标签数据 从预训练模型继

    2024年04月22日
    浏览(28)
  • 论文阅读 - Social bot detection in the age of ChatGPT: Challenges and opportunities

    论文链接:https://www.researchgate.net/publication/371661341_Social_bot_detection_in_the_age_of_ChatGPT_Challenges_and_opportunities 目录 摘要: 引言 1.1. Background on social bots and their role in society 1.2. The rise of AI-generated chatbots like ChatGPT 1.3. The importance of social bot detection 1.4. Scope and objectives of the paper  2. T

    2024年02月14日
    浏览(38)
  • 《The Element of Style》阅读笔记 —— 章节 I Elementary Rules of Usage

    前言 :本科期间担任科研助理时,有幸从导师那里借来这本书通读,只记得自己当时在本子上做了一些笔记,但是想不起来具体记了什么😂前段时间再次从学院的讲座活动中听闻这本书,决定重温一遍,本篇为此书第一章的阅读笔记。 本书电子版链接:http://www.jlakes.org/ch

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包