Finding Semantic Bugs in File Systems with an Extensible Fuzzing Framework

被引:50
作者
Kim, Seulbae [1 ]
Xu, Meng [1 ]
Kashyap, Sanidhya [1 ]
Yoon, Jungyeon [1 ]
Xu, Wen [1 ]
Kim, Taesoo [1 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
来源
PROCEEDINGS OF THE TWENTY-SEVENTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES (SOSP '19) | 2019年
关键词
File systems; semantic bugs; fuzzing;
D O I
10.1145/3341301.3359662
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
File systems are too large to be bug free. Although handwritten test suites have been widely used to stress file systems, they can hardly keep up with the rapid increase in file system size and complexity, leading to new bugs being introduced and reported regularly. These bugs come in various flavors: simple buffer overflows to sophisticated semantic bugs. Although bug-specific checkers exist, they generally lack a way to explore file system states thoroughly. More importantly, no turnkey solution exists that unifies the checking effort of various aspects of a file system under one umbrella. In this paper, we highlight the potential of applying fuzzing to find not just memory errors but, in theory, any type of file system bugs with an extensible fuzzing framework: Hydra. Hydra provides building blocks for file system fuzzing, including input mutators, feedback engines, a libOS-based executor, and a bug reproducer with test case minimization. As a result, developers only need to focus on building the core logic for finding bugs of their own interests. We showcase the effectiveness of Hydra with four checkers that hunt crash inconsistency, POSIX violations, logic assertion failures, and memory errors. So far, Hydra has discovered 91 new bugs in Linux file systems, including one in a verified file system (FSCQ), as well as four POSIX violations.
引用
收藏
页码:147 / 161
页数:15
相关论文
共 48 条
  • [1] [Anonymous], 2015, P 25 ACM S OP SYST P
  • [2] [Anonymous], 2015, P 25 ACM S OP SYST P
  • [3] [Anonymous], 2017, P 26 ACM S OP SYST P
  • [4] [Anonymous], 2007, P 29 INT C SOFTW ENG
  • [5] Bacik Josef, 2017, BTRFS ADD EXTENT REF
  • [6] Bartlett Wendy, 2004, COMMERCIAL FAULT TOL
  • [7] Bohme M., 2016, P 23 ACM C COMP COMM
  • [8] Bohme M., 2017, P 24 ACM C COMP COMM
  • [9] Specifying and Checking File System Crash-Consistency Models
    Bornholt, James
    Kaufmann, Antoine
    Li, Jialin
    Krishnamurthy, Arvind
    Torlak, Emina
    Wang, Xi
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (04) : 83 - 98
  • [10] Cao Mingming, 2007, USENIX LIN STOR FIL