分类 理论研究 下的文章

精读:REDQUEEN: Fuzzing with Input-to-State Correspondence

00 - About

作者:Cornelius Aschermann, Sergej Schumilo, Tim Blazytko, Robert Gawlik and Thorsten Holz

01 – Why

近年来,基于模糊的抽象自动化软件测试经历了一次复兴,特别是反馈驱动模糊以其在有限输入语料库下高效地进行随机测试的能力而闻名(such afl)。尽管取得了许多进展,但有两个常见的问题是 magic numbers 和 checksums,这些问题通常使用 taint tracking 和symbolic execution 等计算开销较大的方法来克服这些障碍。不幸的是,这样的方法通常需要访问源代码、对环境的需求较高(例如,库调用或底层操作系统的行为)或平台指令集的确切语义。

1.png

因此,本文介绍了一种轻量级的、但非常有效的方法来替代 taint tracking 和 symbolic
execution,以方便和优化最先进的反馈模糊处理,这种模糊处理很容易扩展到大型二进制应用程序和未知环境。


- 阅读剩余部分 -

精读:CollAFL: Path Sensitive Fuzzing

0x01 Why

目前流行的fuzzing(如AFL)通常使用较为简单的coverage information,这种覆盖的不准确和不完整给fuzzing带来了严重的局限性。首先,它会导致路径冲突,从而影响fuzzing挖掘出导致新崩溃的潜在路径。更重要的是,它也会影响fuzzing的最优决策。此外,学术界的大部分研究的是Coverage-guided fuzzing,很少有目光真正的投在Coverage上,所以CollAFL做了这一块的内容。

0x02 What

对AFL中的coverage inaccuracy 和seed选择策略做了改进,改进后的工具称为CollAFL

0x03 How

本文主要做了两个改进。第一,在AFL中,AFL要用到一个64KB bitmap来保存Coverage的信息,在AFL进行fuzzing的时候,会发生碰撞,两个快构成一个边,AFL为边赋了hash值,这个hash就代表这条边,可是不同的边计算出的hash可能是一样的,于是就发生了Collision , Collision可能会导致某些input到达新的路径,但AFL却没有将该input作为seed,本文主要针对这一点,采用了一个新的算法,解决了路径hash collision问题。第二,在seed选择的时候,CollAFL会优先选择对Coverage有贡献的seed。

CollAFL的具体做法如下。

- 阅读剩余部分 -