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

陈永威 等: 基于异质图匹配网络的恶意软件相似性度量方法                                                    2513


                 Hu  等人  [10] 提取  CG  并构建函数调用图数据库, 然后使用图匹配技术来近似计算图编辑距离. 上述方法的相似性计
                 算基于图编辑距离或者最大公共子图, 其值的求解均为                  NP-complete 问题  [11] , 即使采用多种加速算法  (如剪枝、启
                 发式计算) 也难以在合理时间内完成对较大恶意软件间的相似性计算.
                    近年来, 图神经网络通过基于数据驱动的方法将图相似性度量转化为一个学习问题, 训练好的模型可以应用
                 于未见过的图结构, 在相似性度量方面具有更高的效率和准确率                     [12] . Xu  等人  [13] 第  1  个把图嵌入和图相似性学习
                 的过程结合起来, 提出了端到端的相似性度量方法                 Gemini, 利用控制流图和指令统计属性构建带属性控制流图
                 ACFG (attributed control flow graph), 使用  struct2vec 模型来将  ACFG  转化成嵌入向量, 采用向量间的相似度衡量
                 函数间的相似性. Puodzius 等人     [14] 只使用  CG  中的外部节点来构建更简洁的调用图, 作者声称能在保留原有语义
                 的前提下, 提升图相似性度量的效率. ModDiff 模型          [15] 注意到之前工作中忽略了恶意软件的模块化组成, 将调用图
                 中的函数聚类成更高维的模块表示, 使用比函数粒度更大的模块表示, 能加快计算的效率. COBRA-GCN                             模型  [16]
                 认为从单一粒度上难以衡量两个二进制文件之间的相似程度, 从指令、函数、调用图这                             3  个粒度分别进行嵌入表
                 示, 提升了相似性度量的准确性. Chen        等人  [17] 认为  CG  中图节点属性使用手工提取的特征会遗漏丰富的汇编指令
                 信息, 于是使用    Asm2Vec 模型通过无监督的方式得到对应函数的特征表示, 然后使用                    GraphSAGE  模型对邻域特
                 征进行聚合, 得到该样本的嵌入向量用于相似性度量.
                  2.2   异质图相似性度量
                    利用异质图来构建实体之间复杂关系, 能更好地应对恶意软件不断发展的伪装技术. Windows 静态恶意软件
                 相似性度量方法大多基于同质图, 基于异质图的研究还较少. RGCN                   [18] 在扩展了  GCN  的信息传递框架, 引入关系
                 类型权重来区分异质图中不同类型的节点, 从而更好地捕获异质图中的结构信息. HetG                         [19] 利用随机游走扩大邻居
                 采样范围, 对于节点上的多维数据独立设置表示学习方法, 并使用                     LSTM  对节点信息聚合, 最后在节点信息传递
                 时结合注意力机制.
                  2.3   基于跨图交互的图相似性度量
                    在图相似性度量领域, 人们提出了跨图交互机制, 通过结合对比图的隐式邻居来改进本图的节点嵌入, 通过考
                 虑成对图之间更细粒度的交互, 能有效提高图相似性分析任务的推理精度, 该思想已应用于二进制函数相似性度
                 量方面, 但在恶意软件相似性度量方面的研究还较少. Li 等人                [20] 认为图结构的细微差异可能会导致语义上非常不
                 同, 传统的方法难以发现两张图之间的微小差异, 在传统图神经网络嵌入的基础上, 加入了跨图匹配机制, 提出了
                 图匹配网络 (graph matching network, GMN) 模型, 该模型在图神经网络更新节点的特征向量时, 不仅聚合了节点
                 的邻居节点信息, 还通过       attention  机制聚合另一张图的所有节点信息, 在实验中取得了最佳的性能表现. graphSim
                 模型  [21] 认为传统使用固定维度图级特征向量表征图的嵌入方法难以捕获相似图中的细微差异, 考虑两张图之间
                 点-点之间的交互, 在图神经网络每次信息传递的过程中, 计算两张图所有节点间的相似矩阵, 最后根据获得的多
                 个相似矩阵计算两张图的相似性得分. Ling            等人  [22] 认为跨层交互  (如点-图) 包含丰富的信息, 提出了一种有效的
                 模型来学习两种图中点-图的交互信息. 现有跨图交互属于全局跨图交互                       (聚合另一张图的所有节点信息), 忽略跨
                 图交互过程中不同节点类型的差异, 影响恶意软件相似性度量性能.

                  3   HGMSim  方法

                    基于异质图匹配网络的恶意软件相似性度量方法                  HGMSim  框架如图    2  所示, 包括异质图匹配网络建模和相
                 似性度量两部分. 在异质图匹配网络建模阶段, 从恶意软件中提取                    CG, 为了挖掘   CG  中不同类型节点的异质语义,
                 进一步区分调用图中节点的函数类型, 将             CG  抽象为异质图. 为了挖掘不同       CG  间的隐式邻居语义, 对两个样本         CG
                 中相似的同类型函数节点建立跨图边, 构建异质图匹配网络. 在相似性度量阶段, 提出基于局部点图匹配的异质图
                 嵌入方法, 其中函数节点嵌入包括本图异质邻居聚合和局部点图匹配信息聚合. 本图异质邻居聚合解决函数调用
                 图中异质语义未充分挖掘的问题, 局部点图匹配信息聚合解决图结构高度相似的不同家族恶意软件难以区分的问
                 题. 后续章节将分别介绍异质图匹配网络建模和相似性度量.
   189   190   191   192   193   194   195   196   197   198   199