Proj THUDBFuzz Paper Reading: DIFUZE: Interface Aware Fuzzing for Kernel Drivers

PDF

https://acmccs.github.io/papers/p2123-corinaA.pdf

Github

https://github.com/ucsb-seclab/difuze

Abstract

P1:
1-2 Device Driver重要、数目多
3 安全问题(susceptible to security vulnerabilities and lack proper vetting)
4 挑战:复杂数据结构

P2:
本文:工具DIFUZE
特点:interface-aware
目的:自动生成有效输入并触发kernel drivers的执行
方法:

  1. 静态分析
  2. 自动化
  3. 自动识别driver handlers
  4. 自动映射handler到device file names
  5. 自动构建复杂参数实例
    实验:
    对象:7个Android智能机
    效果:
    1. 能有效识别kernel driver bugs
    2. 报告了32个未知缺陷,其中包括能导致任意代码执行的缺陷

1. Intro

P1 移动设备重要性
P2 安全重要性;
已有方法:1. 沙盒 2. 多种面向userspace的防御(如Address Space Layout Randomization, Data Execution Protection, SELinux)
缺点:对移动设备内核的安全保护不够多
P3 Kernel代码分类:

  1. 核心-多为syscall, open, execve等代码,其中syscall有详细的规格说明
  2. driver device- 在POSIX兼容系统上一般为ioctl,需要在特定设备的valid command集中取command和对应的数据结构。Google统计85%Bugs发生在driver device中。
    P4 本文 DIFUZE
  3. 自动静态分析,确定相关io ctl interface
  4. 使用recovered interface来生成inputs
  5. 指导有意义的变异
  6. 着重于测试有问题或者暴露过严重安全缺陷的Driver

贡献:

  1. interface-sensitive targets
  2. 自动分析device kernel源码

2. Background

2.1 POSIX Device Drivers

原文地址:https://www.cnblogs.com/xuesu/p/15506387.html