| Introduction to Vulnerability Research | p. 1 |
| Statement of Scope | p. 2 |
| Off-by-One Errors | p. 3 |
| Programming Language Use Errors | p. 5 |
| Integer Overflows | p. 5 |
| Bugs and Vulnerabilities | p. 7 |
| The Vaunted Buffer Overflow | p. 7 |
| Finding Bugs and Vulnerabilities | p. 9 |
| Source Code Review | p. 9 |
| Black Box Testing | p. 10 |
| Glass Box Testing | p. 10 |
| Fuzzing-What's That? | p. 11 |
| Introduction | p. 12 |
| Introduction to Fuzzing | p. 12 |
| Milestones in Fuzzing | p. 14 |
| Fuzzing Technology | p. 16 |
| Traffic Sniffing | p. 18 |
| Prepared Template | p. 19 |
| Second-Generation Fuzzing | p. 19 |
| File Fuzzing | p. 22 |
| Host-side Monitoring | p. 22 |
| Vulnerability Scanners as Fuzzers | p. 22 |
| Uses of Fuzzing | p. 23 |
| Open Source Fuzzers | p. 24 |
| Commercial-Grade Fuzzers | p. 24 |
| What Comes Next | p. 25 |
| The Software Development Life Cycle | p. 25 |
| Building a Fuzzing Environment | p. 27 |
| Introduction | p. 28 |
| Knowing What to Ask | p. 28 |
| Basic Tools and Setup | p. 34 |
| Data Points | p. 34 |
| Crash Dumps | p. 34 |
| Fuzzer Output | p. 36 |
| Debuggers | p. 37 |
| Recon Tools | p. 40 |
| Linux | p. 41 |
| OSX | p. 42 |
| Summary | p. 44 |
| Open Source Fuzzing Tools | p. 45 |
| Introduction | p. 46 |
| Frameworks | p. 46 |
| Special-Purpose Tools | p. 48 |
| General-Purpose Tools | p. 52 |
| Commercial Fuzzing Solutions | p. 55 |
| Introduction | p. 56 |
| Build Your Own Fuzzer | p. 67 |
| Hold Your Horses | p. 68 |
| Fuzzer Building Blocks | p. 70 |
| One or More Valid Data Sets | p. 70 |
| Understanding What Each Bytein the Data Set Means | p. 71 |
| Change the Values of the Data Sets While Maintaining the Integrity ofthe Data Being Sent | p. 72 |
| Recreate the Same Malformed DataSet Time and Time Again | p. 72 |
| An Arsenal of Malformed Values, or the Abilityto Create a Variety of Malformed Outputs | p. 73 |
| Maintain a Form of a State Machine | p. 74 |
| Summarize | p. 75 |
| Down to Business | p. 75 |
| Simplest Fuzz Testing Find Issues | p. 88 |
| Integration of Fuzzing in the Development Cycle | p. 91 |
| Introduction | p. 92 |
| Why Is Fuzzing Important to Include in a Software Development Cycle? | p. 93 |
| Security Testing Workload | p. 93 |
| Setting Expectations for Fuzzers in a Software Development Lifecycle | p. 101 |
| Fuzzing as a Panacea | p. 101 |
| Fuzzing Tools versus | p. 103 |
| Setting the Plan for Implementing Fuzzers into a Software Development Lifecycle | p. 103 |
| Setting Goals | p. 104 |
| Building and Executing on the Plan | p. 111 |
| Understanding How to Increase Effectiveness of Fuzzers, and Avoiding Any Big Gotchas | p. 115 |
| Hidden Costs | p. 116 |
| Finding More Vulnerabilities | p. 119 |
| Summary | p. 126 |
| Solutions Fast Track | p. 126 |
| Frequently Asked Questions | p. 130 |
| Standardization and Certification | p. 133 |
| Fuzzing and the Corporate Environment | p. 134 |
| Software Security Testing, the Challenges | p. 134 |
| Testing for Security | p. 135 |
| Fuzzing as a Viable Option | p. 137 |
| Business Pressure | p. 138 |
| Software Security Certification | p. 139 |
| Meeting Standards and Compliance | p. 139 |
| Tester Certification | p. 140 |
| Industry Pressure | p. 140 |
| Antivirus Product Testing and Certification | p. 140 |
| What Is a File? | p. 143 |
| Introduction | p. 144 |
| Are File Fuzzers Special? | p. 145 |
| Analyzing and Building Files | p. 149 |
| Textual Files | p. 150 |
| Binary Files | p. 151 |
| Running the Test | p. 156 |
| Monitoring the Application with the Test Cases | p. 161 |
| Code Coverage and Fuzzing | p. 163 |
| Introduction | p. 164 |
| Code Coverage | p. 164 |
| Obtaining Code Coverage | p. 167 |
| Instrumenting the Binary | p. 167 |
| Monitoring a Closed Source Application | p. 169 |
| Improving Fuzzing with Code Coverage | p. 171 |
| Manual Improvements | p. 174 |
| Dynamically Generating Code Coverage Improvements | p. 181 |
| Statically Generating Code Coverage | p. 185 |
| Weaknesses of Code Coverage | p. 188 |
| Summary | p. 190 |
| Solutions Fast Track | p. 190 |
| Frequently Asked Questions | p. 192 |
| Index | p. 193 |
| Table of Contents provided by Ingram. All Rights Reserved. |