Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

auto-fuzz: umbrella issue for new features #912

Open
DavidKorczynski opened this issue Mar 15, 2023 · 6 comments
Open

auto-fuzz: umbrella issue for new features #912

DavidKorczynski opened this issue Mar 15, 2023 · 6 comments

Comments

@DavidKorczynski
Copy link
Contributor

A few to start off with:

  • add ability to avoid having to re-run fuzz-introspector each time we want to test new auto-generation improvements
  • add ability to extract merge all fuzzers into a single project and assess code coverage, filter based on which are "not needed" as they dont contribute, and avoiding duplicates.
  • add ability to e.g. compare the code coverage with existing oss-fuzz reports (accessible via https://oss-fuzz-introspector.storage.googleapis.com/index.html)
@DavidKorczynski
Copy link
Contributor Author

Add a feature for running Python type inference on the code under analysis and then using that type inference to create valid types: we could, e.g. use https://github.com/google/pytype

@DavidKorczynski
Copy link
Contributor Author

Experiment with how we can integrate LLM-style autogeneration. From looking at the ChatGPT code generation we should be able to make it so we take as input a lot of auto-generated fuzzers from ML-based frameworks.

@DavidKorczynski
Copy link
Contributor Author

I think soon we should start to look at how we can update the heuristics to work with C/C++ and also use the same approach as we do in python/java: go through oss-fuzz fuzzers and abstract them into heuristics

@DavidKorczynski
Copy link
Contributor Author

DavidKorczynski commented Mar 30, 2023

Experiment with how we can integrate LLM-style autogeneration. From looking at the ChatGPT code generation we should be able to make it so we take as input a lot of auto-generated fuzzers from ML-based frameworks.

I think in general we should start to align auto-fuzz to be able to utilise existing auto-gen solutions, for example by focusing on infrastructure to evaluate the quality of a large set of projects as well as focusing on making suggested fuzzers easily build against OSS-Fuzz projects. There seems to be a move towards auto-generation by many research groups, and it would be great to be able to utilise each of these. For example https://github.com/Samsung/UTopia is a valid project that would be great to utilise.

@occia
Copy link

occia commented Jul 26, 2023

Hi guys, I recently released a gpt-based fuzz driver generator. An evaluation on 86 APIs of 30 OSS-Fuzz C projects shows its potential practicality: it can generate correct fuzz drivers for 55 (64%) APIs fully automatically and 23 more APIs (91%) with manually configured semantic correctness checkers for filtering out the generated drivers. Here lists some example drivers generated by the tool and the technical detail behind this tool.

Currently it can directly run on APIs of dozens of OSS-Fuzz C projects. I'm still improving this tool and I have several planning on improvement. Please let me know if you are interested in it. Any suggestion or discussion is welcomed.

@ligurio
Copy link

ligurio commented Jan 12, 2024

More tools for fuzzing targets generation in 1.

Footnotes

  1. https://github.com/ligurio/sqa-wiki/wiki/fuzzing-targets-generation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants