Driller: Augmenting Fuzzing Through Selective Symbolic Execution

By Nick Stephens, John Grosen, Christopher Salls, Andrew Dutcher, Ruoyu Wang, Jacopo Corbetta, Yan Shoshitaishvili, Christopher Krügel, Giovanni Vigna. Network and Distributed System Security Symposium, 2016

1,048 citations recorded by the source corpus.

—Memory corruption vulnerabilities are an ever- present risk in software, which attackers can exploit to obtain unauthorized access to confidential information. As products with access to sensitive data are becoming more prevalent, the number of potentially exploitable systems is also increasing, resulting in a greater need for automated software vetting tools. DARPA recently funded a competition, with millions of dollars in prize money, to further research focusing on automated vulnerability finding and patching, showing the importance of research in this area. Current techniques for finding potential bugs include static, dynamic, and concolic analysis systems, which each having their own advantages and disadvantages. A common limitation of systems designed to create inputs which trigger vulnerabilities is that they only find shallow bugs and struggle to exercise deeper paths in executables. We present Driller, a hybrid vulnerability excavation tool which leverages fuzzing and selective concolic execution in a complementary manner, to find deeper bugs. Inexpensive fuzzing is used to exercise compartments of an application, while concolic execution is used to generate inputs which satisfy the complex checks separating the compartments. By combining the strengths of the two techniques, we mitigate their weaknesses, avoiding the path explosion inherent in concolic analysis and the incompleteness of fuzzing. Driller uses selective concolic execution to explore only the paths deemed interesting by the fuzzer and to generate inputs for conditions that the fuzzer cannot satisfy. We evaluate Driller on 126 applications released in the qualifying event of the DARPA Cyber Grand Challenge and show its efficacy by identifying the same number of vulnerabilities, in the same time, as the top-scoring team of the qualifying event.

Subfields: Computer Science Applications, Software, Signal Processing

View Paper: https://www.semanticscholar.org/paper/f049751103f13d1ce6080418813e2a26820713e1

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Computer Science Applications

  1. Bihuan Chen
  2. Thorsten Holz
  3. Cornelius Aschermann
  4. Sergej Schumilo
  5. Robert Gawlik
  6. Yang Liu
  7. Junjie Wang
  8. Lei Wei

In Software

  1. Bihuan Chen
  2. Thorsten Holz
  3. Yang Liu
  4. Cornelius Aschermann
  5. Junjie Wang
  6. Lei Wei
  7. Yang Xiang
  8. Sheng Wen

In Signal Processing

  1. Christopher Krügel
  2. Pavel Laskov
  3. Thorsten Holz
  4. Angelos Dennis Keromytis
  5. Salvatore J. Stolfo
  6. Giovanni Vigna
  7. Heng Yin
  8. Yang Liu

Citations in the corpus