本文提出 DiveFuzz,一种通过多样性指令构造来增强 CPU fuzzing 的方法。在 CPU fuzzing 中,全面探索架构状态类似于生成多样化的测试用例,这需要合理的操作码分布以及指令执行结果(通常通过写回数据衡量)的多样性。然而,作者对现有最先进 CPU fuzzer(如 DifuzzRTL、Cascade)的分析发现,它们在 fuzzing 过程中存在写回数据高度重复和操作码分布不平衡的问题。DiveFuzz 通过运行时精细控制指令的操作数并结合上下文语义关联,生成具有多样化写回数据和语义关联的指令流。此外,DiveFuzz 引入了一种新颖的变异器,能够监控 fuzzing 过程以动态调整操作码分布,并准确消除误报。实验使用五种常见的覆盖率指标评估,在达到相同覆盖率时,DiveFuzz 的速度比 DifuzzRTL 快 204 倍,比 Cascade 快 114 倍。在四个开源 RISC-V CPU(香山、CVA6、Rocket、NutShell)上测试,共发现 26 个新 bug,其中 15 个已分配 CVE 编号。该工作主要贡献在于:1) 揭示现有 CPU fuzzer 在指令多样性方面的不足;2) 提出通过操作数控制提升写回数据多样性的方法;3) 设计自适应变异器优化操作码分布;4) 在真实硬件上发现大量新漏洞。本文适合硬件安全测试工程师、CPU 设计验证人员以及 fuzzing 技术研究者阅读。
💡 推荐理由: CPU 是计算基础,其安全漏洞影响深远。DiveFuzz 通过提升指令多样性,显著提高了 CPU fuzzing 的效率和 bug 发现能力,为硬件安全测试提供了新思路。
🎯 建议动作: 研究跟进