AIFORE: Smart Fuzzing Based on Automatic Input Format Reverse Engineering
Knowledge of a program's input format is essential for effective input generation in fuzzing. Automated input format reverse engineering represents an attractive but challenging approach to learning the format. In this paper, we address several challenges of automated input format reverse engineering, and present a smart fuzzing solution AIFORE which makes full use of the reversed format and benefits from it. The structures and semantics of input fields are determined by the basic blocks (BBs) that process them rather than the input specification. Therefore, we first utilize byte-level taint analysis to recognize the input bytes processed by each BB, then identify indivisible input fields that are always processed together with a minimum cluster algorithm, and learn their types with a neural network model that characterizes the behavior of BBs. Lastly, we design a new power scheduling algorithm based on the inferred format knowledge to guide smart fuzzing. We implement a prototype of AIFORE and evaluate both the accuracy of format inference and the performance of fuzzing against state-of-the-art (SOTA) format reversing solutions and fuzzers. AIFORE significantly outperforms SOTA baselines on the accuracy of field boundary and type recognition. With AIFORE, we uncovered 20 bugs in 15 programs that were missed by other fuzzers.
WOS:001066451505009
2023-01-01
978-1-939133-37-3
Berkeley
4967
4984
REVIEWED
Event name | Event place | Event date |
Anaheim, CA | AUG 09-11, 2023 | |
Funder | Grant Number |
National Key Research and Development Program of China | 2021YFB2701000 |
National Natural Science Foundation of China | 61972224 |
Beijing National Research Center for Information Science and Technology (BNRist) | BNR2022RC01006 |