Evaluating Code Coverage for Kernel Fuzzers via Function Call Graph

被引:4
作者
Cho, Mingi [1 ]
Jin, Hoyong [1 ]
An, Dohyeon [1 ]
Kwon, Taekyoung [1 ]
机构
[1] Yonsei Univ, Grad Sch Informat, Seoul 03722, South Korea
关键词
Kernel; Codes; Computer bugs; Fuzzing; Linux; Tools; Licenses; kernel fuzzing; evaluation; system call; code coverage;
D O I
10.1109/ACCESS.2021.3129062
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The OS kernel, which has full system privileges, is an attractive attack surface. A kernel fuzzer that targets system calls in fuzzing is a popular tool for discovering kernel bugs that can induce kernel privilege escalation attacks. To the best of our knowledge, the relevance of code coverage, which is obtained by fuzzing, to the system call has not been studied yet. For instance, modern coverage-guided kernel fuzzers, such as Syzkaller, estimate code coverage by comparing the entire set of executed basic blocks (or edges) regardless of the system call relevancy. Our insight is that the system call relevancy could be an essential performance indicator for realizing kernel fuzzing. In this regard, this study aims to assess the system call-related code coverage of kernel fuzzers. For this purpose, we have developed a practical assessment system that leverages the Intel PT and KCOV and assessed the Linux kernel fuzzers, such as Syzkaller, Trinity, and ext4 fuzzer. The experiments on different kernel versions demonstrated that approximately 32,000-47,000 functions are implemented in the Linux kernel, and approximately 9.7-15.2% are related to the system call. Our finding is that fuzzers that achieve higher code coverage in conventional metrics do not execute more basic blocks related to system calls. Thus, we recommend that kernel fuzzers use both system call-related functions and regular basic blocks in coverage metrics to assess fuzzing performance or to improve coverage feedback.
引用
收藏
页码:157267 / 157277
页数:11
相关论文
共 41 条
[1]  
[Anonymous], 2018, AVOID SPECULATIVE IN
[2]  
[Anonymous], 2021, EXTR VMLIN
[3]  
[Anonymous], 2019, RADARE2 FRAMEWORK RE
[4]  
[Anonymous], 2021, TAIL CALL
[5]  
[Anonymous], 2021, syzbot
[6]  
[Anonymous], 2019, SYZKALLER LINUX SYSC
[7]  
[Anonymous], 2019, TRINITY LINUX SYSTEM
[8]   REDQUEEN: Fuzzing with Input-to-State Correspondence [J].
Aschermann, Cornelius ;
Schumilo, Sergej ;
Blazytko, Tim ;
Gawlik, Robert ;
Holz, Thorsten .
26TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2019), 2019,
[9]   A Survey of Symbolic Execution Techniques [J].
Baldoni, Roberto ;
Coppa, Emilio ;
D'Elia, Daniele Cono ;
Demetrescu, Camil ;
Finocchi, Irene .
ACM COMPUTING SURVEYS, 2018, 51 (03) :1-39
[10]  
Chipounov V, 2011, ACM SIGPLAN NOTICES, V46, P265, DOI [10.1145/1961296.1950396, 10.1145/1961295.1950396]