• DocumentCode
    635193
  • Title

    Billions and billions of constraints: Whitebox fuzz testing in production

  • Author

    Bounimova, Ella ; Godefroid, Patrice ; Molnar, David

  • Author_Institution
    Microsoft Res., Redmond, WA, USA
  • fYear
    2013
  • fDate
    18-26 May 2013
  • Firstpage
    122
  • Lastpage
    131
  • Abstract
    We report experiences with constraint-based whitebox fuzz testing in production across hundreds of large Windows applications and over 500 machine years of computation from 2007 to 2013. Whitebox fuzzing leverages symbolic execution on binary traces and constraint solving to construct new inputs to a program. These inputs execute previously uncovered paths or trigger security vulnerabilities. Whitebox fuzzing has found one-third of all file fuzzing bugs during the development of Windows 7, saving millions of dollars in potential security vulnerabilities. The technique is in use today across multiple products at Microsoft. We describe key challenges with running whitebox fuzzing in production. We give principles for addressing these challenges and describe two new systems built from these principles: SAGAN, which collects data from every fuzzing run for further analysis, and JobCenter, which controls deployment of our whitebox fuzzing infrastructure across commodity virtual machines. Since June 2010, SAGAN has logged over 3.4 billion constraints solved, millions of symbolic executions, and tens of millions of test cases generated. Our work represents the largest scale deployment of whitebox fuzzing to date, including the largest usage ever for a Satisfiability Modulo Theories (SMT) solver. We present specific data analyses that improved our production use of whitebox fuzzing. Finally we report data on the performance of constraint solving and dynamic test generation that points toward future research problems.
  • Keywords
    computability; data analysis; program diagnostics; program testing; security of data; virtual machines; JobCenter; SAGAN system; SMT solver; Windows 7; binary traces; commodity virtual machines; constraint solving performance; constraint-based whitebox fuzz testing; data analysis; dynamic test generation; program testing; satisfiability modulo theories; security vulnerability; symbolic execution; Computer bugs; Monitoring; Production; Security; Servers; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2013 35th International Conference on
  • Conference_Location
    San Francisco, CA
  • Print_ISBN
    978-1-4673-3073-2
  • Type

    conf

  • DOI
    10.1109/ICSE.2013.6606558
  • Filename
    6606558