Page 217 - 《软件学报》2025年第7期
P. 217
3138 软件学报 2025 年第 36 卷第 7 期
(∑ )
*
h = ReLU a uv Wh v (2)
u v∈N u
其中, W 为更新节点特征的权重矩阵, ReLU 为非线性激活函数. 通过引入自适应的注意力机制, GAT 为图中节点
的特征分配不同的权重, 从而增强了模型的表达能力和鲁棒性. GAT 在许多图数据处理和分析任务中表现优异,
成为图表示学习领域的重要模型之一.
3 基于函数间结构特征关联的软件漏洞检测方法 CSFF-VD
本节中介绍了基于函数间结构特征关联的漏洞检测方法 CSFF-VD 的技术框架, 该框架旨在利用函数内独立
结构特征之间的结构相似性来增强漏洞检测的效果. 如图 2 所示, 该框架包括 3 个主要阶段: ① 将函数解析为代
码属性图并生成函数独立结构特征; ② 构建函数间结构特征相似关联图, 并从中提取关联特征; ③ 应用分类技术
进行漏洞检测.
独立结构特征提取 AST
CFG
PDG
CPG
使用 Joern 输入 CPG 提取结构特征
转换
函数源码 代码属性图 门控残差图卷积神经网络 独立结构特征
关联 输入 提取 检测 有漏洞
构建
…
无漏洞
图注意力降噪机制
多函数特征向量表示 函数间结构特征相似关联图 图注意力网络 关联特征向量
图 2 基于函数间结构特征关联的软件漏洞检测方法 CSFF-VD
首先, CSFF-VD 构建函数的代码属性图表示, 并将其输入到神经网络中进行函数内独立结构特征的提取. 通
过这种方式, 可以有效地捕捉每个函数的独立结构特征, 为后续的特征关联挖掘奠定基础. 随后, 在各函数以独立
结构特征向量表示的基础上, CSFF-VD 通过计算函数间独立结构特征的欧氏距离, 来构建函数节点间的有向边,
从而形成函数间的结构特征相似关联图, 作为注意力图神经网络的输入, 从而充分挖掘函数间的结构相似性信息,
以提高漏洞检测的准确性和全面性. 最后, CSFF-VD 使用图注意力网络对所生成的函数间结构特征相似关联图提
取关联特征, 用于漏洞检测模型的构建.
3.1 函数独立结构特征生成
不同于自然语言, 代码作为一种特殊的文本, 包含丰富的结构信息. 在 CSFF-VD 框架的第 1 步, 我们对每个函
数进行解析, 以生成其独立的结构特征. 具体而言, 我们利用静态代码分析工具 Joern [29] 对每个函数进行解析, 并将
其转换为代码属性图 CPG. 代码属性图将抽象语法树 AST、控制流图 CFG 和程序依赖图 PDG 整合为一个联合
的代码图表示. 其中, AST 提供语法元素之间的层次关系, CFG 提供控制流信息, PDG 则表明数据之间和语句之间

