论文标题
加工程序:使用控制和状态寄存器指导处理器模糊
ProcessorFuzz: Guiding Processor Fuzzing using Control and Status Registers
论文作者
论文摘要
随着多年来现代处理器的复杂性有所提高,制定有效的验证策略以在制造前识别错误变得至关重要。处理器中未被发现的微构造错误可以以侧通道,功能错误等形式表现为严重的安全漏洞。受软件模糊的启发,这是一种用于软件测试的技术,该技术通常用于软件测试,多项工作使用硬件fuzzing来验证寄存器 - 转移级(RTL)设计的验证。但是,这些作品遭受了几个局限性,例如缺乏对广泛使用的硬件说明语言(HDLS)的支持以及误导“有趣”输入的误导性信号。为了克服这些缺点,我们介绍了加工福音,这是一种处理器的绒毛,可通过新颖的CSR转换覆盖范围指标引导fuzzer。当CSR负责控制和持有处理器状态时,ProcessorFuzz监视控制和状态寄存器(CSR)中的过渡(CSR)。因此,CSR中的过渡表示新的处理器状态,并基于此反馈指导魔力机,使ProcessorFuzz能够探索新的处理器状态。 ProcessorFuzz对HDL不可知,并且在处理器设计中不需要任何仪器。因此,它支持用不同的硬件语言编写的广泛的RTL设计。我们通过三个现实世界的开源处理器(火箭,繁荣和黑色菜单)评估了ProcessorFuzz。 processorfuzz触发了一组地面错误的错误1.23 $ \ times $(平均)比difuzzrtl更快。此外,我们的实验在三个RISC-V内核中暴露了8个新错误,并在参考模型中暴露了一个新错误。所有九个错误均由相应项目的开发人员确认。
As the complexity of modern processors has increased over the years, developing effective verification strategies to identify bugs prior to manufacturing has become critical. Undiscovered micro-architectural bugs in processors can manifest as severe security vulnerabilities in the form of side channels, functional bugs, etc. Inspired by software fuzzing, a technique commonly used for software testing, multiple recent works use hardware fuzzing for the verification of Register-Transfer Level (RTL) designs. However, these works suffer from several limitations such as lack of support for widely-used Hardware Description Languages (HDLs) and misleading coverage-signals that misidentify "interesting" inputs. Towards overcoming these shortcomings, we present ProcessorFuzz, a processor fuzzer that guides the fuzzer with a novel CSR-transition coverage metric. ProcessorFuzz monitors the transitions in Control and Status Registers (CSRs) as CSRs are in charge of controlling and holding the state of the processor. Therefore, transitions in CSRs indicate a new processor state, and guiding the fuzzer based on this feedback enables ProcessorFuzz to explore new processor states. ProcessorFuzz is agnostic to the HDL and does not require any instrumentation in the processor design. Thus, it supports a wide range of RTL designs written in different hardware languages. We evaluated ProcessorFuzz with three real-world open-source processors -- Rocket, BOOM, and BlackParrot. ProcessorFuzz triggered a set of ground-truth bugs 1.23$\times$ faster (on average) than DIFUZZRTL. Moreover, our experiments exposed 8 new bugs across the three RISC-V cores and one new bug in a reference model. All nine bugs were confirmed by the developers of the corresponding projects.