On Interaction Effects in Greybox Fuzzing
This paper introduces MuoFuzz, a greybox fuzzer that improves testing effectiveness by learning and utilizing the interaction effects between mutator sequences to generate more promising test inputs, thereby achieving superior code coverage and bug discovery compared to state-of-the-art tools like AFL++ and MOPT.
Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer
The Big Idea: It's Not Just What You Do, It's When You Do It
Imagine you are trying to crack a safe. You have a toolbox full of different tools: a hammer, a screwdriver, a lockpick, and a crowbar.
Traditional Fuzzing (The Old Way):
Most automated security testers (called "fuzzers") work like a person who randomly picks a tool, hits the safe, then picks another tool randomly, and hits it again. They might use the hammer, then the screwdriver, then the hammer again. They don't really care about the order; they just hope that eventually, one random combination will break the lock.
The Problem:
The researchers in this paper realized that the order matters. Maybe hitting the safe with a hammer first loosens the mechanism, making the screwdriver work much better on the second try. But if you use the screwdriver first, it might just get stuck, and the hammer won't help. The old tools didn't know that Tool A + Tool B is a super combo, while Tool B + Tool A is useless.
The Discovery: The "Chemistry" of Tools
The authors, Konstantinos, Marcel, and Alberto, hypothesized that there is a hidden "interaction effect" between these tools. They ran a massive experiment using 13 different software programs (like a digital safe) and tracked every single pair of tools they used.
They found that yes, the order matters.
- Analogy: Think of it like cooking. If you add salt before you boil the water, the pasta tastes different than if you add it after. The ingredients (mutators) are the same, but the sequence changes the result.
They proved this mathematically: certain pairs of tools create "interesting" results (like finding a bug or opening a new door in the code) much more often when used in a specific order.
The Solution: Meet MuoFuzz
To fix this, they built a new fuzzer called MuoFuzz. Instead of picking tools randomly, MuoFuzz is like a smart chef who learns the recipe as they go.
How MuoFuzz Works (The Two-Phase Plan):
The Training Phase (The Tasting Session):
For the first hour, MuoFuzz acts like a clumsy beginner. It tries random pairs of tools just to see what happens. It keeps a notebook: "Hey, when I used the Hammer (Tool A) followed by the Screwdriver (Tool B), I found a bug 10 times!"- It builds a "probability map" based on these observations.
The Guided Phase (The Master Chef):
After the training, MuoFuzz stops guessing randomly. It looks at its notebook. If it just used the Hammer, it knows the Screwdriver is the best next move. It uses a "random walk" (a smart kind of wandering) to pick the next tool based on what worked best immediately after the previous one.
The Result:
MuoFuzz finds bugs faster and deeper than the old methods because it stops wasting time on bad combinations and focuses on the "power couples" of tools.
The Evidence: Did It Work?
They tested MuoFuzz against the current champions of the industry:
- AFL++: The standard, which picks tools randomly with fixed odds.
- MOPT: A smart tool that learns which single tool is best, but still treats them as independent (ignoring the order).
The Scoreboard:
- Code Coverage: MuoFuzz explored more of the software (found more "rooms" in the house) than the others in 10 out of 13 tests.
- Bug Hunting: MuoFuzz found 4 bugs that AFL++ missed completely. It even found 1 bug that both AFL++ and MOPT missed.
- Speed: In many cases, MuoFuzz reached the same level of testing in 15 hours that took the others 24 hours.
Why This Matters
This paper changes how we think about automated testing. For years, we thought we just needed better individual tools. This paper says, "No, we need to understand how the tools talk to each other."
It's like realizing that in a soccer team, it's not just about having the best striker or the best goalie; it's about knowing exactly when the striker should pass to the winger to score a goal. MuoFuzz is the coach that learns those specific plays on the fly.
Summary in One Sentence
The authors discovered that the order in which software testing tools are applied matters just as much as the tools themselves, and they built a new system (MuoFuzz) that learns these specific sequences to find bugs faster and more effectively than ever before.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.