APP下载

基于行为关系网络的恶意代码检测方法

2022-03-30刘建松

关键词:注册表异质矩阵

刘建松, 张 磊, 方 勇

(四川大学网络空间安全学院, 成都 610065)

恶意代码是一种能够自我激活、可自动执行,并对互联网用户产生巨大威胁的应用程序,常见的有病毒、木马、蠕虫、间谍软件和特洛伊木马等. 近几年来,勒索软件和挖矿木马开始大肆感染用户的设备.由于利益驱使攻击者会通过各种手段将挖矿程序植入受害者的计算机中,在受害者不知道的情况下利用云计算进行挖矿,从而获取利益. 这些活动都会造成计算机、移动设备及人员财产等受到影响. 根据2020年中国网络安全报告[1],2020年瑞星“云安全”系统共截获病毒样本总量1.48亿个,病毒感染次数3.52亿次,病毒总体数量比2019年同期上涨43.71%.报告期内,木马病毒新增7728万个,为第一大种类病毒;排名第二的为蠕虫病毒,数量为2981万个.感染型病毒、灰色软件和后门等分别占到总体数量的12.19%、9.59%和3.75%.除此以外,还包括漏洞攻击和其他类型病毒. 因此,恶意代码的爆发式增长威胁着当今世界的互联网安全.

现有的恶意代码自动化分析技术大多都是基于其样本文件本身的内容,即静态特征或者自身的动态行为特征来做进一步分析的. 比如,Liu等[2]直接提取PE文件的头信息和节信息作为特征, Kolter等[3]从文件中提取n-gram字节码作为特征. 但以字节n-gram作为特征的分类器非常容易产生过拟合.部分安全研究员认为,恶意代码汇编指令序列比单纯的字节流更能表达恶意代码的静态特点.Canfora等[4]先将可执行程序反汇编,再提取汇编指令序列作为特征进行分析. 随着深度学习的发展,一些深度学习的方法也被应用到恶意代码检测领域.Pascanu 等[5]借鉴自然语言处理中的建模方法,探索使用回声状态网络和递归神经网络讲汇编指令N-gram映射到低维向量的方法,再用逻辑回归分类器对向量进行最终分类. 也有将程序的源代码[6]或者API序列[7,8]看成语义丰富的文本,再基于现有的NLP模型进行改进来训练和分类的. 恶意代码可视化是近年才出现的恶意代码分析新方法.2011年Nataraj等[9]首次提出了完备的恶意代码样本图像化方法.他们首先将恶意可执行程序按字节转化为灰度图,然后将灰度图的GIST特征作为样本特征,使用支持向量机对样本进行分类. Yuan 等[10]提出一种将恶意代码可执行程序转换为马尔可夫图像,然后使用深度卷积神经网络自动从图像中提取特征进行恶意代码家族分类的方法.

在恶意代码分析领域,存在一些非欧式结构的数据,比如函数依赖图、API调用图和数据流图,传统的神经网络难以直接处理这种不规则的数据. 为解决这些问题,一些研究人员[11]选择先通过各种手段对图进行标准化处理,转换到统一的规格后再输入神经网络进行训练.除此之外,图卷积神经网络(Graph Convolutional Network, GCN)[12]的提出给图数据的处理带来新的思路.但是GCN只能处理节点类型单一的同质图,无法处理包含多种节点类型的异质信息网络. 2017年Hou等[13]利用APP和不同种类的API调用来构建异质信息网络,然后使用基于元路径的方法计算APP之间的相似性,次年又将其应用到Windows恶意程序检测中[14]. 2019年Wang等[15]利用系统事件数据构建异质信息网络,包含进程、文件和套接字3种不同的实体,可以捕获程序的行为,提出MatchGNet模型,能够基于程序行为的不变图模型得到图嵌入向量,再进行未知软件和正常软件的相似度判断,低于一定阈值的都归为恶意软件.

