首页 > 其他 > 详细

Proj. THUDFuzzVis: VisFuzz: Understanding and Intervening Fuzzing with Interactive Visualization

时间:2020-10-31 23:44:38      阅读:29      评论:0      收藏:0      [点我收藏+]

Source codehttps://github.com/ChijinZ/VisFuzz

Abstract

传统上模糊测试的一个瓶颈在于很难覆盖到被复杂的条件-比如magic number, 嵌套的条件所引导的程序支线,为此人们提出了白盒测试,然而即使这样,对复杂的条件的支持还是不够,比如array sort,virtual function, tree set queries还是覆盖不到。所以本文提出了visfuzz。

VisFuzz用可视化的方式实时展示程序测试情况和程序支线覆盖情况,主要是从源码中抽取call graph(函数调用图)和control flow(函数内基本块流程图),并且将每个函数,基本块,源码和实际执行信息联系起来呈现在图上,从而允许测试工程师定位一直没法访问到的限制,这样工程师就可以人工调研语义环境,构造特殊种子或者升级测试driver了。

本文的实验对象是Google的fuzzer-test-suite,实验方法是比较用/不用15分钟时间通过visfuzz理解改进测试,模糊测试12h,效果是提升了10.84%到150.58%的效果。

Introduction

黑盒技术有AFL,libFuzzer,这些技术覆盖率不太够,于是灰盒测试比如AFLFast和FairFuzz让能够覆盖到低频次的路径有更多的变异机会。但是还是不够,于是白盒测试也登场。Driller提出了当AFL遇到瓶颈就转换到符号执行模式的方法。HaCRS则把整个fuzz拆成多个子任务,让人协助。明显,人力能够协助测试进入复杂条件的潜力,所以提出VisFuzz。

VisFuzz由三个部件组成:

a) LLVM plugin:用于获取call graph,覆盖率和其他统计信息

b) modified AFL: AFL+实时统计

c) python supported visualization

Demonstration

 

Proj. THUDFuzzVis: VisFuzz: Understanding and Intervening Fuzzing with Interactive Visualization

原文:https://www.cnblogs.com/xuesu/p/13907292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!