Page 195 - 《软件学报》2026年第6期
P. 195
2514 软件学报 2026 年第 37 卷第 6 期
异质图匹配网络建模 相似性度量
异质图构建及特征提取
PE 文件 1 异质图构建 特征提取
异质图匹配网络 基于局部点图匹配的
构建 异质图嵌入方法 相似性计算
PE 文件 2 异质图构建 特征提取
异质图构建及特征提取
图 2 HGMSim 方法框架图
3.1 异质图匹配网络建模
本节介绍如何利用二进制恶意软件生成函数调用图并构建异质图匹配网络.
3.1.1 异质图匹配网络定义
定义 1. 异质图 (heterogeneous graph). 一种包含多种类型实体 (节点) 或关系 (边) 的图, 记为 HG = ⟨V,E⟩, 其中
V 表示实体, E 表示关系, 用 A 表示实体类型集合, 用 R 表示关系类型集合, 要求 |A| > 1 或者 |R| > 1.
定义 2. 异质图匹配网络 (heterogeneous graph matching network). 对异质图 HG 1 和异质图 HG 2 中的同类型实
E cross 为两张异质图之间建立的跨图边, 要求
体建立跨图边, 构建异质图匹配网络, 记为 ⟨HG 1 ,E cross ,HG 2 ⟩, 其中
|E cross | ⩾ 1.
图 3(a) 是两个异质图的示例, 其图结构中存在着多种类型的图节点, 每个图节点都有对应的特征向量. 图 3(b)
是异质图匹配网络的一个示例, 同异质图相比, 增加了异质图间同类型节点的跨图边.
E B A E B 特征向量
C B C
C 本图调用边
D D D A
A E 跨图边
图节点种类
同类型跨图节点
建边
L F
G
G L
N I I G
L N I
M
M F N
M F
(a) 异质图示例 (b) 异质图匹配网络示例
图 3 异质图匹配网络生成示例
3.1.2 异质图构建及特征提取
对于每个二进制恶意软件样本提取带属性异质图, 包含异质图构建和特征提取两个部分.
异质图构建: 使用静态反汇编工具 (如 IDA Pro) 从二进制恶意软件中提取函数调用图, 构建如图 4(a) 所示的
异质图. 异质图中的节点表示函数, 分为 3 类: (1) 本地函数: 由恶意软件开发者自行编写的函数. (2) 静态链接库函
数: 在编译时静态链接到二进制文件中的库函数 (如 C 标准库的“fclose”). (3) 动态导入函数: 在运行或加载时链接
的 DLL 函数 (如 Kerel32.dll 中的“GetProcAddress”). 不同类型函数差异较大, 如本地函数通常仅由同一家族中的
恶意软件变种共享, 容易使用混淆机制对其结构进行修改 [23] , 动态导入函数的汇编代码不会出现在恶意软件中.
异质图中的边表示函数间的调用关系, 函数间可能存在着多次调用, 例如图 4 中 lstrlenW 函数被 sub_4014EB 函数
调用了两次, 因此本文按照调用次数给边赋权重, 使模型能关注到被调用频次较高的函数节点.
特征提取: 为了避免因函数调用图抽象粒度过粗导致损失汇编代码的语义信息, 同时权衡模型的度量效率, 本
文并未使用复杂的表征学习技术获得节点的特征表示, 而是参考 Gemini [13] 中提取的基本块特征和 Kim 等人 [24] 论

