Static Program Analysis as a Fuzzing Aid

Static Program Analysis as a Fuzzing Aid

Abstract

Fuzz testing is an effective and scalable technique to perform software security assessments. Yet, contemporary fuzzers fall short of thoroughly testing applications with a high degree of control-flow diversity, such as firewalls and network packet analyzers. In this paper, we demonstrate how static program analysis can guide fuzzing by augmenting existing program models maintained by the fuzzer. Based on the insight that code patterns reflect the data format of inputs processed by a program, we automatically construct an input dictionary by statically analyzing program control and data flow. Our analysis is performed before fuzzing commences, and the input dictionary is supplied to an off-the-shelf fuzzer to influence input generation. Evaluations show that our technique not only increases test coverage by 10–15% over baseline fuzzers such as afl but also reduces the time required to expose vulnerabilities by up to an order of magnitude. As a case study, we have evaluated our approach on two classes of network applications: nDPI, a deep packet inspection library, and tcpdump, a network packet analyzer. Using our approach, we have uncovered 15 zero-day vulnerabilities in the evaluated software that were not found by stand-alone fuzzers. Our work not only provides a practical method to conduct security evaluations more effectively but also demonstrates that the synergy between program analysis and testing can be exploited for a better outcome.

Grafik Top
Authors
  • Shastry, Bhargava
  • Leutner, Markus
  • Fiebig, Tobias
  • Thimmaraju, Kashyap
  • Yamaguchi, Fabian
  • Rieck, Konrad
  • Schmid, Stefan
  • Seifert, Jean-Pierre
  • Feldmann, Anja
Grafik Top
Supplemental Material
Shortfacts
Category
Paper in Conference Proceedings or in Workshop Proceedings (Paper)
Event Title
20th International Symposium on Research in Attacks, Intrusions and Defenses (RAID)
Divisions
Communication Technologies
Subjects
Informatik Allgemeines
Event Location
Atlanta, Georgia, USA
Event Type
Conference
Event Dates
September 2017
Date
2017
Export
Grafik Top