会议: NDSS’20
链接: https://www.ndss-symposium.org/wp-content/uploads/2020/02/24018-paper.pdf
作者: Kyungtae Kim, Dae R. Jeong, Chung Hwan Kim, Yeongjin Jang, Insik Shin‡ Byoungyoung Lee
Contributor: fhr

abstract

混合Fuzzing是一种结合模糊测试和符号执行的程序分析技术,在漏洞挖掘领域有良好的前景。模糊生成和精确生成测试用例二者互为补充,能够克服各自的局限性。然而,由于内核所具有的特性,直接将Hybird Fuzzing应用到Kernel上存在如下挑战:

(1)由系统调用参数决定的间接控制流分析

(2)系统调用及参数之间隐式依赖关系分析

(3)系统调用参数的嵌套类型推断

本文基于Syzkaller和S2E(binary lifting & klee)提出HFL这一面向kernel的混合fuzzing工具,并提出三项技术来解决上述问题。

(1)通过编译期的分析优化,将间接跳转转换为直接跳转。

(2)通过静态指针分析,选择性地符号化数据变量并推断syscall之间的依赖关系。

(3)根据处理syscall参数的方式不同,在运行时推断嵌套参数类型。

实验结果表明,HFL能够高效地将混合fuzzing技术引入内核的安全分析中。HFL的代码覆盖率高于Moonshine、Syzkaller、TriforceAFL等工作,并且发现了24个未知漏洞。