microsoft / restler-fuzzer

RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services.
MIT License
2.52k stars 284 forks source link

What is the difference between --search_strategy and fuzzing_mode? #785

Closed wilbaker closed 1 year ago

wilbaker commented 1 year ago

Description

Hi,

Does the command line argument --search_strategy:

    fuzz options:
        <The same options as 'test'>
        --time_budget <maximum duration in hours>
        --search_strategy [bfs-fast(default),bfs,bfs-cheap,random-walk]

Control the behavior of RESTler in the same way as the settings file option of fuzzing_mode?

https://github.com/microsoft/restler-fuzzer/blob/3c54a11f72808d9fd2fa0bd0710e0cb453ff9e71/docs/user-guide/SettingsFile.md?plain=1#L139

Based on the values these settings support I would expect that these settings are the same. However, support for the --search_strategy option was added after fuzzing_mode (--search_strategy was added here: https://github.com/microsoft/restler-fuzzer/pull/288 ) and that makes me think that there is (or was) a difference in what these settings control.

Thanks!

marina-p commented 1 year ago

Hello @wilbaker,

search_strategy is a shortcut to set the fuzzing mode through the command line. It passes through the string specified by the user to the fuzzing_mode in the engine. The behavior is the same as if you set fuzzing_mode in the engine settings.

Thanks,

Marina

wilbaker commented 1 year ago

Ok thanks! I will close this issue.