【技术实现步骤摘要】
一种利用动态图注意力网络的恶意软件检测方法
[0001]本专利技术属于网络安全领域,涉及一种利用动态图注意力网络的恶意软件检测方法,具体是利用软件运行过程中产生的API调用序列,通过动态图注意力网络学习其中包含的结构信息与行为信息,根据捕获到的特征信息,完成恶意软件的分类任务,提升恶意软件检测的性能。
技术介绍
[0002]自计算机诞生以来,恶意软件的威胁就一直存在着。在互联网发展的早期恶意软件主要以文件感染和自我复制等形式存在,因此其文件的结构就比较单一,使得静态特征明显,很容易通过特征码匹配的方式检测出来。然而随着互联网技术的发展,恶意软件的种类与复杂性日益增加,恶意软件检测也变得愈发困难。于是研究者提出了基于行为的动态分析技术,通过对比检测样本与正常软件的行为差别来判断样本是否具有恶意。一般情况下,恶意代码的行为轨迹和良性代码的行为轨迹会有明显的不同,在深度学习模型充分理解了良性代码的行为特征之后,将会形成一套标准和规范,如果待检测软件行为特征有异常,则可判定样本为恶意软件。
[0003]API是一组由系统预先定义的函数,在恶意软件检测的方法中,API调用序列是十分明显的行为特征,所有程序都可以与Windows API交互并通过调用API来访问预定义的函数来访问资源。其是软件在函数层面最基层的操作,同时API是一系列动作的集成,因此API的调用序列是研究软件行为和目的的理想对象。
[0004]目前研究主要是基于语义的恶意软件检测方法,这种方法不能很好地处理序列数据过长的问题。软件在运行的过程中, ...
【技术保护点】
【技术特征摘要】
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):使用...
【专利技术属性】
技术研发人员:李传昆,寇亮,张纪林,任永坚,袁俊峰,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。