-
Notifications
You must be signed in to change notification settings - Fork 347
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
Session.fuzz()
options to minimize redundant testcases
#624
Comments
Hey @kamakazikamikaze! Sorry for the long delay, things are a bit busy over here at the moment. I really like you proposal, it would be a great improvement to boofuzz! I'd be happy to review the PR! Your time measurements are really interesting as well. I always thought some kind of deduplication logic would impose a larger time penalty than the benefit from the skipped test cases. But I guess that highly depends on how high the test case frequency is. About the |
Understood. Since this is something I've developed while at work I've gotta go through some internal review processes for approval to release. In the meantime I'll expand the EDIT 2022-07-05: Still waiting for Legal to review my request to submit a PR. I'll try to do weekly or bi-weekly updates on the status when I can. EDIT 2022-07-20: Legal hasn't responded to my message inquiries. Trying to avoid escalating up the chain since they have higher priorities to deal with but I'm prepping an email when it's been long enough of a wait. |
Thank you @kamakazikamikaze and good luck on the legal process! I dropped an implementation thought in the linked discussion. I think |
Proposal
Continuing from #622, I believe it would be beneficial to add additional parameters to
Session.fuzz()
for fine-tuning the generation of testcases. The current method of recursive generation may cause BooFuzz to revisit already-sent payloads.Therefore I would suggest/request the following:
min_depth
parameter that specifies the minimum combinatorial count ofFuzzable
mutations to use in testcasesunique_only
parameter that modifies the test generation logic to ignore mutation ordering when determining if a testcase has already been visitedI have included example code in the discussion answer that demonstrates how this can behave as well as the performance speedup in doing so.
Use-Case
Our test targets are rate-limited and the pre-/post-testcase callbacks will likely add significant processing time for checks/verification of results. Reducing the quantity of redundant testcases will help us optimize our time and ensure that we can reasonably perform testing in our approaching window. Other users may benefit from the reduction of redundant testcases when they include a large number of primitives in a payload.
Anything else?
The code example provided is a demonstration of the benefit(s) from this request and by no means an expectation of how it should be implemented.
The text was updated successfully, but these errors were encountered: