一种利用动态图注意力网络的恶意软件检测方法技术

技术编号:36108424 阅读:21 留言:0更新日期:2022-12-28 14:10
本发明专利技术公开一种利用动态图注意力网络的恶意软件检测方法。本发明专利技术对API序列进行分段,构建API图快照序列,使用多个快照记录了软件API调用图的变化过程,以此间接表示软件行为动作发生的顺序与过程,使模型能更好地理解软件行为。本发明专利技术将通过图注意力神经网络模块更新注意力系数,同时通过门控循环神经网络模块更新隐藏状态,使得模型能捕获调用图局部恶意行为信息与调用图结构的演变过程,更加适应非典型的恶意软件检测。典型的恶意软件检测。典型的恶意软件检测。

【技术实现步骤摘要】
一种利用动态图注意力网络的恶意软件检测方法


[0001]本专利技术属于网络安全领域,涉及一种利用动态图注意力网络的恶意软件检测方法,具体是利用软件运行过程中产生的API调用序列,通过动态图注意力网络学习其中包含的结构信息与行为信息,根据捕获到的特征信息,完成恶意软件的分类任务,提升恶意软件检测的性能。

技术介绍

[0002]自计算机诞生以来,恶意软件的威胁就一直存在着。在互联网发展的早期恶意软件主要以文件感染和自我复制等形式存在,因此其文件的结构就比较单一,使得静态特征明显,很容易通过特征码匹配的方式检测出来。然而随着互联网技术的发展,恶意软件的种类与复杂性日益增加,恶意软件检测也变得愈发困难。于是研究者提出了基于行为的动态分析技术,通过对比检测样本与正常软件的行为差别来判断样本是否具有恶意。一般情况下,恶意代码的行为轨迹和良性代码的行为轨迹会有明显的不同,在深度学习模型充分理解了良性代码的行为特征之后,将会形成一套标准和规范,如果待检测软件行为特征有异常,则可判定样本为恶意软件。
[0003]API是一组由系统预先定义的函数,在恶意软件检测的方法中,API调用序列是十分明显的行为特征,所有程序都可以与Windows API交互并通过调用API来访问预定义的函数来访问资源。其是软件在函数层面最基层的操作,同时API是一系列动作的集成,因此API的调用序列是研究软件行为和目的的理想对象。
[0004]目前研究主要是基于语义的恶意软件检测方法,这种方法不能很好地处理序列数据过长的问题。软件在运行的过程中,API的调用可能是源源不断的。对于如循环神经网络等序列预测的模型,都具有遗忘性的特点,这就可能导致检测的性能大大降低。因此为了应对长序列预测分类效果下降的问题,有的研究方法也考虑将序列转换为图的结构,再用图神经网络来对其分类。因为无论序列再长,转换为图的结构,就是一个由固定节点与若干条边组成的图。但这种方法也有局限性,就是不能充分的提取到行为发生的时序信息。虽然可以通过转换为有向图的方式,使用图注意力网络来学习其中的时序信息,但这种方法只能获取到局部的行为顺序特征。

技术实现思路

[0005]本专利技术的第一个目的是为了解决上述的问题,以提升网络对软件行为特征的捕获能力为目标,提出了一种基于动态图注意力网络的恶意软件检测的方法。该方法在经典图注意力网络的基础之上,加入了门控循环神经网络来理解软件调用图结构的演变过程,更好地捕获软件的行为发生的时序信息,提升恶意软件检测的精度。
[0006]本专利技术具体采用的技术方案如下:
[0007]步骤(1)、数据预处理阶段:
[0008]1‑
1.获取待检测软件的API调用序列;对API调用序列进行去重处理,得到真实反
映软件行为的API调用序列;
[0009]所述去重处理是删除连续调用的相同API函数或相同API序列片段。将这些包含冗余信息试图隐藏代码恶意意图的API片段删除后,将获得真实反映软件行为的API调用序列。
[0010]3‑
2.将步骤1

1去重处理后的API调用序列中同一功能的所有API函数名进行去除后缀,使其函数名相同。
[0011]系统对不同的编码格式会调用不同的函数,但其完成的任务都是一致的。系统中针对UNICODE编码是使用W结尾的API,对于ASCII编码是使用A结尾的API。因此采用去掉API后缀的方式,来对API进行归类,突出软件API与恶意行为之间的关联关系。
[0012]1‑
3.将步骤1

2处理后的API调用序列按观察窗口划分,得到T个API子序列。具体是使用一个不断扩大的窗口来截取API调用序列。窗口每次增加的长度为超参数,可以按需选择。
[0013]1‑
4.将步骤1

3每个API子序列转换为API调用图的形式。其中子序列中的API作为API调用图的节点,并用有向边代表当前API与其他API节点之间的调用关系,调用的次数作为边的权重。构建出的API调用图用G=(N,E)表示,其中N为节点的集合,E为边集合。
[0014]1‑
5.将步骤1

4得到的T个API调用图按照API子序列顺序拼接,得到调用图快照序列,用以表示API调用图的结构变化过程与趋势。
[0015]步骤(2):使用图注意力网络捕获局部API之间的软件恶意信息。
[0016]2‑
1.将步骤1

