一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

恶意代码家族分类方法与流程

2021-11-10 02:09:00 来源:中国专利 TAG:


1.本发明涉及网络与信息安全技术领域,具体而言,涉及一种恶意代码家族分类方法。


背景技术:

2.恶意代码(malicious code,也称作malware或恶意软件),指为达到恶意目的专门设计的程序、代码或指令,指一切意在破坏计算机、移动终端或网络系统可靠性、可用性、安全性或者消耗系统资源的恶意程序。恶意代码主要的存在形式包括:恶意数据文档、恶意网页、内存代码、可执行程序和动态链接库等。
3.通过对现有文献进行研究,发现每个文献存在如下一种或几种缺陷:
4.(1)直接从恶意代码样本库获取恶意代码样本,对获取恶意代码样本进行分类,后续不能自动丰富更新恶意代码库,不能实时更新恶意代码家族分类特征库;
5.(2)没有利用卷积神经网络进行深度学习,或者利用了卷积神经网络进行深度学习,但是学习的层数及大小不太合适恶意代码分类,导致恶意代码分类方法效率较低、准确率不高。


技术实现要素:

6.本发明的目的包括提供一种恶意代码家族分类方法,其能够快速、准确地判断出恶意代码的家族信息。
7.本发明的实施例可以这样实现:
8.第一方面,本发明提供一种恶意代码家族分类方法,分类方法包括:
9.对恶意代码标注家族信息;
10.从已标注的恶意代码中提取静态特征和动态特征;
11.根据动态特征,生成恶意代码的动态关系图;
12.将静态特征和动态关系图输入图神经网络模型中,以训练图神经网络模型;
13.获取待分类的恶意代码的静态特征和动态关系图,并输入已训练的图神经网络模型,以判断恶意代码的家族信息。
14.在可选的实施方式中,静态特征包括关键api出现次数、关键特殊字符个数、指令码频数、指令码n

gram和字节序列n

gram,动态特征包括api调用依赖图、系统调用依赖图和控制流图。
15.在可选的实施方式中,动态特征包括系统调用依赖图,根据动态特征,生成恶意代码的动态关系图的步骤包括:
16.将系统调用依赖图转换为大小固定的有向带权图;
17.计算有向带权图之间的距离值;
18.将距离值小于阈值的两个有向带权图判定为相似,并将二者相连,生成恶意代码的动态关系图。
19.在可选的实施方式中,将系统调用依赖图转换为大小固定的有向带权图的步骤包括:
20.利用开源工具对系统调用依赖进行分组,并利用系统调用依赖之间的调用关系构成系统调用依赖图;
21.将属于同一组的系统调用依赖聚合为一个节点,两个节点之间重新定义一个新边,新边的权重为两类节点之间原始边的数量,使系统调用依赖图转换为大小固定的组调用图,组调用图为有向带权图。
22.在可选的实施方式中,计算有向带权图之间的距离值的步骤包括:
23.计算两个有向带权图中的节点集合的jaccard距离d
j

24.计算两个有向带权图相同节点对之间的出度余弦距离d
in
和入度余弦距离d
out

25.根据jaccard距离d
j
、出度余弦距离d
in
和入度余弦距离d
out
,计算两个有向带权图之间的距离值d。
26.在可选的实施方式中,距离值d的计算公式为:
[0027][0028]
其中,th根据经验设置。
[0029]
在可选的实施方式中,获取待分类的恶意代码的静态特征和动态关系图,并输入已训练的图神经网络模型,以判断恶意代码的家族信息的步骤包括:
[0030]
将静态特征和动态关系图输入图神经网络模型中,得到恶意代码的嵌入向量;
[0031]
将嵌入向量输入到分类器中,以判断恶意代码的家族信息。
[0032]
在可选的实施方式中,分类器包括mlp、svm和朴素贝叶斯。
[0033]
在可选的实施方式中,图神经网络模型包括graphsage、gcn和gat。
[0034]
在可选的实施方式中,从已标注的恶意代码中提取静态特征和动态特征的步骤包括:
[0035]
采用开源工具提取静态特征,其中,开源工具包括peframe和ida。
[0036]
本发明实施例提供的恶意代码家族分类方法的有益效果包括:
[0037]
1.该分类方法首先通过对恶意代码标注家族信息,并从这些恶意代码中获取静态特征和动态特征,然后将获取的特征输入图神经网络模型,以训练图神经网络模型,使图神经网络模型获得对恶意代码进行分类的标准,最后,将待分类的恶意代码的静态特征和动态关系图输入已训练的图神经网络模型,就能够快速、准确地判断出恶意代码的家族信息;
[0038]
2.该分类方法考虑到了静态特征与动态特征,利用动态特征生成动态关系图,再利用动态关系图与静态特征,从关联角度融合两类特征,分类方法简单,准确性高。
附图说明
[0039]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0040]
图1为本发明实施例提供的恶意代码家族分类方法的流程图。
具体实施方式
[0041]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0042]
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0044]
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
[0045]
可以理解的是,恶意代码又称为恶意软件,是能够在计算机系统中进行非授权操作的代码。恶意代码的编写大多是出于商业或探测他人资料的目的,如宣传某个产品、提供网络收费服务或对他人的计算机直接进行有意的破坏等,总的来说,它具有恶意破坏的目的、其本身为程序,以及通过执行发生作用3个特征。目前,新出现的许多恶意代码是己有恶意代码的变种,源的恶意代码属于同一家族,如何快速识别出这些恶意代码的所属家族,对于保障网络信息安全来说是十分重要的。
[0046]
请参考图1,本实施例提供了一种恶意代码家族分类方法(以下简称:“分类方法”),该分类方法包括以下步骤:
[0047]
s1:对恶意代码标注家族信息。
[0048]
具体的,首先收集足量的恶意代码,然后标注这些恶意代码的家族信息,这些恶意代码将作为训练模型的原始数据。
[0049]
s2:从已标注的恶意代码中提取静态特征和动态特征。
[0050]
采用开源工具提取静态特征,其中,开源工具包括peframe和ida。
[0051]
其中,静态特征包括关键api出现次数、关键特殊字符个数、指令码频数、指令码n

