Proj. THUIoTFuzz Paper Reading: Parser-Directed Fuzzing

Abstract

背景:
传统fuzzer:难以抓住keywords等信息
Constraints-based test generation: 根据path上的conditions来拓展uncovered code,但是存在条件过于复杂会导致path explosion的问题
本文-一个基于input parser的test generation方法
基本步骤:

  1. 为parsers生成简单的inputs
  2. 监控这些inputs,确认路径上的comparisons
  3. 在每次rejection之后都试图变异inputs从而满足最后的那个comparison

实验:
对象:5个subjects,包括csv和javascript
效果:

  1. 无需符号分析
  2. 能够覆盖比传统方法(random/constraints-based)更多的tokens,同时需要的测试数目更少

1. Intro

本文认为含有parser的程序:

  1. 顺序地处理inputs elements(字符)
  2. 将这些字符和潜在的valid values进行对比
  3. 只会有接收和拒绝两种行为

为此,本文认为能够用dynamic tainting技术来追踪input chars的comparisons

此外, 本文观察到parsers一般一次只依赖于有限个chars,这使得本文能够采取只集中注意力在找到使得当前parser向前进入另一个合法状态的下一个字符,而非直接取处理整个input这样的策略

原文地址:https://www.cnblogs.com/xuesu/p/14262138.html