Messages in this thread | | | Date | Mon, 13 Apr 2020 10:14:26 +0200 | From | Greg Kroah-Hartman <> | Subject | Re: [PATCH v3] Add kernel config option for tweaking kernel behavior. |
| |
On Mon, Apr 13, 2020 at 03:33:17PM +0900, Tetsuo Handa wrote: > Existing kernel config options are defined based on "whether you want to > enable this module/feature or not". And such granularity is sometimes > too rough-grained for fuzzing tools which try to find bugs inside each > module/feature. > > While syzkaller (one of fuzzing tools) is finding many bugs, sometimes > syzkaller examines stupid operations. Some examples of such operations > are: changing console loglevel which in turn makes it impossible to get > kernel messages when a crash happens, freezing filesystems which in turn > causes khungtaskd to needlessly complain, programmatically sending > Ctrl-Alt-Del which in turn causes the system to needlessly reboot. > Currently we prevent syzkaller from examining stupid operations by > blacklisting syscall arguments and/or disabling whole functionality > using existing kernel config options. But such approach is difficult to > maintain and needlessly prevents fuzzers from testing kernel code. [1] > > We want fuzzers to test as much coverage as possible while we want > fuzzers not to try stupid operations. To achieve this goal, we want > cooperation from kernel side, and build-time branching (i.e. kernel > config options) will be the simplest and the most reliable. > > Therefore, this patch introduces a kernel config option which allows > selecting fine-grained kernel config options for tweaking kernel's > behavior. Each fine-grained kernel config option will be added by future > patches. For ease of management, grouping kernel config options for > allowing e.g. syzkaller to select all fine-grained kernel config options > which e.g. syzkaller wants would be added by future patches. > > [1] https://lkml.kernel.org/r/CACT4Y+a6KExbggs4mg8pvoD554PcDqQNW4sM15X-tc=YONCzYw@mail.gmail.com > > Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> > Cc: Dmitry Vyukov <dvyukov@google.com> > --- > lib/Kconfig.debug | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > Changes since v2 ( https://lkml.kernel.org/r/20200307135822.3894-1-penguin-kernel@I-love.SAKURA.ne.jp ): > Reduce the role of this kernel config option from "enable everything > which would be useful for fuzz testing" to "simply serve as a gate for > hiding individual kernel config option", for we should use individual > kernel config option for tweaking individual kernel behavior. > > Changes since v1 ( https://lkml.kernel.org/r/20191216095955.9886-1-penguin-kernel@I-love.SAKURA.ne.jp ): > Drop users of this kernel config option. > Update patch description. > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 50c1f5f08e6f..a7c3ebc21428 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -2223,4 +2223,15 @@ config HYPERV_TESTING > > endmenu # "Kernel Testing and Coverage" > > +menuconfig TWEAK_KERNEL_BEHAVIOR > + bool "Tweak kernel behavior" > + help > + Saying Y here allows modifying kernel behavior via kernel > + config options which will become visible by selecting this > + config option.
This "help" text really only says "say Y here to allow for some config options". It doesn't explain what these are for, or why anyone would select them, or what type of options are here at all.
I don't see how this option, by just looking at it, relates to your goal of doing things to make fuzzers' lives easier.
thanks,
greg k-h
| |