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

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



                                             表 1 模块安全设计规范图谱字段结构表

                       字段ID及结构              名称         父节点       数据类型                字段描述
                  ROOT                     根结点           -        Object     IP模块安全设计规范图谱根结点
                     name                IP模块名称         ROOT      String      IP模块的具体名称, 例如“gpio”
                     doc_analysis        文档分析结果         ROOT      Object   从IP模块设计文档中分析的全部信息
                        summary           功能总结        doc_analysis  String   对核心功能和安全机制的简要总结
                        mechanism         工作原理        doc_analysis  Object  包含对模块内部工作逻辑的详细分析
                           core_func      核心功能        mechanism   String     描述模块的主要功能和操作模式
                           fsms         关键状态机列表       mechanism   Array      列出模块中实现关键逻辑的状态机
                               fsm_name  状态机名称          fsms      String         状态机的唯一标识名称
                               fsm_desc  状态机功能描述        fsms      String      描述该状态机负责的具体功能
                               states     状态列表          fsms      Array       列出该状态机包含的所有状态
                           data_flow     数据流路径        mechanism   String  描述数据在模块内部及接口之间的流动路径
                        access_points    接口与攻击面       doc_analysis  Object   识别物理和逻辑接口及潜在攻击面
                           bus_if         总线接口       access_points  Array        模块连接到的总线接口
                           io_pins       物理IO引脚      access_points  Array     列出模块的物理输入/输出引脚
                           clk_rst       时钟与复位       access_points  String  分析模块的时钟域和复位策略及其安全隐患
                        prog_model        编程模型        doc_analysis  Object  分析软件如何通过寄存器等方式控制模块
                           reg_map       寄存器映射表       prog_model  Array    每个寄存器的功能、偏移量和安全影响
                           interrupts     中断列表        prog_model  Array      模块可生成的中断及其安全相关性
                        sec_features      安全特性        doc_analysis  Array  模块文档中提到的安全功能及其潜在弱点
                     ast_summary         AST分析总结        ROOT      String    AST的总结, 识别关键逻辑和结构
                     dep_summary         模块依赖总结         ROOT      String  总结对其他模块的依赖, 特别是安全依赖
                     cwes               潜在CWE识别         ROOT      Array    识别出的与模块相关的潜在硬件CWE
                         cwe_id           CWE编号         cwes      String    对应的CWE编号, 例如“CWE-1262”
                         cwe_name         CWE名称         cwes      String         对应CWE的官方名称
                         cwe_desc       CWE官方描述         cwes      String         CWE的官方详细描述
                         cwe_reason       关联理由          cwes      String   CWE与当前IP模块相关联的具体理由

                    为实现上下文感知的缺陷检测, 该智能体采用知识增强的提示工程策略. 首先, 利用知识增强的上下文注入策
                 略, 即将文档分析智能体生成的模块安全规范图谱作为前序知识, 与待测                       RTL  源码一并注入提示词. 这使得大语
                 言模型在分析代码前, 已对模块的预期功能、状态机定义、接口协议、关键寄存器等拥有了全面认知. 其次, 为了
                 使大语言模型的注意力集中到安全分析上, 提示词中还明确列出了一系列硬件设计中常见的安全威胁类型, 例如
                 访问控制与权限提升、不安全调试接口等, 以审计清单的形式引导大语言模型将推理能力集中于最可能出现安全
                 问题的方向. 与依赖预定义规则集的传统静态分析工具相比, 本智能体通过注入丰富的设计意图上下文, 能够有效
                 地区分设计中的正常行为与潜在安全缺陷. 例如, 当大语言模型从图谱中了解到某个寄存器被设计为可由软件读
                 写以控制功能时, 它就不会轻易地将其标记为不安全的直接访问漏洞, 从而显著降低误报率. 另外, 大语言模型能
                 够基于其对模块预期行为的理解, 发现那些在语法上正确但与设计逻辑或安全需求相悖的逻辑漏洞, 例如, 识别出
                 状态机在某种异常输入下可能进入的未定义或不安全状态.
                  3.4   缺陷确认智能体
                    缺陷确认智能体在       MARC  框架中扮演着“验证工程师”的角色, 其核心任务是对缺陷检测智能体发现的潜在
                 安全缺陷进行自动化验证与可信度评估. 经由前序智能体检测出的潜在安全缺陷, 本质上仍是基于启发式推理的
                 假设, 仍可能包含误报. 为解决此问题, 本智能体设计了一种断言生成及评估的快速验证方法, 旨在人工审计之前,
                 以低成本的方式对发现的缺陷进行验证.
                    由于前序智能体生成的结果为对安全缺陷的自然语言描述, 无法进行精准验证. 由于硬件描述语言的特性, 其
                 安全缺陷的确认高度依赖于对复杂时序逻辑和并发状态的精确理解. 因此, 本智能体采取缺陷断言生成的方法, 将
                 前序智能体输出的、以自然语言描述的潜在漏洞, 转化为一种机器可验证的断言. 本文在此处采用业界常用的
                 SystemVerilog  断言  (SVA), SVA  是一种用于形式化描述硬件设计时序逻辑的语言, 能够将设计规范转化为机器可
   54   55   56   57   58   59   60   61   62   63   64