Page 122 - 《软件学报》2020年第11期
P. 122

3438                                Journal of Software  软件学报 Vol.31, No.11, November 2020

                 建及其向量表示、训练模型的构建过程、未知程序的检测过程.首先,将训练集中的恶意程序表示成数据流图,
                 并从中进行特征子图提取来构建特征子图库;接下来,使用神经网络对子图进行相似性学习即子图向量化,其
                 中,向量间的距离表示二者相似性.整个过程如图 1(a)所示,该过程是检测模型构建的前提.图 1(b)表示训练模型
                 的构建过程,首先从训练样本(包含正常和恶意程序)中捕获运行时的行为特征并构建数据流图,之后基于特征
                 子图库将数据流图映射成图向量,具体细节见下文.图向量结合子图向量来构建图相似函数,这同时兼顾了图的
                 结构信息以及子图间的相似性.图相似函数可以计算任意两个图间的相似度,基于此,我们将样本中两两间进行
                 图相似计算来构建样本的相似核矩阵,结合 SVM 算法训练出一个分类模型.图 1(c)表示未知程序的检测过程,
                 即给定一个未知的程序,需判断其类别恶意还是正常.先将未知程序映射成图向量,再通过计算待测样本与训练
                 样本的相似度(采用图相似函数计算)来构建相似向量,之后将相似向量放入 SVM 分类器,SVM 分类器将基于已
                 知恶意和正常的信息进行类别判断.

                                     行为捕获              特征提取               相似性学习
                             恶意程序              数据流图             特征子图库                子图向量
                                                (a)  特征子图库的构建及其向量表示

                                 训练集      行为捕获                利用特征子图库
                               (正常,恶意)              数据流图                   图向量

                                                                构建训练           结合子图向量
                                                               样本的核矩阵
                                                       分类器                图相似函数
                                                       (SVM)

                                                    (b)  训练模型的构建过程

                              未知程序


                                                   与训练样本进行                            正常
                                                    相似性计算                   分类器
                              数据流图           图向量              相似向量
                                                                            (SVM)     恶意
                                                    (c)  未知程序的检测过程
                                  Fig.1    Framework of malware detection based on subgraph similarity
                                           图 1   基于子图相似性的恶意程序检测框架

                 2    恶意程序特征提取

                 2.1   数据流图
                    在恶意程序行为检测方法中,常使用图来表示系统行为或资源依赖.现已证明,直接利用原始系统调用的方
                 法检测对行为敏感       [15] ,因而需使用更抽象的模型来构建系统行为图.本文中使用恶意程序的数据流图来表示系
                 统行为图.
                    数据流图表示程序在一段运行时期内系统实体间的数据流,是通过捕获这段时期内系统实体间的行为或
                 事件生成的.其中,系统实体包括进程 PROCESS,注册表 REGISTRY,文件 File 和网络地址 URL;而系统事件包括
                 进程 ReadProcessMemory 和 WriteProcessMemory,文件 ReadFile 和 WriteFile,注册表 RegQueryValue 和
                 RegSetValue,网络 Send 和 Recv.虽然构建数据流图的实体和事件少,但 Wunchner 等人          [16] 证实了利用这些属性也
                 是可以构建复杂的系统行为模型;同时,设计合适的方法可以进行高精度检测.我们使用图 2 来说明.图 2 表示系
                 统实体进程 P 从文件 F 中读取数据流,使用 e(src,dest,s,t)表示这一事件,其中,src 表示数据流的发起方文件 F,dest
   117   118   119   120   121   122   123   124   125   126   127