googleprojectzero / googleprojectzero/fuzzilli

Optimizing weights through the MAB algorithm

Open
#506 2 comments 0 reactions 0 assignees View on GitHub

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.

Image

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.