No Grammar? No Problem! Towards Fuzzing the Linux Kernel without System-Call Descriptions
Presenter
Manuel Egele or Alexander Bulekov
Abstract
(From the paper)
The integrity of the entire computing ecosystem depends on the security
of our operating systems (OSes). Unfortunately, due to the scale and
complexity of OS code, hundreds of security issues are found in OSes,
every year. As such, operating systems have constantly been prime use-
cases for applying security-analysis tools. In recent years, fuzz-
testing has appeared as the dominant technique for automatically
finding security issues in software. As such, fuzzing has been adapted
to find thousands of bugs in kernels. However, modern OS fuzzers, such
as Syzkaller, rely on precise, extensive, manually created harnesses
and grammars for each interface fuzzed within the kernel. Due to this
reliance on grammars, current OS fuzzers are faced with scaling-issues.
In this paper, we present FuzzNG, our generic approach to fuzzing
system-calls on OSes. Unlike Syzkaller, FuzzNG does not require
intricate descriptions of system-call interfaces in order to function.
Instead FuzzNG leverages fundamental Kernel design features in order to
reshape and simplify the fuzzer’s input-space. As such FuzzNG only
requires a small config, for each new target: essentially a list of
files and system-call numbers the fuzzer should explore.
We implemented FuzzNG for the Linux kernel. Testing FuzzNG over 10
Linux components with extensive descrip tions in Syzkaller showed that,
on average, FuzzNG achieves 102.5% of Syzkaller’s coverage. FuzzNG
found 9 new bugs (5 in components that Syzkaller had already fuzzed
extensively, for years). Additionally, FuzzNG’s lightweight configs are
less than 1.7% the size of Syzkaller’s manually-written grammars.
Crucially, FuzzNG achieves this without initial seed-inputs, or expert
guidance.
Refs
- Alexander Bulekov (Boston University), Bandan Das (Red Hat), Stefan
Hajnoczi (Red Hat), Manuel Egele (Boston University),
Fuzzing the Linux Kernel without System-Call Descriptions , NDSS 2023:
ref