本次分享论文:Beyond Random Inputs: A Novel ML-Based Hardware Fuzzing
基本信息
原文作者:Mohamadreza Rostami, Marco Chilese, Shaza Zeitouni, Rahul Kande, Jeyavijayan Rajendran, Ahmad-Reza Sadeghi
作者单位:Technical University of Darmstadt, Texas A&M University
关键词:硬件模糊测试,机器学习,处理器安全,RISC-V,ChatFuzz
原文链接:
https://arxiv.org/pdf/2404.06856v1
开源代码:未提供
论文要点
论文简介:
现代计算系统主要依赖硬件作为信任的根基。然而,随着硬件的复杂性不断增加,跨层攻击可能会利用安全关键漏洞。传统的硬件漏洞检测方法,如随机回归和形式验证,存在局限性。虽然随机回归具有可扩展性,但在探索硬件时效率较低;而形式验证技术则常因手动工作和状态爆炸问题而受限。硬件模糊测试已成为检测大规模设计(如现代处理器)中的安全漏洞的有效方法,然而,现有的模糊测试器在合理时间内难以全面覆盖复杂硬件设计。
为了解决这一挑战,本文提出了一种新颖的基于机器学习的硬件模糊测试器——ChatFuzz。研究者的方法利用大语言模型(LLMs)来理解处理器语言,并生成数据和控制流交织且随机的机器代码序列。通过引入强化学习(RL)来指导输入生成过程,并利用代码覆盖率指标来奖励输入。
研究目的:
本文旨在提升现有硬件模糊测试方法的效率和覆盖率。通过利用大语言模型和强化学习,ChatFuzz能够生成更复杂且相关的测试输入,从而更快速、更全面地覆盖硬件设计中的潜在漏洞。具体来说,研究者的目标是克服现有模糊测试器在覆盖复杂硬件设计时的时间限制,提升测试效率,并揭示更多的安全漏洞。
研究贡献:
1. 提出并实现了首个利用机器学习进行输入生成和改进的处理器模糊测试器——ChatFuzz。
2. 提出了一种三步训练过程,包括无监督学习、反汇编器辅助的强化学习,以及基于RTL仿真的覆盖率优化。3. 实验结果显示,ChatFuzz在不到一小时内达到了74.96%的条件覆盖率,而现有最佳模糊测试器需要约30小时才能达到相同的覆盖率。
4. ChatFuzz在BOOM处理器上达到了97.02%的条件覆盖率,并在测试过程中发现了比现有工具更多的独特不匹配情况和新漏洞。
引言
传统的硬件验证技术对确保硬件设计的可靠性和正确性至关重要。在这些技术中,随机回归和形式验证方法被广泛使用。随机回归可以处理大规模硬件设计,但在探索细节时效率较低,难以发现关键组件中的漏洞。形式验证旨在验证设计是否符合预定义的属性,虽然在验证难以触及的硬件组件方面有效,但它严重依赖领域专家的手动工作,并且常导致状态爆炸,使得全面验证整个设计变得不切实际。
硬件模糊测试已成为扩展设计空间探索和揭示复杂设计(包括复杂处理器)中安全漏洞的有力方法。硬件模糊测试利用覆盖率数据(如分支条件、语句和多路复用器的控制寄存器或信号)生成测试用例,探索多样的硬件行为。相比传统的硬件验证技术,硬件模糊测试在覆盖范围、可扩展性和效率方面表现出优势。然而,现有的最佳模糊测试器在合理时间内难以全面覆盖复杂硬件设计,通常未能达到70%的覆盖率门槛。
为了解决这一挑战,研究者提出了一种新颖的基于机器学习的硬件模糊测试器——ChatFuzz。研究者的方法利用大语言模型来理解处理器语言,并生成数据和控制流交织的随机机器代码序列。通过引入强化学习指导输入生成过程,利用代码覆盖率指标进行奖励,从而显著提高条件覆盖率和测试效率。
研究背景
模糊测试通过向被测程序提供大量输入来发现传统测试方法可能遗漏的故障、漏洞或安全问题。模糊测试器可以生成随机、格式错误或异常的输入来测试程序的处理能力。近年来,由于其相对于现有验证方法的诸多优势,模糊测试在硬件安全社区中受到了广泛关注和采用。特别是模糊测试的高度自动化、成本效益高、可扩展性强,能够全面覆盖被测应用程序。
传统的处理器模糊测试器,如DifuzzRTL和TheHuzz,使用代码覆盖率和控制寄存器覆盖率作为反馈来指导变异过程。这些模糊测试器通过随机生成指令来生成种子,并通过变异当前输入中的指令生成新输入。近期的研究还提出了混合硬件模糊测试器,如HyPFuzz和PSOFuzz,它们结合了模糊测试器与形式工具和优化算法的能力,以提高覆盖率。然而,这些混合模糊测试器仍然使用传统处理器模糊测试器的种子生成和变异引擎,未能实现对深层设计区域的有效探索。
ChatFuzz
利用LLM的最新进展,研究者提出了ChatFuzz这一创新方法,以增强硬件安全性。ChatFuzz涉及使用机器语言(具体来说,是机器代码)训练大型语言模型,并使用训练后的模型生成伪随机但相互关联的指令序列进行硬件模糊测试。与现有方法不同,研究者的方法优先生成数据与控制流交织的指令序列。
ChatFuzz由多个组件组成。基于LLM的输入生成器为模糊测试目标CPU生成指令序列。RTL和ISA仿真器分别在目标CPU及其黄金模型上执行给定输入,同时记录执行轨迹。每个测试输入的RTL仿真器报告覆盖信息,这些信息用于优化输入生成过程。Mismatch检测器比较执行轨迹,以识别潜在的漏洞。
实现方法
在此部分中,研究者将详细介绍ChatFuzz组件的实现。研究者部署了Synopsys VCS和Spike仿真器,分别用于RTL和RISC-V ISA的仿真。此外,研究者开发了自定义组件用于Mismatch检测和覆盖计算。
1. Mismatch检测:该组件通过差分测试来标记目标CPU中的潜在漏洞。它比较目标CPU和其黄金模型在运行相同输入时的架构状态变化,并生成包含唯一标识的不匹配报告,从而有效减少验证工程师的手动工作量。
2. 覆盖计算:该组件负责接收RTL仿真器的覆盖报告。覆盖报告经过解析后,计算每个覆盖指标的独立覆盖、增量覆盖和总覆盖值。
3. LLM输入生成:ChatFuzz的机器学习部分完全用Python实现,使用了Pytorch和Huggingface框架。研究者利用这些框架实现了分词器、大语言模型(具体来说是GPT-2家族)和PPO算法用于强化学习。所有实验均在高性能服务器上进行。
研究评估
研究者使用十个Synopsys VCS实例作为仿真器,并通过Synopsys VCS提供的条件覆盖率指标来衡量研究者解决方案的有效性。条件覆盖率与实现新硬件行为和功能的目标一致。
研究者的分析表明,ChatFuzz和TheHuzz在运行时开销上相似。然而,当考虑等效数量的生成测试(1.8K)时,ChatFuzz实现了74.96%的条件覆盖率,而TheHuzz仅达到了67.4%。值得注意的是,TheHuzz需要大约30小时才能达到75%的覆盖率,而ChatFuzz以34.6倍的速度实现了相同的覆盖量。最终,ChatFuzz通过生成199K个测试用例实现了79.14%的条件覆盖率,而TheHuzz达到了76.7%的条件覆盖率。此外,ChatFuzz在Boom处理器上实现了97.02%的条件覆盖率。
论文结论
研究者介绍了ChatFuzz,这是一种新颖的硬件模糊测试器,利用大语言模型学习机器语言并生成复杂、相互关联、数据/控制流交织和伪随机的测试用例。研究者的方法显著提高了条件覆盖率,在不到一小时内达到74.96%,而现有的最佳硬件模糊测试器需要大约30小时才能达到相同的覆盖率。
在Boom处理器上,ChatFuzz在49分钟内实现了97.02%的条件覆盖率。ChatFuzz成功识别了100多个独特的不匹配,揭示了两个新漏洞,并暴露了RocketCore行为与黄金模型的偏差,甚至在RISC-V ISA规范中规定的复杂角落案例中。这些结果突显了ChatFuzz在探索处理器漏洞方面的有效性,提供了一种更快、更全面的硬件安全和测试方法。
原作者:论文解读智能体
校对:小椰风
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)