KRACE: Data Race Fuzzing for Kernel File Systems

被引:79
作者
Xu, Meng [1 ]
Kashyap, Sanidhya [1 ]
Zhao, Hanqing [1 ]
Kim, Taesoo [1 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
来源
2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2020) | 2020年
关键词
D O I
10.1109/SP40000.2020.00078
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Data races occur when two threads fail to use proper synchronization when accessing shared data. In kernel file systems, which are highly concurrent by design, data races are common mistakes and often wreak havoc on the users, causing inconsistent states or data losses. Prior fuzzing practices on file systems have been effective in uncovering hundreds of bugs, but they mostly focus on the sequential aspect of file system execution and do not comprehensively explore the concurrency dimension and hence, forgo the opportunity to catch data races. In this paper, we bring coverage-guided fuzzing to the concurrency dimension with three new constructs: 1) a new coverage tracking metric, alias coverage, specially designed to capture the exploration progress in the concurrency dimension; 2) an evolution algorithm for generating, mutating, and merging multi-threaded syscall sequences as inputs for concurrency fuzzing; and 3) a comprehensive lockset and happens-before modeling for kernel synchronization primitives for precise data race detection. These components are integrated into KRACE, an end-to-end fuzzing framework that has discovered 23 data races in ext4, btrfs, and the VFS layer so far, and 9 are confirmed to be harmful.
引用
收藏
页码:1643 / 1660
页数:18
相关论文
共 65 条
  • [1] File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution
    Aghayev, Abutalib
    Weil, Sage
    Kuchnik, Michael
    Nelson, Mark
    Ganger, Gregory R.
    Amvrosiadis, George
    [J]. PROCEEDINGS OF THE TWENTY-SEVENTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES (SOSP '19), 2019, : 353 - 369
  • [2] Alglave J., 2019, WHOS AFRAID BIG BAD
  • [3] SharC: Checking Data Sharing Strategies for Multithreaded C
    Anderson, Zachary
    Gay, David
    Ennals, Rob
    Brewer, Eric
    [J]. PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 149 - +
  • [4] [Anonymous], 2009, Proceedings of the Workshop on Binary Instrumentation and Applications, WBIA'09, DOI DOI 10.1145/1791194.1791203
  • [5] [Anonymous], 2018, LIBFUZZER LIB COV GU
  • [6] Bohme M., 2016, P 23 ACM C COMP COMM
  • [7] Directed Greybox Fuzzing
    Bohme, Marcel
    Van-Thuan Pham
    Manh-Dung Nguyen
    Roychoudhury, Abhik
    [J]. CCS'17: PROCEEDINGS OF THE 2017 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2017, : 2329 - 2344
  • [8] PACER: Proportional Detection of Data Races
    Bond, Michael D.
    Coons, Katherine E.
    McKinley, Kathryn S.
    [J]. PLDI '10: PROCEEDINGS OF THE 2010 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2010, : 255 - 268
  • [9] Burckhardt S, 2010, ASPLOS XV: FIFTEENTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, P167
  • [10] A Deployable Sampling Strategy for Data Race Detection
    Cai, Yan
    Zhang, Jian
    Cao, Lingwei
    Liu, Jian
    [J]. FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 810 - 821