5图快照序列中的每个API节点使用one

hot编码作为其初始的特征。此外为了减少计算的开销,对初始的特征进行降维的处理,通过Embedding函数把API节点的特征向量映射到更低维的向量空间中并记作点的特征向量映射到更低维的向量空间中并记作其中N是API数目,F是API的维数。
[0017]2‑
2.初始化共享线性变换矩阵W,其中W∈R
F*F'
,表示将特征矩阵H从F维转换到F'维。利用共享线性变换矩阵W对API节点进行特征转换,同时计算节点间注意力系数。
[0018]每个API节点i与其邻居节点j的注意力系数的计算公式如下:
[0019][0020]式中,为节点i和节点j之间注意力系数,代表了邻居API节点对当前目标API节点的重要程度;为节点i的初始特征向量;N
i
为节点i的所有邻居节点的集合;||表示拼接操作,将向量串联在一起;为单层的前馈神经网络;LeakyReLU为激活函数计算节点i和其邻居节点j之间的注意力权重。
[0021]2‑
3.根据注意力系数对各节点信息进行加权聚合,其结果作为当前节点的新特征向量进一步得到新特征矩阵F'表示输出节点的特征维度。
[0022][0023]4‑
4.为了能从多个潜在的角度去捕捉API节点所包含的行为特征,采用了多头注意力的方式,赋予API节点更强的表达能力。其主要是使用多个相互独立的单头注意力层,
通过拼接或平均结果的方式来更新节点的嵌入。多头的公式采用如下之一:
[0024][0025][0026]其中,||表示级联操作,表示由第k个注意力机制计算出的节点i和j之间的归一化注意力系数,W
k
表示对应的输入线性变化权重矩阵,表示K个头注意力层的特征输出。
[0027]2‑
5.将每个调用图快照中的API节点的特征向量展平串联在一起,得到代表当前调用图快照的特征向量x
i
,作为门控循环神经网络模块的输入。图快照序列的特征表示为X={x1,x2,...,x
T
},其中T表示快照数。
[0028]步骤(3):使用门控循环神经网络学习软件调用图结构的演变过程,捕获软件的行为发生的长远时序信息。
[0029]3‑
1.将图注意力网络输出的所有调用图快照的特征向量X作为门控循环神经网络的输入,并根本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态图注意力网络的恶意软件检测的方法,其特征在于包括以下步骤:步骤(1)、数据预处理阶段:1

1获取待检测软件的API调用序列;对API调用序列进行去重处理,得到真实反映软件行为的API调用序列;1

2将步骤1

1去重处理后的API调用序列中同一功能的所有API函数名进行去除后缀,使其函数名相同;1

3将步骤1

2处理后的API调用序列按观察窗口划分,得到T个API子序列;1

4将步骤1

3每个API子序列转换为API调用图的形式;其中子序列中的API作为API调用图的节点,并用有向边代表当前API与其他API节点之间的调用关系,调用的次数作为边的权重;构建出的API调用图用G=(N,E)表示,其中N为节点的集合,E为边集合;1

5将步骤1

4得到的T个API调用图按照API子序列顺序拼接,得到调用图快照序列,用以表示API调用图的结构变化过程与趋势;步骤(2):使用图注意力网络捕获局部API之间的软件恶意信息;2

1将步骤1

5图快照序列中的每个API节点使用one

hot编码作为其初始的特征向量;通过Embedding函数把API节点的特征向量映射到更低维的向量空间中并记作其中N是API数目,F是API的维数;2

2初始化共享线性变换矩阵W,其中W∈R
F*F'
,表示将特征矩阵H从F维转换到F'维;利用共享线性变换矩阵W对API节点进行特征转换,同时计算节点间注意力系数;每个API节点i与其邻居节点j的注意力系数的计算公式如下:式中,为节点i和节点j之间注意力系数,代表了邻居API节点对当前目标API节点的重要程度;为节点i的初始特征向量;N
i
为节点i的所有邻居节点的集合;||表示拼接操作,将向量串联在一起;为单层的前馈神经网络;LeakyReLU为激活函数计算节点i和其邻居节点j之间的注意力权重;2

3根据注意力系数对各节点信息进行加权聚合,其结果作为当前节点的新特征向量进一步得到新特征矩阵F'表示输出节点的特征维度;2

4使用多个相互独立的单头注意力层,通过拼接或平均结果的方式来更新节点的嵌入;多头的公式采用公式(3)或公式(4):入;多头的公式采用公式(3)或公式(4):
其中,||表示级联操作,表示由第k个注意力机制计算出的节点i和j之间的归一化注意力系数,W
k
表示对应的输入线性变化权重矩阵,表示K个头注意力层的特征输出;2

5将每个调用图快照中的API节点的特征向量展平串联在一起,得到代表当前调用图快照的特征向量x
i
,作为门控循环神经网络模块的输入;图快照序列的特征表示为X={x1,x2,...,x
T
},其中T表示快照数;步骤(3):使用...

【专利技术属性】
技术研发人员:李传昆寇亮张纪林任永坚袁俊峰
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1