针对同质图无法融合异构特征的问题,受文献[13]的启发,本文利用样本运行期间的行为记录来构建一种系异质信息网络的行为关系网络,将恶意代码的多种敏感行为结合分析,融合样本的多种行为特征. 本文选取恶意代码中常常出现的几种敏感行为作为特征,如关键API调用、注册表访问和文件读写操作. 本文提出的方法中,首先在沙箱中执行收集的恶意样本,然后从沙箱报告中提取样本的三种行为记录,利用这些行为信息来构建样本行为关系网络,再使用一种基于元图的方法来计算样本之间的相似度,最后构造SVM分类器用于恶意代码检测.本文的主要贡献如下:(1) 在从沙箱报告中提取的API调用记录、注册表访问记录和文件操作记录,构建文件行为关系网络. 所构建的行为关系网络中包含PE文件、API、注册表和普通文件4种节点类型,3种行为本身作为边,可将样本期间的多种敏感行为结合起来,并且在合适的方法下能够自然地融合这些动态特征.(2) 不同于文献[13]提出的基于异质信息网络的安卓恶意程序检测方法——基于元路径计算安卓程序之间的相似性,本文使用一种基于元图的方法计算PE文件间的相似性,通过计算元图上的交换矩阵来反应PE文件间的相似度,最后使用一种自定义核的支持向量机(Support Vector Machine, SVM)模型来进行训练和预测.(3) 在公开的数据集上对所提模型进行验证,达到95.5%的分类准确率,优于基于元路径的方法.

2 研究方法

2.1 方法概述

本文提出基于行为关系网络恶意代码检测方法的分类模型框架如图1所示,包括沙箱执行、文件行为关系网络构建、相似性矩阵计算和分类与检测模型. 通过在沙箱中执行恶意代码样本得到其行为报告,并从报告中提取API调用、注册表访问和文件操作3种行为记录,再根据这些行为信息构建文件行为关系网络;然后使用基于元图的方法计算相似性矩阵;而后将各相似性矩阵的线性组合作为最后SVM的核矩阵,进行分类与训练;最后将训练好的模型用于恶意代码检测.

图1 分类模型框架 Fig.1 The frame of the classification model

2.2 行为关系网络的构建

定义1异质信息网络[16](Heterogeneous Information Network, HIN). 定义为一个具有实体类型映射函数φ:V→A和关系类型映射函数ψ:E→R的有向图G=(V,E,φ,ψ). 其中,每个实体v∈V属于实体类型集合A:φ(v)∈A中的一个特定实体类型,每条链接e∈E属于关系类型集合R:ψ(e)∈R中的一个特定关系类型,并且满足实体类型数|A|>1或者关系类型数|R|>1.

本文构建的文件行为关系网络是一种异质信息网络,也叫做异质图. 异质图是相对于同质图而言的,同质图只包含一种类型的节点和边,异质图包含多种类型的节点或者边. 相比于同质图而言,异质图可以更好地反应实体间复杂的关系,可以保留更全面的语义及结构信息. 近年来,异质图迅速成为数据挖掘等领域中的研究热点,常见的有社交网络、科技文献和医疗系统,常被应用于分类、聚类、推荐等.本文构建的文件行为关系网络包含4种节点类型和3种边类型,属于异质信息网络.

定义2网络模式[16](network schema). 记为TG=(A,R),是带有实体类型映射φ:V→A和关系类型映射ψ:E→R的信息网络G=(V,E)的元模式.具体地,网络模式是定义在实体类型集合A上的有向图,并以R上的关系为边. 网络模式更直观的反应了行为网络结构,本文的恶意代码网络模式图如图3.

图2 本文构建的行为关系网络

图3 恶意代码行为网络模式图Fig.3 Network schema

