一种恶意软件分类方法技术

技术编号:39809279 阅读:10 留言:0更新日期:2023-12-22 02:44
本申请实施例提供一种恶意软件分类方法

【技术实现步骤摘要】
一种恶意软件分类方法、装置、电子设备及存储介质


[0001]本申请涉及数据分析
,具体而言,涉及一种恶意软件分类方法

装置

电子设备及存储介质


技术介绍

[0002]恶意软件分类是用于对感染
Windows
操作系统的不同类型的恶意软件进行恶意软件家族分类的技术,可以分为基于静态特征的方法和基于动态特征的方法

基于静态的分析方法主要包括基于签名的方法

启发式分析的方法和基于机器学习的方法

由于机器学习算法的发展,基于机器学习的恶意软件分类方法的应用越来越广泛,基于机器学习的分类方法又可以分为三种类别:基于图像的分类方法

基于字节流的分类方法和基于反汇编的分类方法

[0003]但是,现有技术的恶意软件分类方法存在很多弊端,例如,采用敏感函数调用序列信息进行恶意软件分析时容易遗漏大量有用的程序行为信息,由于只提取敏感
API
相关的调用序列信息,缺乏对程序各种内部自定义函数的信息分析

因此不能完全反映恶意软件的行为信息,从而可能无法保证分析的准确率,造成误报;
sent2vec
向量嵌入以及基于注意力机制的神经网络训练消耗过大,分析的效率和速度会比较低下;去除不包含
API
调用的函数时容易造成信息遗漏,对程序的行为刻画不够精准,会降低分类的准确率;对于特征向量化过程过于复杂
>、
细粒度高的分析方式,如
Shapelets
算法
、HDBSCAN
聚类算法

关键路径最小距离计算等需要高额计算资源的处理方法,难以实现大规模数据集的计算


技术实现思路

[0004]本申请实施例的目的在于提供一种恶意软件分类方法

装置

电子设备及存储介质,可以提高恶意软件的分类效率,减少恶意软件的漏检

误检问题,能够精准刻画软件中的程序行为,适用于大规模数据下的恶意软件分类,对恶意软件的要求低,适应度高

[0005]第一方面,本申请实施例提供了一种恶意软件分类方法,所述方法包括:
[0006]获取恶意软件的二进制文件;
[0007]对所述二进制文件进行反汇编处理,得到函数调用图;
[0008]对所述函数调用图进行归一化处理,得到简化函数调用图;
[0009]根据预先构建的机器学习模型对所述简化函数调用图进行分类,得到分类结果

[0010]在上述实现过程中,通过对二进制文件的反汇编处理

归一化处理后,再利用深度学习进行分类,可以提高恶意软件的分类效率,减少恶意软件的漏检

误检问题,能够精准刻画软件中的程序行为,适用于大规模数据下的恶意软件分类,对恶意软件的要求低,适应度高

[0011]进一步地,所述对所述二进制文件进行反汇编处理,得到函数调用图的步骤,包括:
[0012]根据所述二进制文件获得代码段数据;
[0013]扫描所述代码段数据中的函数,得到函数调用列表和函数调用关系;
[0014]根据所述函数调用关系生成函数调用图

[0015]在上述实现过程中,通过对二进制文件进行反汇编处理,得到函数调用列表和函数调用关系,可以快速地获得函数调用图,便于后续进行归一化处理

[0016]进一步地,所述对所述函数调用图进行归一化处理,得到简化函数调用图的步骤,包括:
[0017]对所述函数调用列表中的函数修饰名称进行去修饰化处理,得到包含上层函数名称的函数调用列表;
[0018]对所述包含上层函数名称的函数调用列表进行归一化处理,得到包含简化上层函数名称的函数调用列表;
[0019]根据所述简化上层函数名称对所述函数调用图进行归一化处理,得到所述简化函数调用图

[0020]在上述实现过程中,对函数修饰名称进行去修饰化处理和归一化处理,可以减少冗余的函数调用信息,使得函数调用图更加精简,便于进行后续的分类

[0021]进一步地,所述对所述函数调用列表中的函数修饰名称进行去修饰化处理,得到包含上层函数名称的函数调用列表的步骤,包括:
[0022]根据函数名称修饰规则对所述函数修饰名称进行去修饰化处理,得到所述包含上层函数名称的函数调用列表

