Page 53 - 《软件学报》2026年第6期
P. 53

2372                                                       软件学报  2026  年第  37  卷第  6  期


                    挑战  2: 缺乏对代码语义的深层理解导致的高误报率. 现有早期检测技术普遍依赖基于语法和结构的浅层模
                 式匹配技术. 然而, 硬件设计的正确性本质上是由深层的功能与上下文语义所决定的. 这种分析能力与验证需求之
                 间的不匹配, 是导致高误报率的核心原因. 现有方法虽能识别出局部代码中与安全缺陷模式相似的结构, 但无法推
                 断出代码的安全意图, 因而无法判断数据流的信任等级、对关键资产的访问权限, 以及是否存在违反安全协议的
                 状态转换等深层安全问题. 因此, 许多在特定功能或协议上下文中完全正确的设计实现, 会因其结构触发了规则集
                 中通用的、与上下文无关的启发式规则, 而被错误地标记为安全缺陷. 这种由语义缺失所引致的海量误报, 极大地
                 增加了硬件工程师的人工甄别负担, 削弱了自动化工具在工程实践中的应用价值.
                    大语言模型     (large language model, LLM) [10] 的发展与应用, 为在无需依赖完全成熟的测试框架下检测代码缺
                 陷提供了一种可能的途径. LLM         在  RTL  代码生成  [11] 和修复  [12] 等任务上已取得相当程度的成功, 但其在安全缺陷
                 检测方面的能力仍有待验证. 在软件领域, 已有前期工作探索了将                    LLM  与静态分析相结合的方法. 例如, IRIS       [13] 利
                 用  CodeQL  作为静态分析工具并与      LLM  协同, 以检测   Java 代码中的代码注入漏洞. Chapman      等人  [14] 提出了一种
                 将  LLM  与  EESI 静态分析工具相结合的方法, 用于检测特定错误推断问题. LLIFT               [15] 利用  LLM  与静态分析的组
                 合, 来检测  Linux  内核中使用前未初始化的缺陷. 此外, Li 等人          [16] 使用微调后的  LLM  生成领域代码, 用以增强对
                 深度学习库的动态模糊测试. LLM          的决策过程可用于判断一段代码是否不安全, 但它无法控制工具使用的流程或
                 信息收集的过程. 这种在自主思考上的差距可以通过在多智能体中使用                        LLM  来填补. 通过赋予     LLM  制定计划、
                 在适当时使用工具以及在框架内控制流程的能力, LLM                 就如同一个能够做出类似人类决策的智能体               [17] . 这能更好
                 地模拟   RTL  设计者或验证工程师审计代码时的思维过程. 此外, 寻找漏洞的过程可能需要迭代地使用多种方法来
                 定位设计行为异常的原因. 这个过程可以在一个多智能体框架中进行模拟.
                    受到上述基于大语言模型的代码分析工作启发, 本文提出了一种基于多智能体协同的硬件安全缺陷早期检测
                 方法——MARC (multi-agent RTL checker). 该方法的核心机制在于通过由多个专业智能体构成的协同系统, 系统
                 性地弥合设计知识与代码分析间的鸿沟. 具体而言, 首先, 由依赖分析智能体基于                        AST  构建包含跨模块依赖的深
                 度代码语义图; 随后, 由文档分析智能体从非结构化文档中提取结构化的设计规约以解决漏报问题                                (以应对挑战
                 1); 然后, 缺陷检测智能体对代码进行深度分析, 以识别潜在风险点; 最终, 由缺陷确认智能体扮演验证专家角色,
                 利用前序智能体构建的完整知识与上下文进行深度逻辑推理, 从而精准甄别真实缺陷, 并滤除因缺乏语义理解而
                 产生的误报    (以应对挑战    2). 通过这种分层协同框架, MARC        能够将设计规约与代码语义深度融合, 实现远超单一
                 方法的检测精度与可靠性. 本文主要贡献如下.
                    1) 提出了一种基于多智能体协同的硬件安全缺陷早期检测方法                     MARC, 通过模拟专家团队的协同审查流程,
                 系统性地解决了传统方法在          RTL  级硬件安全缺陷早期检测问题上的高漏报率与高误报率问题.
                    2) 通过基于检索增强生成        (retrieval-augmented generation, RAG) [18] 技术将非结构化的硬件文档知识和安全规
                 范转换为模块相关的结构化安全规范图谱, 并将其应用于                  RTL  级硬件安全缺陷早期检测.
                    3) 通过实验证明, MARC     能够将漏报率与误报率相较于基准方法分别降低约                  18.2%  与  19.1%; 并支撑团队获
                 得  HACK@DATE 2025  硬件漏洞挖掘竞赛全球冠军         [19] , 成功挖掘  1  个获  CVE  编号的真实漏洞.
                    本文第   1  节介绍研究背景、现有主流技术及其局限性, 并对相关工作进行综述. 第                      2  节对本文所研究的问题
                 进行形式化定义, 并系统阐述现有技术在漏报率与误报率方面面临的核心挑战. 第                          3  节详细阐述本文提出的基于
                 多智能体协同的硬件安全缺陷早期检测框架, 包括其整体架构、各智能体的设计与各智能体的协同工作机制. 第
                 4  节通过全面的量化实验, 将      MARC  与现有基准方法进行多维度性能比较与分析. 第                5  节讨论本文方法的潜在局
                 限性并展望未来研究方向. 第         6  节对全文工作进行总结.

                  1   背景及相关工作

                  1.1   RISC-V  生态下的硬件安全新挑战
                    开放指令集架构      RISC-V  正以前所未有的态势重塑全球半导体格局, 其开放、模块化与可扩展的特性在极大
                 促进硬件生态创新与自主可控生态构建的同时                [20] , 也对硬件设计的内在安全性与可靠性提出了更为严苛的要求.
   48   49   50   51   52   53   54   55   56   57   58