MoonShine: Optimizing OS Fuzzer Seed Selection with Trace Distillation
summary
Takes 2.8 million system calls from 3,220 real programs and uses trace distillation to compress them to just over 14,000 calls while preserving 86% of original coverage. Implements a lightweight static analysis to track explicit and implicit dependencies between syscalls, integrates distilled seeds into Syzkaller, and uses strace plus kcov to collect traces and coverage. Distilled seeds raise Syzkaller coverage ~13% on average and uncover 14 kernel vulnerabilities not found before.
AI-written summary · about
chapters (11)
- 0:00Intro
- 1:09OS Fuzzing - Overview
- 2:24Synthetic Program Generation
- 6:25Trace Distillation vs. User-Level Seed Selection
- 8:18Distillation Challenges
- 11:48Tracking Implicit Dependencies
- 14:50Implementation
- 15:39Evaluation - Setup
- 17:31Effectiveness of Distillation
- 19:52Conclusion
- 21:54Coverage Improvement
related talks
20mKSG: Augmenting Kernel Fuzzing with System Call Specification Generation
32mListen to your Engine
18mOptimizing Input Minimization in Kernel Fuzzing
42mCPU Fuzzing: Automatic Discovery of...
38mHow I started chasing speculative type confusion bugs in the kernel and ended up wi...
01h 15mMake your programs more reliable with Fuzzing
35mEnter Sandbox
17mAutomated Policy Synthesis for System Call Sandboxing