gram和字节序列n

gram。动态特征可以是恶意代码的函数关系调用图,包括api(全称:“application programming interface”,中文名:应用程序编程接口”)调用依赖图、系统调用依赖图和控制流图。
[0052]
具体的,提取静态特征和动态特征的过程可以是:将恶意代码在动态沙箱的虚拟操作系统层中运行,在运行过程中模拟对操作系统的所有api进行调用的操作,触发并提取恶意代码产生的动态特征。其中,动态沙箱包括:虚拟机层和虚拟操作系统层,虚拟机层用于实现计算机物理硬件的虚拟化,虚拟操作系统层用于运行并分析样本。
[0053]
本实施例提取的特征还可以是动态行为记录文件,可以利用文本机器学习的模型,对特征进行训练,生成恶意代码家族分类模型,所提取的特征也可以是由动态行为记录
文件转换成的图片,可以利用图片机器学习的模型,对特征进行训练,生成恶意代码家族分类模型。
[0054]
s3:根据动态特征,生成恶意代码的动态关系图。
[0055]
其中,主要利用动态特征中的系统调用依赖图生成动态关系图。
[0056]
首先,通过动态分析获取动态特征中的系统调用依赖图,将系统调用依赖图转换为大小固定的有向带权图。具体的,先利用开源工具对系统调用依赖进行分组,并利用系统调用依赖之间的调用关系构成系统调用依赖图,这里的开源工具可以是nttrace等;再将属于同一组的系统调用依赖聚合为一个节点,两个节点之间重新定义一个新边,新边的权重为两类节点之间原始边的数量,使系统调用依赖图转换为大小固定的组调用图,组调用图为有向带权图。
[0057]
然后,计算有向带权图之间的距离值,本实施例中,对有向带权图的节点集合和结构两方面进行混合计算。具体的,对于两个有向带权图中的节点集合,先计算两个有向带权图中的节点集合的jaccard距离d
j
;对于两个有向带权图中的结构,计算两个有向带权图相同节点对之间的出度余弦距离d
in
和入度余弦距离d
out
;根据jaccard距离d
j
、出度余弦距离d
in
和入度余弦距离d
out
,计算两个有向带权图之间的距离值d。
[0058]
其中,距离值d的计算公式为:
[0059][0060]
其中,th根据经验设置。
[0061]
最后,设立阈值λ,将距离值d小于阈值λ的两个有向带权图判定为相似,并将二者相连,生成恶意代码的动态关系图。
[0062]
可变参数
ɑ
、β、γ和λ可以人为事先设定,也可以通过小批量样本训练得到,训练得到的过程为:首先,选择每个家族的少量样本,提取每个样本的系统调用依赖图并转换为固定大小的组调用图,计算组调用图之间的距离值d;训练参数α,β,γ使得属于相同家族的组调用图之间距离值d小于不同家族的组调用图之间距离值d;选择适当阈值λ使得家族之间划分明显。
[0063]
s4:将静态特征和动态关系图输入图神经网络模型中,以训练图神经网络模型。
[0064]
其中,图神经网络模型包括graphsage、gcn和gat。本实施例中,图神经网络模型采用graphsage,graphsage具有良好的灵活性和扩展性。
[0065]
首先,将静态特征和动态关系图输入图神经网络模型中,得到恶意代码的嵌入向量。
[0066]
然后,将嵌入向量输入到分类器中,以判断恶意代码的家族信息。其中,分类器包括mlp、svm和朴素贝叶斯。
[0067]
其中,可以事先对分类器进行训练,先获取一些已标注的恶意代码的嵌入向量,将获取的嵌入向量输入到分类器中,训练分类器使得家族分类准确。
[0068]
经过训练的图神经网络模型和分类器使之更加合适恶意代码分类,提高恶意代码
分类方法效率和准确率。
[0069]
s5:获取待分类的恶意代码的静态特征和动态关系图,并输入已训练的图神经网络模型,以判断恶意代码的家族信息。
[0070]
其中,首先提取待分类的恶意代码的静态特征和动态特征,然后根据动态特征,生成恶意代码的动态关系图;最后,将静态特征和动态关系图输入图神经网络模型中,即可判断出恶意代码的家族信息,完成对恶意代码的分类。
[0071]
本实施例提供的恶意代码家族分类方法的核心在于:当需要判断一个恶意代码的家族信息时,首先提取该恶意代码的静态特征和动态特征中的系统调用依赖图,之后将系统调用依赖图转换为固定大小的组调用图,计算其与现有组调用图之间的距离,将其与满足条件的组调用图相连,之后聚合其邻居的特征得到恶意代码的嵌入向量,将嵌入向量输入到分类器中得到判别分类。
[0072]
本实施例提供的恶意代码家族分类方法的有益效果包括:
[0073]
1.该分类方法首先通过对恶意代码标注家族信息,并从这些恶意代码中获取静态特征和动态特征,然后将获取的特征输入图神经网络模型,以训练图神经网络模型,使图神经网络模型获得对恶意代码进行分类的标准,最后,将待分类的恶意代码的静态特征和动态关系图输入已训练的图神经网络模型,就能够快速、准确地判断出恶意代码的家族信息;
[0074]
2.该分类方法考虑到了静态特征与动态特征,利用动态特征生成动态关系图,再利用动态关系图与静态特征,从关联角度融合两类特征,分类方法简单,准确性高。
[0075]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献