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

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


                 性度量方法    HGMSim.
                    (2) 提出基于局部点图匹配的异质图嵌入方法, 其中区分函数调用图的异质节点解决恶意软件函数调用图语
                 义未充分挖掘的问题, 局部点图匹配解决图结构高度相似的不同家族恶意软件难以区分的问题.
                    (3) 在多个数据集上实验, 验证所提模型显著优于其他基线方法. 同时, 验证不同反汇编工具生成不同函数调
                 用图对模型带来的影响.


                                ···                                     ···


                                     SG1            SG2                    SG3            SG4
                                          ···                                   ···

                                  样本 1 局部函数调用图                           样本 2 局部函数调用图
                            (md5: eec55f1295d0cce40bbba7be231fdddb)  (md5: 6abf24e3aa3e971e6461bcfea35fe950)

                                      sub_403C83 和 sub_403A43 重复汇编代码               sub_4403F64 和 sub_404BA6 重复汇编代码
                                      push    esi                                  ···
                        sub_403C83  SG1  mov     esi, hMem          sub_4403F64  SG2
                                      push    0
                                      call    sub_403C68
                   sub_403C68  FreeLibrary                      sub_405C84  SendMessageW
                                      test    esi, esi
                                      jz  short loc_403CAF
                        GlobalFree    push    edi             GetDlgItemTextw  SHGetPathFromIDListW
                                      mov     edi, esi
                                      push    dword ptr [edi+8]
                        sub_403A43  SG3  mov     esi, [esi]         sub_404BA6  SG4
                                      call  ds:FreeLibrary
                                      push    edi
                   sub_403A28  FreeLibrary  call   ds           sub_405A32  SendMessageW
                                      test    esi, esi
                                      jnz  short loc_403C96
                        GlobalFree                                     SHGetPathFromIDListW ···
                                      pop  edi                GetDlgItemTextW
                                      and  hMem, 0
                                      pop     esi
                                      retn 10 h
                          (a) 相似图结构和重复汇编代码示例 1                        (b) 相似图结构和重复汇编代码示例 2
                                             图 1 不同家族软件共享代码片段示例

                  2   相关工作
                    本节从基于静态分析的恶意软件相似性度量、异质图相似性度量和基于跨图交互的图相似性度量这                                    3  个方
                 面展开介绍.
                  2.1   基于静态分析的恶意软件相似性度量
                    该类方法主要包括基于程序序列的方法和基于程序图的方法.
                    (1) 基于程序序列
                    基于程序序列的方法通常使用恶意软件中的二进制序列、字符串信息、导入地址表中的                                API 函数以及反汇
                 编后的操作码序列等来计算相似性. Oliver 等人           [6] 提出了局部敏感哈希方案      TLSH, 该方法计算的哈希值对二进制
                 文件的细微修改不敏感, 能有效用于二进制文件的相似性计算. Adkins 等人                    [7] 考虑到恶意软件开发者经常使用共
                 享代码的技术来提升程序开发质量和效率, 于是将滑动窗口方法应用于二进制文件特征提取, 并通过特征散列来
                 创建可用于相似性度量的指纹. Hsiao         等人  [8] 将恶意软件转换成恶意样本灰度图, 然后利用多层卷积神经网络获得
                 恶意软件的低维嵌入, 从而进行样本间的相似性度量.
                    (2) 基于程序图
                    为了降低混淆等机制对于恶意软件相似性度量的影响, 目前人们倾向于使用对多种语法转换都更加稳健的图
                 结构  (如  CG、控制流图) 作为相似性度量模型的特征输入. Wu              等人  [9] 通过匹配外部函数名称和本地函数中不同
                 类型指令的数量构建恶意软件中的相似图结构, 利用相似图结构中的重复边占比来计算两个恶意软件的相似度.
   188   189   190   191   192   193   194   195   196   197   198