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
来源
27TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2020) | 2020年
基金
新加坡国家研究基金会;
关键词
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 条
  • [21] Influence in the Linux Kernel community
    Aaltonen, Timo
    Jokinen, Jyke
    OPEN SOURCE DEVELOPMENT, ADOPTION AND INNOVATION, 2007, 234 : 203 - +
  • [22] Cohesion analysis in Linux kernel
    Vinay Kumar, Reddy K.
    Janakiram, D.
    ASPEC 2006: 13TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2006, : 461 - +
  • [23] The sense of logging in the Linux kernel
    Keyur Patel
    João Faccin
    Abdelwahab Hamou-Lhadj
    Ingrid Nunes
    Empirical Software Engineering, 2022, 27
  • [24] Stability and volatility in the Linux kernel
    Champaign, J
    Malton, A
    Dong, XY
    SIXTH INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION, PROCEEDINGS, 2003, : 95 - 102
  • [25] The sense of logging in the Linux kernel
    Patel, Keyur
    Faccin, Joao
    Hamou-Lhadj, Abdelwahab
    Nunes, Ingrid
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (06)
  • [26] Hotswapping Linux kernel modules
    Lee, YF
    Chang, RC
    JOURNAL OF SYSTEMS AND SOFTWARE, 2006, 79 (02) : 163 - 175
  • [27] LKL: The Linux Kernel Library
    Purdila, Octavian
    Grijincu, Lucian Adrian
    Tapus, Nicolae
    9TH ROEDUNET IEEE INTERNATIONAL CONFERENCE, 2010, : 328 - 333
  • [28] Deadline scheduling in the Linux kernel
    Lelli, Juri
    Scordino, Claudio
    Abeni, Luca
    Faggioli, Dario
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (06): : 821 - 839
  • [29] Identifying clones in the Linux kernel
    Casazza, G
    Antoniol, G
    Villano, U
    Merlo, E
    Di Penta, M
    FIRST IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2001, : 90 - 97
  • [30] RCU Usage in the Linux Kernel
    McKenney P.E.
    Fernandes J.
    Boyd-Wickizer S.
    Walpole J.
    Operating Systems Review (ACM), 2020, 54 (01): : 47 - 63