HFL: Hybrid Fuzzing on the Linux Kernel

被引:79
|
作者
Kim, Kyungtae [1 ]
Jeong, Dae R. [2 ]
Kim, Chung Hwan [3 ]
Jang, Yeongjin [4 ]
Shin, Insik [2 ]
Lee, Byoungyoung [1 ,5 ]
机构
[1] Purdue Univ, W Lafayette, IN 47907 USA
[2] Korea Adv Inst Sci & Technol, Daejeon, South Korea
[3] NEC Labs Amer, Princeton, NJ USA
[4] Oregon State Univ, Corvallis, OR 97331 USA
[5] Seoul Natl Univ, Seoul, South Korea
基金
新加坡国家研究基金会;
关键词
D O I
10.14722/ndss.2020.24018
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Hybrid fuzzing, combining symbolic execution and fuzzing, is a promising approach for vulnerability discovery because each approach can complement the other. However, we observe that applying hybrid fuzzing to kernel testing is challenging because the following unique characteristics of the kernel make a naive adoption of hybrid fuzzing inefficient: 1) having indirect control transfers determined by system call arguments, 2) controlling and matching internal system state via system calls, and 3) inferring nested argument type for invoking system calls. Failure to handling such challenges will render both fuzzing and symbolic execution inefficient, and thereby, will result in an inefficient hybrid fuzzing. Although these challenges are essential to both fuzzing and symbolic execution, to the best of our knowledge, existing kernel testing approaches either naively use each technique separately without handling such challenges or imprecisely handle a part of challenges only by static analysis. To this end, this paper proposes HFL, which not only combines fuzzing with symbolic execution for hybrid fuzzing but also addresses kernel-specific fuzzing challenges via three distinct features: 1) converting indirect control transfers to direct transfers, 2) inferring system call sequence to build a consistent system state, and 3) identifying nested arguments types of system calls. As a result, HFL found 24 previously unknown vulnerabilities in recent Linux kernels. Additionally, HFL achieves 15% and 26% higher code coverage than Moonshine and Syzkaller, respectively, and over kAFL/S2E/TriforceAFL, achieving even four times better coverage, using the same amount of resources (CPU, time, etc.). Regarding vulnerability discovery performance, HFL found 13 known vulnerabilities more than three times faster than Syzkaller.
引用
收藏
页数:17
相关论文
共 50 条
  • [31] Sequence Directed Hybrid Fuzzing
    Liang, Hongliang
    Jiang, Lin
    Ai, Lu
    Wei, Jinyi
    PROCEEDINGS OF THE 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER '20), 2020, : 127 - 137
  • [32] SYZVEGAS: Beating Kernel Fuzzing Odds with Reinforcement Learning
    Wang, Daimeng
    Zhang, Zheng
    Zhang, Hang
    Qian, Zhiyun
    Krishnamurthy, Srikanth, V
    Abu-Ghazaleh, Nael
    PROCEEDINGS OF THE 30TH USENIX SECURITY SYMPOSIUM, 2021, : 2741 - 2758
  • [33] KRACE: Data Race Fuzzing for Kernel File Systems
    Xu, Meng
    Kashyap, Sanidhya
    Zhao, Hanqing
    Kim, Taesoo
    2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2020), 2020, : 1643 - 1660
  • [34] Razzer: Finding Kernel Race Bugs through Fuzzing
    Jeong, Dae R.
    Kim, Kyungtae
    Shivakumar, Basavesh
    Lee, Byoungyoung
    Shin, Insik
    2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 754 - 768
  • [35] Linux Security Modules: General security support for the Linux kernel
    Wright, C
    Cowan, C
    Smalley, S
    Morris, J
    Kroah-Hartman, G
    USENIX ASSOCIATION PROCEEDINGS OF THE 11TH USENIX SECURITY SYMPOSIUM, 2002, : 17 - 31
  • [36] Probabilistic Path Prioritization for Hybrid Fuzzing
    Zhao, Lei
    Cao, Pengcheng
    Duan, Yue
    Yin, Heng
    Xuan, Jifeng
    IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, 2022, 19 (03) : 1955 - 1973
  • [37] DDRace: Finding Concurrency UAF Vulnerabilities in Linux Drivers with Directed Fuzzing
    Yuan, Ming
    Zhao, Bodong
    Li, Penghui
    Liang, Jiashuo
    Han, Xinhui
    Luo, Xiapu
    Zhang, Chao
    PROCEEDINGS OF THE 32ND USENIX SECURITY SYMPOSIUM, 2023, : 2849 - 2866
  • [38] Automated Hybrid Fuzzing of Web APIs
    Bogle, Andrea
    Tran, Tan
    Ceja, Rafael
    Sasaki, Joshua
    Mahmood, Riyadh
    Proceedings - 2024 IEEE International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2024, 2024, : 283 - 292
  • [39] PrIntFuzz: Fuzzing Linux Drivers via Automated Virtual Device Simulation
    Ma, Zheyu
    Zhao, Bodong
    Ren, Letu
    Li, Zheming
    Ma, Siqi
    Luo, Xiapu
    Zhang, Chao
    PROCEEDINGS OF THE 31ST ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2022, 2022, : 404 - 416
  • [40] Model checking scheduler of linux kernel
    Liu, Tong-Xuan
    Zhang, Qiong-Sheng
    Chen, Xiao-Wei
    Xu, Lei
    Harbin Gongye Daxue Xuebao/Journal of Harbin Institute of Technology, 2009, 41 (SUPPL. 1): : 148 - 155