Back to Search Start Over

CAMFuzz: Explainable Fuzzing with Local Interpretation

Authors :
Ji Shi
Wei Zou
Chao Zhang
Lingxiao Tan
Yanyan Zou
Yue Peng
Wei Huo
Source :
Cybersecurity, Vol 5, Iss 1, Pp 1-20 (2022)
Publication Year :
2022
Publisher :
SpringerOpen, 2022.

Abstract

Abstract Grey-box fuzzing techniques have been widely used in software bug finding. In general, there are many decisions to make in the fuzzing process, including which code block in the target program should be explored first, which bytes of an input seed should be mutated to reach the target code block, and how to mutate the chosen input bytes. However, existing solutions usually rely on random exploration or certain heuristics to choose where and how to fuzz, which limits the efficiency of fuzzing. In this paper, we propose a novel solution CAMFuzz to guide the fuzzing process with explainable decisions in explainable artificial intelligence (XAI). First, we propose a dynamic weight adjustment algorithm, which considers both the difficulty of reaching a block and the number of unvisited blocks nearby, to find code blocks worthy to explore first. Second, we utilize a widely used local interpretation technique, i.e., class activation mapping (CAM), to recognize which part of an input seed should be mutated to reach a given target code block. Therefore, CAMFuzz can distinguish which part of code in the program is more important and which positions in the input file should be mutated first, in order to achieve a better code coverage and bug finding efficiency. Third, to further help the fuzzer increase fuzzing efficiency, we leverage a lightweight static program analysis to help the fuzzer identify magic values. We implement a prototype of CAMFuzz and evaluate it on 13 real-world programs (including 11 open source targets, 2 closed-source commercial products including a Microsoft component and Hancom Office) Results show that CAMFuzz outperforms state-of-the-art fuzzers in both code coverage and bug finding. To detail, CAMFuzz on average achieves 2.07 $$\times$$ × more bugs and 1.17 $$\times$$ × coverage improvements. In total, it found 19 previously unknown vulnerabilities, of which 6 have been assigned by CVE so far.

Details

Language :
English
ISSN :
25233246
Volume :
5
Issue :
1
Database :
Directory of Open Access Journals
Journal :
Cybersecurity
Publication Type :
Academic Journal
Accession number :
edsdoj.f98cf3837b324bffaf59462bc22c5f16
Document Type :
article
Full Text :
https://doi.org/10.1186/s42400-022-00116-x