定义4元图[17]. 元图是一个有向无环图,包含一个源节点(入度为0)和一个目标点ns和一个目标点nt.因此在异质信息网络G=(V,E,φ,ψ)和网络模式TG=(A,R)基础上定义元图为M=(VM,EM,TM,RM,ns,nt),其中VM⊆V,EM⊆E,并约束AM⊆A和RM⊆R.

元图是Zhao等[17]提出的概念,用于刻画实体间的复杂的信息共享关系. 如图4所示,元图M4就能让同时调用过同一API和访问过同一注册表项的PE文件相关联.所以本文使用基于元图的方法去计算PE文件之间的相似度. 本文构建的行为关系网络中抽取出的元图如图4所示,元路径可以看作特殊的元图.

图4 七种元图Fig.4 The seven types of meta-graph

2.3 相似性矩阵计算

定义5交换矩阵[16]. 给定一个异质信息网络图G=(V,E,φ,ψ)和网络模式TG=(A,R). 假设有一条元路径(A1,A2,…,Al),交换矩阵定义为C=WA1A2WA2A3…WAlAl+1,其中WAiAj是实体Ai和Aj间的邻接矩阵.

表1 各邻接矩阵的定义

而元图的交换矩阵却没有直接的定义.我们采用一种基于计数的方法来计算元图的交换矩阵. 算法的核心思想为,在分支节点处,遍历所有分支,把每条分支看成新的元路径分别计算其交换矩阵,再将所有分支的交换矩阵的哈达玛积作为分支节点最后的交换矩阵,剩余的计算步骤同计算元路径交换矩阵. 算法的关键就在于采用哈达玛积去合并分支节点的交换矩阵. 例如,图4中M5元图的交换矩阵计算伪代码如下.

算法1计算M5元图的交换矩阵

输入:PE与API的邻接矩阵,WPA;PE与文件的邻接矩阵,WPF;

输出: M5元图的交换矩阵,CM5;

3)CM5=CP1⊙CP2

4) returnCM5

2.4 分类与检测模型

检测阶段要预测未知样本时,将未知样本先与训练集构造异质信息网络,然后求得它与训练数据集的交换矩阵,最后把该交换矩阵输入到已训练好的模型中进行检测.

3 实验结果和分析

3.1 实验数据集

实验数据中的恶意代码样本是从开源恶意代码库VirusShare[19]下载,正常样本来源于Windows操作系统中的正常软件. 为了证明恶意样本和正常样本的纯净,上传样本到VirusTotal[20]进行检测,剔除恶意样本中的正常样本和正常样本中的恶意样本.在Cuckoo沙箱中运行样本获取样本分析报告,通过解析Cuckoo沙箱报告文件——report.json包含的字典中“behavior”子项,获得各个进程下的API调用信息;解析logs路径下的文件,获得进程访问过的文件和注册表信息.由于部分样本对运行环境敏感,存在反虚拟机、反沙箱行为,所以并未在分析环境中成功运行,在分析报告中并未捕获到恶意行为,因此剔除这类样本.80%的样本用于模型训练,20%的样本用于测试. 筛选后的数据集样本空间如表2所示. 本文的训练样本集和测试样本集中共检测到183个API,1526多个注册表项和571文件.

表2 样本分布

3.2 实验结果分析

本文使用准确率、误报率、漏报率作为评估指标,这些指标涉及机器学习中的四个检验指标:真阳性 (TP)、真阴性 (TN)、假阳性(FP)和假阴性(FN),各指标含义如表3.

表3 检验指标的含义

准确率(ACC)、误报率(FPR)、漏报率(FNR)定义如下.

为了证明本文所提基于文件行为关系网络的恶意代码检测方法的有效性,我们进行了一系列实验.首先是基于单个元图(包括元路径)和多元图融合后的检测性能评估,实验结果如表4所示.

