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 SecurityCCS 2025作者单位中国科学院大学开源代码https://github.com/in2sec/DiveFuzz01—方法介绍图1展示了Cascade生成的约两百万条指令的回写数据重复率。可以发现CPU模糊测试工具在生成包含不同回写数据的测试指令时遇到了障碍。图1. 级联指令回写数据重复率如图2所示这些指令的模糊频率存在显著差异。所以可知当前的CPU模糊测试存在操作码分布不均衡的问题。图2. 在对200万条指令进行真实模糊测试期间Cascade中RV32I扩展指令的频率分布DiveFuzz 的核心洞察是CPU 漏洞往往与特定指令组合、执行模式及其触发的微架构状态高度相关而不是单条指令本身。因此论文不再单纯追求“更多指令”而是关注如何系统性地构造“更不一样”的指令序列。整体框架可概括为三步① 指令语义划分根据指令功能、操作数特征与执行行为对指令进行语义级分类。② 多样化构造策略在指令选择、组合顺序与参数配置层面引入系统性多样性。③ 覆盖反馈驱动利用执行反馈评估指令序列对微架构状态的探索效果。图 3. DiveFuzz架构小结DiveFuzz 关注的不是“跑得快”而是“跑得不一样”。02—关键机制指令多样性视角将 CPU Fuzzing 的核心从“数量”转向“差异性”。语义驱动构造避免盲目随机提升指令组合有效性。更深微架构覆盖更容易触发复杂、隐蔽的处理器异常行为。通用性强可与现有 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 的策略是否具备工程可扩展性 点赞 收藏 分享你的支持是我们持续解析高水平软件安全论文的最大动力

相关新闻