STAFF:基于状态污点追踪的全系统固件模糊测试
摘要
现代嵌入式Linux设备(如路由器、IP摄像机和物联网网关)依赖复杂的软件栈,其中众多守护进程相互交互以提供服务。从安全角度测试这些设备至关重要,因为供应商通常使用未记录发布和补丁的定制闭源或开源软件。近期基于覆盖率的模糊测试方案主要测试单个进程,忽略了守护进程间的深层依赖关系及其持久化内部状态。
本文提出STAFF框架,该固件模糊测试框架围绕三个核心思想构建:
- 用户驱动的多请求记录:监控用户与仿真固件的交互,捕获涉及应用层协议(如HTTP)的请求序列
- 进程内外依赖检测:使用全系统污点分析追踪输入字节如何影响用户空间状态(包括文件、套接字和内存区域)
- 协议感知的污点引导模糊测试:基于识别出的依赖关系对请求序列进行变异,利用多阶段分支服务器高效检查点协议状态
在15个基于Linux的固件目标评估中,STAFF发现了42个涉及多个网络请求和不同固件守护进程的漏洞,在漏洞发现数量和可复现性方面显著优于现有最先进的模糊测试方案。
论文状态
本文目前正在《Computers & Security》(Elsevier)期刊进行审稿。