Coverage-guided fuzzing language auto-detection

Proposal

Since we use a different fuzzer for different languages, the configuration for the .gitlab-ci.yml file can get cumbersome. Sometimes, it is only a couple lines that need to be added, sometimes it is a lot more.

Rather than making users add these scripts to their gitlab-ci.yml file, we should follow SAST's example to autodetect the language(s) that is/are in the project and instantiate the correct fuzzer for them.

Possible ideas:

  • Template the scripts and automatically include the correct script when a specific language is detected
  • Create an image for each fuzzer (like SAST) and call the correct image for each language
    • This would create more overhead and maintenance, but would be easier for onboarding covfuzz users, since it would be consistent with all the other Secure test paradigms
  • Create an image that includes all the fuzzers and pass something in the config to the image to run the correct fuzzer
    • This image would likely be too large, but possibly not