NeuFuzz: Efficient Fuzzing With Deep Neural Network

Coverage-guided graybox fuzzing is one of the most popular and effective techniques for discovering vulnerabilities due to its nature of high speed and scalability. However, the existing techniques generally focus on code coverage but not on vulnerable code. These techniques aim to cover as many pat...

Full description

Bibliographic Details
Main Authors: Yunchao Wang, Zehui Wu, Qiang Wei, Qingxian Wang
Format: Article
Language:English
Published: IEEE 2019-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/8672949/
_version_ 1819170322565300224
author Yunchao Wang
Zehui Wu
Qiang Wei
Qingxian Wang
author_facet Yunchao Wang
Zehui Wu
Qiang Wei
Qingxian Wang
author_sort Yunchao Wang
collection DOAJ
description Coverage-guided graybox fuzzing is one of the most popular and effective techniques for discovering vulnerabilities due to its nature of high speed and scalability. However, the existing techniques generally focus on code coverage but not on vulnerable code. These techniques aim to cover as many paths as possible rather than to explore paths that are more likely to be vulnerable. When selecting the seeds to test, the existing fuzzers usually treat all seed inputs equally, ignoring the fact that paths exercised by different seed inputs are not equally vulnerable. This results in wasting time testing uninteresting paths rather than vulnerable paths, thus reducing the efficiency of vulnerability detection. In this paper, we present a solution, NeuFuzz, using the deep neural network to guide intelligent seed selection during graybox fuzzing to alleviate the aforementioned limitation. In particular, the deep neural network is used to learn the hidden vulnerability pattern from a large number of vulnerable and clean program paths to train a prediction model to classify whether paths are vulnerable. The fuzzer then prioritizes seed inputs that are capable of covering the likely to be vulnerable paths and assigns more mutation energy (i.e., the number of inputs to be generated) to these seeds. We implemented a prototype of NeuFuzz based on an existing fuzzer PTfuzz and evaluated it on two different test suites: LAVA-M and nine real-world applications. The experimental results showed that NeuFuzz can find more vulnerabilities than the existing fuzzers in less time. We have found 28 new security bugs in these applications, 21 of which have been assigned as CVE IDs.
first_indexed 2024-12-22T19:33:33Z
format Article
id doaj.art-89c977dbbca04adf8455d83959499e7e
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-12-22T19:33:33Z
publishDate 2019-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-89c977dbbca04adf8455d83959499e7e2022-12-21T18:15:02ZengIEEEIEEE Access2169-35362019-01-017363403635210.1109/ACCESS.2019.29032918672949NeuFuzz: Efficient Fuzzing With Deep Neural NetworkYunchao Wang0https://orcid.org/0000-0003-0457-0900Zehui Wu1Qiang Wei2Qingxian Wang3China National Digital Switching System Engineering and Technological Research Center, Zhengzhou, ChinaChina National Digital Switching System Engineering and Technological Research Center, Zhengzhou, ChinaChina National Digital Switching System Engineering and Technological Research Center, Zhengzhou, ChinaChina National Digital Switching System Engineering and Technological Research Center, Zhengzhou, ChinaCoverage-guided graybox fuzzing is one of the most popular and effective techniques for discovering vulnerabilities due to its nature of high speed and scalability. However, the existing techniques generally focus on code coverage but not on vulnerable code. These techniques aim to cover as many paths as possible rather than to explore paths that are more likely to be vulnerable. When selecting the seeds to test, the existing fuzzers usually treat all seed inputs equally, ignoring the fact that paths exercised by different seed inputs are not equally vulnerable. This results in wasting time testing uninteresting paths rather than vulnerable paths, thus reducing the efficiency of vulnerability detection. In this paper, we present a solution, NeuFuzz, using the deep neural network to guide intelligent seed selection during graybox fuzzing to alleviate the aforementioned limitation. In particular, the deep neural network is used to learn the hidden vulnerability pattern from a large number of vulnerable and clean program paths to train a prediction model to classify whether paths are vulnerable. The fuzzer then prioritizes seed inputs that are capable of covering the likely to be vulnerable paths and assigns more mutation energy (i.e., the number of inputs to be generated) to these seeds. We implemented a prototype of NeuFuzz based on an existing fuzzer PTfuzz and evaluated it on two different test suites: LAVA-M and nine real-world applications. The experimental results showed that NeuFuzz can find more vulnerabilities than the existing fuzzers in less time. We have found 28 new security bugs in these applications, 21 of which have been assigned as CVE IDs.https://ieeexplore.ieee.org/document/8672949/Fuzzingvulnerability detectiondeep neural networkseed selectionsoftware security
spellingShingle Yunchao Wang
Zehui Wu
Qiang Wei
Qingxian Wang
NeuFuzz: Efficient Fuzzing With Deep Neural Network
IEEE Access
Fuzzing
vulnerability detection
deep neural network
seed selection
software security
title NeuFuzz: Efficient Fuzzing With Deep Neural Network
title_full NeuFuzz: Efficient Fuzzing With Deep Neural Network
title_fullStr NeuFuzz: Efficient Fuzzing With Deep Neural Network
title_full_unstemmed NeuFuzz: Efficient Fuzzing With Deep Neural Network
title_short NeuFuzz: Efficient Fuzzing With Deep Neural Network
title_sort neufuzz efficient fuzzing with deep neural network
topic Fuzzing
vulnerability detection
deep neural network
seed selection
software security
url https://ieeexplore.ieee.org/document/8672949/
work_keys_str_mv AT yunchaowang neufuzzefficientfuzzingwithdeepneuralnetwork
AT zehuiwu neufuzzefficientfuzzingwithdeepneuralnetwork
AT qiangwei neufuzzefficientfuzzingwithdeepneuralnetwork
AT qingxianwang neufuzzefficientfuzzingwithdeepneuralnetwork