googleprojectzero / googleprojectzero/fuzzilli
Optimizing weights through the MAB algorithm
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 2.3k
- Forks
- 367
- Avg merge
- 23h 53m
- Merged PRs (30d)
- 1
Description
Hello, I've noticed that in Fuzzilli, Mutators, CodeGenerators, and Templates all use fixed weights for selection, which I believe is not suitable.
Here are some experiments I've done: the probability of each Mutator generating an interesting program changes over time.
It can be observed that the CombineMutator and SpliceMutator have the highest interesting rates, but these two mutators are not assigned higher weights. Therefore, I want to optimize the weights of the mutators through the MAB algorithm. I've implemented the related code locally. In short:
- Selecting a Mutator is considered as a pull. If the Mutator generates an interesting program, it is considered a profit.
- The Thompson sampling algorithm is used to estimate the Mutator with the highest interesting rate and select it more times.
- A MABList is created to replace the original WeightedList. The MABList will automatically select the appropriate elements based on feedback.
I would like to know if you would accept this PR if I were to propose it?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue proposes replacing WeightedList with MABList for mutators, code generators, and templates using Thompson sampling. Start by tracing how these elements are selected and how interesting-program feedback is reported. Done would require maintainer agreement on the design and evidence that adaptive weighting works without disrupting existing fuzzing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- performance, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100