Deep Reinforcement Fuzzing
Fuzzing is the process of finding security vulnerabilities in input-processing code by repeatedly testing the code with modified inputs. In this paper, we formalize fuzzing as a reinforcement learning problem using the concept of Markov decision processes. This in turn allows us to apply state-of-the-art deep Q -learning algorithms that optimize rewards, which we define from runtime properties of the program under test. By observing the rewards caused by mutating with a specific set of actions performed on an initial program input, the fuzzing agent learns a policy that can next generate new higher-reward inputs. We have implemented this new approach, and preliminary empirical evidence shows that reinforcement fuzzing can outperform baseline random fuzzing.
Deep Reinforcement Fuzzing
IEEE Symposium on Security and Privacy Workshops, SPW 2018
Authors: | Konstantin Böttinger, Patrice Godefroid, and Rishabh Singh |
Year/month: | 2018/5 |
Booktitle: | IEEE Symposium on Security and Privacy Workshops, SPW 2018 |
Address: | San Francisco, CA, USA |
Publisher: | IEEE |
Fulltext: | click here |
Abstract |
|
Fuzzing is the process of finding security vulnerabilities in input-processing code by repeatedly testing the code with modified inputs. In this paper, we formalize fuzzing as a reinforcement learning problem using the concept of Markov decision processes. This in turn allows us to apply state-of-the-art deep Q -learning algorithms that optimize rewards, which we define from runtime properties of the program under test. By observing the rewards caused by mutating with a specific set of actions performed on an initial program input, the fuzzing agent learns a policy that can next generate new higher-reward inputs. We have implemented this new approach, and preliminary empirical evidence shows that reinforcement fuzzing can outperform baseline random fuzzing. |
Bibtex:
@inproceedings { refuzz,author = { Konstantin Böttinger and Patrice Godefroid and Rishabh Singh},
title = { Deep Reinforcement Fuzzing },
year = { 2018 },
month = { May },
booktitle = { IEEE Symposium on Security and Privacy Workshops, SPW 2018 },
address = { San Francisco, CA, USA },
publisher = { IEEE },
url = { https://ieeexplore.ieee.org/document/8424642 },
}