Page 62 - 《软件学报》2026年第6期
P. 62
芮志清 等: MARC: 基于多智能体协同的硬件安全缺陷早期检测方法 2381
表 2 数据集中的 IP 核及其设计规模
设计 设计 文档 文档
IP模块 功能描述
文件数 代码行数 文件数 字符数
adc_ctrl 用于双通道模数转换器的低功耗控制器 7 5 679 8 78 491
aes 具备侧信道对抗和故障注入对抗能力的AES加速器 37 14 742 8 121 870
csrng 密码学安全随机数生成器 12 7 820 9 127 943
对来自随机噪声源的原始熵比特进行过滤与校验, 并将其转发
entropy_src 18 10 511 8 183 955
至密码学安全随机数生成器
gpio 通用输入输出通信模块, 允许软件通过I/O引脚通信 3 1 326 8 60 220
hmac SHA-2密钥散列消息认证码及哈希加速器 4 4 595 8 98 103
密钥管理器, 可以管理身份标识与根密钥, 保护机密资产免受软
keymgr 14 7 606 8 131 282
件访问, 提供密钥派生接口
管理设备的生命周期状态与状态转换, 并控制对密钥管理器、
lc_ctrl 10 5 403 8 151 664
闪存、一次性可编程存储器以及调试接口的访问
lowrisc_ibex 兼容RV32指令集的RISC-V CPU核心 30 18 939 8 56 700
otbn 非对称密码学的可编程协处理器 24 12 033 21 269 330
otp_ctrl 一次性可编程存储器的控制器 15 11 997 9 203 156
prim 一组可复用的底层硬件组件的集合 157 22 843 12 55 971
spi_device 负责通过 SPI 总线进行命令和数据交互 17 31 983 5 164 122
基于此判定方式, 我们将检测结果分为以下 4 种情况: 1) 真阳性 (true positive, TP): 检测工具报告了一个缺陷,
且该缺陷与真实缺陷集中的一个条目成功匹配. TP 的数量表示被正确检出的真实缺陷数量. 2) 假阳性 (false
positive, FP): 检测工具报告了一个缺陷, 但在真实缺陷集中不存在与之匹配的条目. FP 的数量表示被错误报告的
非缺陷代码, 即误报. 3) 假阴性 (false negative, FN): 真实缺陷集中的某个缺陷, 没有被检测工具报告. FN 的数量表
示被遗漏的真实缺陷, 即漏报. 4) 真阴性 (true negative, TN): 在代码缺陷检测的场景中, TN 代表未被报告的、非缺
陷的广大代码片段. 由于其数量极其庞大且难以界定, 该指标在本文的性能计算中不被直接使用.
本文选取漏报率 (false negative rate, FNR)、误报率 (false discovery rate, FDR)、F1 分数作为评估模型的检测
准确程度的核心指标. FNR、FDR 和 F1 的计算方法如下:
FN
FNR = (1)
TP+FN
FP
FDR = (2)
FP+TP
2·TP
F1 = (3)
2·TP+FP+FN
漏报率衡量所有真实存在的缺陷中被遗漏的比例, 是评估安全缺陷检测工具能力的关键负向指标, 漏报率越
低则模型检测效果越理想. 误报率衡量的是所有被检测工具判定为存在缺陷的结果中, 实际上并不存在缺陷的比
例, 直接反映了检测结果的可靠性与实用价值, 误报率越低则意味着工具产生的噪音越少, 使用者需要付出的额外
审计成本也越低. F1 分数作为查准率与查全率的调和平均值, 是一个用于综合评估模型整体性能的平衡指标, 能
够同时量化模型对误报与漏报的抑制效果, 提供一个更为鲁棒的性能评判基准.
4.3 实验方法与结果分析
为了系统性地评估 MARC 方法在硬件安全缺陷早期检测方面的整体有效性 (RQ1), 本文将其与业界主流的
传统静态分析工具 Verilator、仅基于大模型的 LLMOnly 方法进行了全面的量化比较. LLMOnly 方法直接向大语
言模型提供待测 RTL 源代码并要求其找出其中存在的安全缺陷. 参与对比的 3 种方法均在同一数据集上进行实
验. 其中, 本文提出的 MARC 与 LLMOnly 方法分别使用了 DeepSeek-Chat、Gemini-2.5-Pro 和 GPT-5 这 3 款不同
能力层级的大语言模型进行测试. Verilator 作为传统静态 Linter 工具的代表, 其检测结果为本研究提供了对比传

