Page 58 - 《软件学报》2026年第6期
P. 58
芮志清 等: MARC: 基于多智能体协同的硬件安全缺陷早期检测方法 2377
词会引导大语言模型将此结构化信息解读为安全层面的交互边界. 模型被要求在其依赖关系的输出中, 重点分析
目标模块与外部世界的交互关系, 并根据依赖源的性质, 初步推断哪些交互是可信的, 而哪些构成了潜在的攻击向
量, 实现了从结构连接信息到潜在威胁攻击面的转化.
通过自动化地识别交互边界并初步评估其信任级别, 本方法为后续的缺陷检测智能体提供了关键的潜在威胁
攻击面信息, 使其能够将分析注意力优先投入处理更具安全威胁代码的逻辑分析上, 从而显著提高了安全威胁检
测的针对性.
3.2 文档分析智能体
文档分析智能体的核心任务是系统地弥合硬件设计意图和 RTL 代码物理实现的鸿沟, 将多源、异构的模块
信息系统性地整合为一个结构化的设计安全知识库, 以应对缺乏设计安全知识的挑战, 实现对设计意图的理解.
由于模块安全缺陷检测所需的关键知识往往分布于功能设计文档、安全规范、RTL 源代码和验证脚本等多
种信息载体之中, 这些载体不仅信息体量庞大、关键内容密度低, 且不同来源信息之间的内在关联往往是隐晦的.
传统自动化方法, 难以处理非结构化文本并建立跨域关联. 如果直接将海量原始信息输入大语言模型, 不仅会超出
大模型的上下文窗口限制而导致关联失败, 还可能因为关键信息被稀释而导致严重的内容幻觉. 为解决此问题, 文
档分析智能体采用了检索增强生成技术, 实现对海量、稀疏知识源中高价值信息片段的筛选融合与总结. 为进行
高效的检索, 该智能体首先对目标模块的全部文档进行嵌入, 处理为向量. 考虑到大语言模型对输入长度的限制以
及长文本向量表征的稀疏性问题, 本文采用了一种滑动窗口分块策略. 具体而言, 原始文档被切割为最大长度不超
过 1 000 字符的文本块, 并设置了 200 个字符的重叠区, 以确保上下文语义在块与块之间的连续性与完整性, 避免
因硬性切分而导致关键信息的割裂. 随后, 每一个文本块均通过文本嵌入模型转换为能够表征其深层语义的高维
向量, 并将这些包含了原始文本、元数据及其对应向量的完整信息批量存入 ChromaDB 向量数据库中, 建立起一
个支持高效相似性搜索的知识索引. 设计了一个可被大语言模型调用的文档检索工具, 可根据模块名称或功能描
述, 从向量化知识库中查询相关的 RTL 设计、实现细节或安全信息.
根据对设计文档的观察, 硬件开发团队通常在文档中较少提及硬件自身的安全问题, 其关注点多集中于功能
实现. 因此, 为了能够系统性地将已知的硬件攻击模式引入分析流程, 弥补设计阶段可能存在的安全知识盲点, 本
文构建了一个通用缺陷枚举 (CWE) 向量数据库. 本文选用官方 CWE 列表中与硬件设计强相关的 110 个类型作为
数据源, 包含编号、名称、描述、威胁、示例代码等信息. 在向量化和存储策略上采取和文档相同的处理方式, 同
样提供了一个可被大模型调用的检索工具, 以实现语义相关的潜在缺陷模式检索.
由于在伴随式检测场景下代码处于快速迭代周期, 其实现细节常与设计文档存在不同步的情况. 因此, 为了确
保分析的准确性, 本文方法融入了代码自身的结构化信息. 本文基于抽象语法树对 RTL 代码进行建模, 从而能够
精确地提取模块的层次结构、端口定义、寄存器列表、数据流路径以及控制逻辑等关键结构化信息.
在对模块建立全面认知后, 本智能体将进行潜在威胁分析并针对该模块生成结构化的安全设计规范图谱, 图
谱字段结构如后文表 1 所示. 该过程旨在将前序步骤中融合的多模态信息, 系统性地映射到已知的硬件安全缺陷
模式上. 具体而言, 本智能体利用其对模块功能、状态机、接口协议和寄存器配置的深度理解, 自主生成多个语义
查询, 并调用上文介绍的 CWE 检索工具, 在 CWE 向量数据库中检索与之最相关的潜在缺陷模式. 最终, 本智能体
将文档分析、代码结构概要、依赖关系以及潜在 CWE 威胁等全部认知成果, 整合并输出为一个严格遵循预定义
字段结构的 JSON 对象, 作为最终的模块安全设计规范图谱, 为后续缺陷检测智能体提供了高质量、高密度的上
下文信息.
3.3 缺陷检测智能体
缺陷检测智能体是 MARC 方法中执行具体代码级安全缺陷检测的核心模块. 传统的静态分析工具因无法理
解设计意图而产生大量误报, 而通用的大模型也因为本身缺乏对代码上下文的理解能力而出现严重的幻觉现象.
本智能体利用前序智能体产出的模块安全设计规范图谱, 将高密度知识与代码分析紧密结合, 把通用的大语言模
型增强为一个具备上下文感知能力的代码审计者, 旨在解决缺乏对代码语义深层理解的研究挑战.

