Methodology
This page contains the basic methodology for fuzzing a system at a high level. There is also a description of the fuzzer development process here.
- Risk analysis of system
- Identify trust boundaries
- Data flow (DFD)
- Age of code
- File Fuzzing
- Analyze format for CRC's, crypto, etc.
- Collect sample files (LOTS!)
- Perform minset coverage analysis (peach/tools/minset)
- Perform fuzzing
- Build a "dumb" fuzzing template (fixup crcs, etc).
- Move to smarter fuzzing as needed
- Use Microsoft SDL Fuzzing requirements to know when to stop
- Network Fuzzing
- Analyze format for CRC's crypto, etc.
- Collect sample use cases
- Perform code coverage
- Identifies areas of code to receive fuzzing
- Expand use cases to improve code coverage
- Perform fuzzing
- Build a "dumb" fuzzing template (fixup crcs, etc).
- Move to smarter fuzzing as needed
- Use Microsoft SDL Fuzzing requirements to know when to stop
Peach Fuzzing Platform