[0023]在上述实现过程中,对函数修饰名称进行去修饰化处理,使得到的上层函数名称更加简单

便于识别,同时可以减小数据空间的占用

[0024]进一步地,所述对所述包含上层函数名称的函数调用列表进行归一化处理,得到包含简化上层函数名称的函数调用列表的步骤,包括:
[0025]遍历所述包含上层函数名称的函数调用列表中的上层函数名称;
[0026]将所述包含上层函数名称的函数调用列表中的每一个上层函数名称依次与所述每一个上层函数名称之后的上层函数名称进行对比;
[0027]判断所述每一个上层函数名称的目标字符与所述每一个上层函数名称之后的上层函数名称的目标字符是否相同;
[0028]若是,将所述每一个上层函数名称和所述每一个上层函数名称之后的上层函数名称中字符长度较大的上层函数名称替换为字符长度较小的上层函数名称,得到所述包含简化上层函数名称的函数调用列表

[0029]在上述实现过程中,将每一个上层函数名称和每一个上层函数名称之后的上层函数名称中字符长度较大的上层函数名称替换为字符长度较小的上层函数名称,可以缩短上层函数名称的字符长度,便于后续分类

[0030]进一步地,在所述判断所述每一个上层函数名称的目标字符与所述每一个上层函数名称之后的上层函数名称的目标字符是否相同的步骤之前,还包括:通过以下方式获得所述上层函数名称的目标字符:
[0031]获取上层函数名称的字符长度;
[0032]根据长度阈值选取所述上层函数名称的字符长度中的目标长度;
[0033]将所述目标长度对应的字符作为所述目标字符

[0034]在上述实现过程中,根据长度阈值选取上层函数名称中字符长度,使得目标字符的对比可以以字符长度为参考依据,避免出现字符纰漏或缺失导致无法比较上层函数名称

[0035]进一步地,所述根据预先构建的机器学习模型对所述简化函数调用图进行分类,得到分类结果的步骤,包括:
[0036]根据包含简化上层函数名称的函数调用列表和所述简化函数调用图构建特征向量;
[0037]将所述特征向量输入预先构建的机器学习模型对所述简化函数调用图进行分类,得到所述分类结果

[0038]第二方面,本申请实施例本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种恶意软件分类方法,其特征在于,所述方法包括:获取恶意软件的二进制文件;对所述二进制文件进行反汇编处理,得到函数调用图;对所述函数调用图进行归一化处理,得到简化函数调用图;根据预先构建的机器学习模型对所述简化函数调用图进行分类,得到分类结果
。2.
根据权利要求1所述的恶意软件分类方法,其特征在于,所述对所述二进制文件进行反汇编处理,得到函数调用图的步骤,包括:根据所述二进制文件获得代码段数据;扫描所述代码段数据中的函数,得到函数调用列表和函数调用关系;根据所述函数调用关系生成函数调用图
。3.
根据权利要求1所述的恶意软件分类方法,其特征在于,所述对所述函数调用图进行归一化处理,得到简化函数调用图的步骤,包括:对所述函数调用列表中的函数修饰名称进行去修饰化处理,得到包含上层函数名称的函数调用列表;对所述包含上层函数名称的函数调用列表进行归一化处理,得到包含简化上层函数名称的函数调用列表;根据所述简化上层函数名称对所述函数调用图进行归一化处理,得到所述简化函数调用图
。4.
根据权利要求3所述的恶意软件分类方法,其特征在于,所述对所述函数调用列表中的函数修饰名称进行去修饰化处理,得到包含上层函数名称的函数调用列表的步骤,包括:根据函数名称修饰规则对所述函数修饰名称进行去修饰化处理,得到所述包含上层函数名称的函数调用列表
。5.
根据权利要求3所述的恶意软件分类方法,其特征在于,所述对所述包含上层函数名称的函数调用列表进行归一化处理,得到包含简化上层函数名称的函数调用列表的步骤,包括:遍历所述包含上层函数名称的函数调用列表中的上层函数名称;将所述包含上层函数名称的函数调用列表中的每一个上层函数名称依次与所述每一个上层函数名称之后的上层函数名称进行对比;判断所述每一个上层函数名称的目标字符与所述每一个上层函数名称之后的...

【专利技术属性】
技术研发人员:赵浩钧徐晓
申请(专利权)人:北京天融信网络安全技术有限公司
类型:发明
国别省市:

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

1