DiveFuzz:通过“指令多样性”深入挖掘 CPU 漏洞的模糊测试新范式

📅 2026/7/7 19:05:16 👁️ 阅读次数 📝 编程学习
DiveFuzz:通过“指令多样性”深入挖掘 CPU 漏洞的模糊测试新范式

“ 随着 CPU 架构与指令集的快速演进,现代处理器内部逻辑变得愈发复杂,隐藏的硬件漏洞也更加难以触达。一个长期被忽视的现实问题是:大量 CPU 模糊测试工具生成的指令序列高度相似,测试空间覆盖有限,难以真正“触及”复杂微架构状态。

针对这一核心瓶颈,研究者提出了DiveFuzz,一种通过多样化指令构造(Diverse Instruction Construction)来增强 CPU Fuzzing 深度与覆盖能力的新方法,旨在让模糊测试真正“潜入”处理器内部复杂执行行为。 ”

  • 📄论文标题:DiveFuzz: Enhancing CPU Fuzzing via Diverse Instruction Construction

  • 📅发表时间: ACM SIGSAC Conference on Computer and Communications Security(CCS) ,2025

  • 🏫作者单位:中国科学院大学

  • 💡开源代码:https://github.com/in2sec/DiveFuzz

01—方法介绍

图1展示了Cascade生成的约两百万条指令的回写数据重复率。可以发现CPU模糊测试工具在生成包含不同回写数据的测试指令时遇到了障碍。

图1. 级联指令回写数据重复率

如图2所示,这些指令的模糊频率存在显著差异。所以可知,当前的CPU模糊测试存在操作码分布不均衡的问题。

图2. 在对200万条指令进行真实模糊测试期间,Cascade中RV32I扩展指令的频率分布

DiveFuzz 的核心洞察是:CPU 漏洞往往与特定指令组合、执行模式及其触发的微架构状态高度相关,而不是单条指令本身。

因此,论文不再单纯追求“更多指令”,而是关注:如何系统性地构造“更不一样”的指令序列。

整体框架可概括为三步:

① 指令语义划分

根据指令功能、操作数特征与执行行为,对指令进行语义级分类。

② 多样化构造策略

在指令选择、组合顺序与参数配置层面引入系统性多样性。

③ 覆盖反馈驱动

利用执行反馈评估指令序列对微架构状态的探索效果。

图 3. DiveFuzz架构

小结:DiveFuzz 关注的不是“跑得快”,而是“跑得不一样”。

02—关键机制

  1. 指令多样性视角,将 CPU Fuzzing 的核心从“数量”转向“差异性”。
  2. 语义驱动构造,避免盲目随机,提升指令组合有效性。
  3. 更深微架构覆盖,更容易触发复杂、隐蔽的处理器异常行为。
  4. 通用性强,可与现有 CPU Fuzzing 框架协同使用。

模块

设计思路

作用

指令语义建模

按功能与行为对指令分类

为多样化构造提供基础

多样化指令生成

系统性改变指令组合与参数

扩展测试空间覆盖

执行反馈分析

监控异常与状态变化

评估模糊测试效果

迭代增强策略

基于反馈调整生成策略

持续深入微架构状态

小结:多样性并非随机,而是“有结构、有目的”的探索。

03—实验结果

实验使用Verilator(版本v5.018)进行硬件仿真。所使用的指令集架构(ISA)模拟器是Spike(版本1.1.1-dev,提交号f8b2e39)。在XiangShan上进行模糊测试时,定制ISA模拟器Nemu(提交号277ac7d)作为差异比较工具。操作系统环境为Ubuntu 22.04。对包括XiangShan、CVA6、Rocket Core和NutShell在内的各种CPU进行了模糊测试。主要实验结果如下。

(1)实验评估了DiveFuzz在覆盖率方面的表现,使用Rocket中五种常用的覆盖率指标:控制寄存器、多路复用器(mux)、代码行数(line)、就绪/有效信号(ready/valid)和信号翻转(toggle)。结果如图4和图5所示。

图4. 控制寄存器覆盖率的比较

图5. 多路复用器、线路、就绪/有效和触发器覆盖率的比较。

(2)实验对DiveFuzz识别的所有先前未知的漏洞进行了统计分析,结果汇总于表1。

表1. DiveFuzz发现的新漏洞列表,已知漏洞未包含在内。

小结:DiveFuzz通过深入检查内部操作数值,并采用先进的变异器实现平衡的操作码模糊测试,显著提高了指令回写数据的多样性。评估表明,DiveFuzz的性能优于最先进的模糊测试器,在五个关键指标上的覆盖率比DifuzzRTL快204倍,比Cascade快114倍。此外,DiveFuzz还发现了26个新漏洞,其中15个已被分配了CVE标识符。

📌 总结

DiveFuzz 从一个看似简单却被长期忽略的角度出发,重新审视了 CPU Fuzzing 的有效性问题。通过引入多样化指令构造机制,该方法显著提升了模糊测试对复杂微架构行为的探索能力。

这一工作表明,在硬件安全领域,如何构造测试输入,往往与测试本身一样重要

📣 欢迎留言讨论

  • 你认为指令多样性是否是提升 CPU Fuzzing 效果的关键因素?

  • 在真实处理器验证流程中,DiveFuzz 的策略是否具备工程可扩展性?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!