本文研究如何将差分模糊测试(differential fuzzing)应用于 x86-64 指令解码器的错误发现。传统模糊测试依赖崩溃、挂起或内存访问错误作为 oracle,而差分模糊测试将同一输入在不同实现之间的行为差异作为潜在错误信号。作者提出了 MISHEGOS,一个新颖的差分模糊测试器,专门用于发现指令解码器之间的解码差异。MISHEGOS 的架构包括一个过近似(overapproximated)的机器指令模型,用于在变长指令架构上滑动生成测试用例,从而高效探测解码器的边界行为。该工具每小时可在普通硬件上生成数亿条解码器测试用例。作者在不依赖硬件解码器作为 ground truth 的情况下,利用 MISHEGOS 在多个流行的 x86-64 指令解码器中发现了数百个错误。此外,MISHEGOS 提供了一个可扩展的分析框架,使用户能够针对单个解码器发现错误,或在多个解码器之间分析各种不一致。论文还讨论了解码错误和不一致的安全影响,例如可能导致反汇编器、二进制分析工具或安全产品在生产环境中产生误判。作者以宽松许可证公开了 MISHEGOS 的源代码。本文的主要贡献包括:首次系统性地将差分模糊测试应用于指令解码器领域;提出了一种针对变长指令集的滑动模糊策略;构建了高吞吐量的测试生成与差异分析框架;并通过实验证明了该方法在发现真实解码器缺陷方面的有效性。适合从事二进制分析、反汇编器开发、模糊测试和安全工具研发的研究人员与工程师阅读。
💡 推荐理由: 指令解码器是反汇编器、二进制分析、漏洞挖掘和取证工具的核心组件。解码差异可能导致安全工具漏报或误报,甚至被攻击者利用来隐藏恶意代码。本文提出的自动化差异发现方法能帮助蓝队提前识别这些隐藏缺陷。
🎯 建议动作: 研究跟进