Envoy developers use coverage-guided fuzz tests to automatically discover parser bugs and harden Envoy for production deployments.
- Service proxies are becoming increasingly complex data parsers
- Envoy supports HTTP protocol translation, payload decompression, gRPC-JSON transcoding, and many other features that operate directly on raw request bytes
- Malicious HTTP requests may trigger undefined behavior, resulting in service mesh downtime
- Coverage-guided fuzz tests capture intricate corner cases that a developer may have missed
- Integration with OSS Fuzz provides continuous fuzz testing and vulnerability reports
- Continuous fuzzing is essentially running fuzzers 24/7 in the background
- Coverage-guided fuzzers employ a feedback loop to generate inputs based on code coverage
- Optimization problem: fuzzers are trying to optimize against the input space and the loss function is inversely proportional to code coverage