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

Apply traditional fuzzing #61

Closed
danwt opened this issue Apr 22, 2022 · 5 comments
Closed

Apply traditional fuzzing #61

danwt opened this issue Apr 22, 2022 · 5 comments
Assignees
Labels
scope: testing Code review, testing, making sure the code is following the specification.

Comments

@danwt
Copy link
Contributor

danwt commented Apr 22, 2022

What is fuzzing

Traditional fuzzing [AFL] is really good at finding bugs in programs that accept 'byte' style data. e.g. programs like parsers and renderers that accept complex images or strings. These programs are often components in bigger systems, therefore fuzzing can be useful for testing a lot of different software. Fuzzers work by generating input data and watching the output of the target binary in a loop. They are easy to use, only requiring (usually) a sandboxed setup to run them in (because a buggy target program might do nasty things to your computer).

Application in interchain security

Fuzzing can be a very cost effective tool so if there is a reason to use in on interchain security then I'd like to. The question is if there is any need? Is there enough of the right kind of surface in ccv/interchain security to suggest fuzzing would be useful? The right kind of surface is usually things like parsers ect.

@danwt
Copy link
Contributor Author

danwt commented Apr 22, 2022

Question: is fuzzing likely to find anything? Is there any juicy surface area to apply it to in interchain-security/ccv?

@danwt danwt self-assigned this Apr 22, 2022
@jtremback
Copy link
Contributor

Depends on what you mean by fuzzing. I consider "fuzzing" to be any process where a random sequence of inputs are given to the program, whether those inputs are random bytes, or random messages generated within some schema, like the SDK Simapp. But maybe I am using the term wrong.

I don't think there is any application for fuzzing with random bytes.

Fuzzing with random messages may be useful but may be tricky because there are two chains at play and the application is somewhat complicated. It might be hard to get anywhere interesting.

@danwt
Copy link
Contributor Author

danwt commented Apr 25, 2022

By fuzzing I mean using tools that have some kind of feedback loop or 'smartness' built in.

I'll save this issue for later as it seems low priority.

@danwt
Copy link
Contributor Author

danwt commented Apr 26, 2022

There is an example of OSS-Fuzz being used successfully in the sdk here

@mpoke mpoke moved this to Todo in Replicated Security Apr 26, 2022
@mpoke mpoke added the scope: testing Code review, testing, making sure the code is following the specification. label Apr 26, 2022
@danwt
Copy link
Contributor Author

danwt commented Aug 15, 2022

I'll close this until there is a concrete target for it.

@danwt danwt closed this as completed Aug 15, 2022
Repository owner moved this from Todo to Done in Replicated Security Aug 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope: testing Code review, testing, making sure the code is following the specification.
Projects
No open projects
Status: Done
Development

No branches or pull requests

3 participants