International Conference on Software Engineering · 2013 · 116 citations · 17 references
EngineeringVerificationSoftware EngineeringDynamic Test GenerationHardware SystemsSoftware AnalysisFormal VerificationComputational TestingWhitebox FuzzFuzzingWhitebox FuzzingRuntime VerificationComputer EngineeringComputer ScienceStatic Program AnalysisRuntime SystemFault InjectionMutation-based TestingProgram AnalysisSoftware TestingFormal MethodsSymbolic ExecutionSystem SoftwareConstraint-based Whitebox Fuzz
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.
17
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 2.9K citations · Full text
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Automated Whitebox Fuzz Testing.
Patrice Godefroid, Michael Y. Levin, David A. Molnar · 2008 · 1K citations