编辑
2024-10-09
Paper
00
请注意,本文编写于 42 天前,最后修改于 42 天前,其中某些信息可能已经过时。

目录

FairFuzz: A Targeted Mutation Strategy for Increasing Greybox Fuzz Testing Coverage
作者
作者思路
方法论
Mutation Mask

😱

FairFuzz: A Targeted Mutation Strategy for Increasing Greybox Fuzz Testing Coverage

作者

  • Caroline Lemieux - 加利福尼亚大学 - 机器学习、模糊测试
  • Koushik Sen - 加利福尼亚大学 - 模糊测试、机器学习、LLM、智能合约模糊测试

作者思路

FairFuzz主要针对传统模糊测试中无目的随机变异的问题提出了两个解决方法

  • 识别在模糊测试过程中很少命中的程序分支的种子,而后提高其优先级使得Fuzzer更多的倾向于没有充分覆盖的分支
  • 通过针对命中稀有分支的种子进行变异测试,确定覆盖对应分支的关键字节并生成掩码以保证关键字节不被变异

方法论

Mutation Mask

Definition 1. 定义Mutation为一个元组(c,m)(c,m),其中mm为突变所影响的字节数,cc为突变类型

  • OO: 使用一些值覆写从kk字节开始的mm个字节的内容
  • II: 在kk字节处插入mm字节的内容
  • DD: 在kk字节处删除mm字节的内容

Definition 2. 定义突变掩码是一个输入xx和测试目标TT的函数 maskx,T:NP({O,I,D})mask_{x,T}:N \rightarrow P(\{O,I,D\})。对于任意输入xx的一个位置ii输入到函数中,其将返回一个变异策略O,I,D{O,I,D}的子集,如果其满足(mutate(x,(c,1),i),T)(mutate(x,(c,1),i),T)为真,我们则认为cmaskx,T(i)c\in mask_{x,T}(i)为真;也就是说如果cc在集合maskx,T(i)mask_{x,T}(i)中,那么在xx的第ii个位置应用突变cc后,得到的输入将满足目标TT

具体来说,算法如下

针对于最关心的掩码生成部分,算法很简单粗暴,直接针对每个字节变异一遍计算掩码即可

本文作者:Du4t

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!