从表4可见,首先从基于元路径M1、M2、M3的分类结果来看,基于API调用行为的元路径M1的表现结果最好,达到了90.8%的准确率;基于注册表访问的元路径M2检测效果次之,有85.2%的准确率;基于文件操作的元路径M3的表现结果最差,准确率只有81.5%. 但总体来说,基于单条元路径的分类结果都不是很好,说明以上的单个行为特征都不足以准确刻画恶意代码行为模式.

表4 检测性能评估

再把元图M4、M5、M6、M7与元路径M1、M2、M3的分类结果作对比,检测效果都得到了有效的提升.这是因为元图能够融合两个或者多个的行为特征.比如,元图M4、M5、M6分别融合了其中的两个特征. 除了M6,融合了两个特征的元图都比对应的单一特征的元路径的分类效果要好.而元图M6检测效果不如元路径M2的原因可能是在此数据集上,这两个特征存在一些过拟合. 但融合了三个特征的元图M7表现结果非常得好,准确率达到了93.4%,同时误报率为5.9%,漏报率为7.3%.对比结果表明,基于单元图的检测效果优于基于元路径的.

表4的最后一行是所有元图(包含M1、M2、M3)融合后的分类结果,结果表明基于元图融合的检测效果比所有单元图的分类检测效果都要好,准确率达到了95.5%,误报率为4.7%,漏报率为4.2%,说明了基于元图融合的方法比基于单元图的更有效.

本文还将文献[13]提出的基于元路径融合的方法应用到本文的恶意代码数据集上,并与本文提出的方法做了实验对比,实验结果见表5.

表5 检测性能评估

如表5的实验结果所示,基于元路径融合的方法的准确率为93.8%,误报率为4.7%,漏报率为7.7%,F1-score分数为93.7%. 而本文提出的基于元图融合的方法准确率为95.5%,误报率为4.7%,漏报率为4.2%,F1-score分数为95.6%.除了误报率相同,其余各指标均优于基于元路径融合的方法.这说明本文所提出的基于元图融合的方法优于基于元路径融合的方法. 这是因为元图可以自然融合多个特征.本文的方法就是元图自然融合了API调用、注册表访问和文件读写三种行为特征,可以更准确全面地捕获恶意代码的行为模式,从而具有更好的区分能力.

针对同质图无法融合多行为特征的问题,本文提出了一种新颖的基于文件行为关系网络的恶意代码检测方法.首先在Cuckoo沙箱中执行恶意代码样本得到其行为报告,并从报告中提取API调用、注册表访问和文件读写操作三种行为记录,再根据这些行为信息构建文件行为关系网络.所构建的行为关系网络中包含PE”、“API”、“Registry”和“File”4种类型的节点和API调用、注册表访问和文件读写三种类型的边,属异质信息网络. 不同于传统的同质图的处理方法,本文使用一种基于元图的方法——基于元图计算PE文件的相似矩阵.在最后的SVM分类模型中,使用一种自定义的核矩阵,结合多个元图.实验结果表明,本文提出的方法能有效检测恶意代码.

本文提出的方法,选取了API调用、注册表访问和文件操作信息三种行为记录构建行为关系网络.在下一步研究中,可以尝试选取更多的行为特征,比如所调用的dll,恶意代码所在的主机信息等重要信息,可以更全面准确地刻画恶意代码行为模式.并且本文构建的行为关系网络中,没有包含API序列这种重要的语义信息,恶意代码的恶意行为都是通过底层调用的API来实现.因此通过动态提取的API序列特征可以很好地刻画恶意样本的行为.这也是未来研究中需要重点解决的问题.

猜你喜欢

注册表异质矩阵
二维As-SnS2垂直堆叠异质结的电子结构及光学性质
基于异质分组的信息技术差异化教学
异质越野:多伦路——“艺术介入城市空间”系列项目
基于CuO/ZnO异质结纳米花的薄膜型丙酮传感器研究
更上一层楼 用好注册表编辑器
多项式理论在矩阵求逆中的应用
注册表的便捷用法
矩阵
矩阵
矩阵