基于协同学习的可视化恶意软件检测方法转让专利

申请号 : CN202110775119.6

文献号 : CN113221115B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈文黄登高覃

申请人 : 四川大学

摘要 :

本发明公开了一种基于协同学习的可视化恶意软件检测方法,包括初始化过程和协同训练过程;其中:所述初始化过程具体包括:(1)软件可视化;(2)特征提取;所述的协同训练过程具体包括:(3)多分类器新样本协同训练标记;(4)投票检测过程;本发明能够使用少量已标记的软件样本特征进行建模,并通过大量未标记样本不断优化模型的检测性能,使恶意软件检测模型具有了自学习,自适应的能力,从而减少了对于人工软件样本标记的依赖,解决了恶意软件检测中有标记样本收集困难,导致基于机器学习的恶意软件分类模型难以有效训练的问题。

权利要求 :

1.一种基于协同学习的可视化恶意软件检测方法,其特征在于,包括初始化过程和协同训练过程;其中:

所述初始化过程具体包括:

(1)软件可视化:当得到软件的二进制文件后,首先对每个二进制文件进行读取,得到每个二进制文件所对应的二进制字符串,然后将得到的二进制字符串组成二维矩阵,再将所述二维矩阵中的数值转化成像素值,并将每个像素值按照由黑至白过渡的颜色拼接成软件样本的灰度图像;

(2)特征提取:提取所述软件样本的特征,用于在不同的特征视图上训练多个不同的分类器,实现多分类器协同的恶意软件检测;其中,提取的特征包括:软件样本灰度图像局部特征视图 、软件样本灰度图像全局特征视图 和软件样本的行为特征视图 ;

所述的协同训练过程具体包括:(3)多分类器新样本协同训练标记:在训练的初始化阶段,利用少量有标记软件样本,在三个不同的特征视图 下分别训练三个分类器 ;

之后在迭代训练过程中,对于所得到的分类器 ,由另两个分类器 , 为其产生更新样本 ,且 : 和 随机从未标记软件样本集U中抽取软件样本进行标记,其中 和 标记结果相同的软件样本集合 被认为具有较高置信度,在分类器 所在的视图 中对 中的软件样本 进行特征提取,并将提取后的特征连同标记的 或 作为新的有标记软件样本加入分类器 的新标记软件样本集 ,用于 的更新训练;

所述的协同训练过程还包括:

新标记软件样本的有效性评估:将多分类器新样本协同训练标记过程中标记错误的软件样本视作样本噪声,利用噪声学习理论,对新标记软件样本的有效性进行评估,只有通过评估的软件样本才能最终用于分类器的更新;

新标记软件样本的有效性评估具体包括:设训练样本序列包含 个软件样本,其中协同标记的样本噪声率,即错误率为 ,当 满足 时,有 ,其中,为置信度参数,表示分类器 的分类误差上限,是软件样本的类别数目, 反映了分类器 和理想分类器 的均衡差别的概率之和;

在给定置信度参数的情况下,需满足的条件可变形为式(1):(1)

对式(1)左侧进行展开,可得:(2)

从而得到:

                        (3)根据式(3),软件样本数量 和样本错误率需满足式(4):                          (4)令常数 ,其中为令式(4)取等号的系数,则可得:                        (5)由式(5)可知,误差上限 的平方与 成反比;

设 为少量的已标记样本集,为第轮新标注的样本集,对于分类器 ,和 ,分别代表第轮新标记样本集 , ,第轮已标记样本总数为 ,软件样本协同标记错误率为 ,使用第轮的 个样本对分类器 进行更新训练, ,若要保证更新训练后分类器的性能较上一轮训练有所提升,则需保证满足式(6):        (6)

结合式(5)和式(6)可知:若式(6)成立,则第轮的 个样本对分类器 , 进行训练后,的分类误差上限 将较 轮更低;若式(6)不成立,则需要从未标记软件样本集U中重新采样进行协同标记;设第轮样本协同标记过程中,和 在已标记软件样本集 和新标记软件样本集 上的错误率分别为 和 ,则软件样本协同标记错误率 如式(7)所示:                         (7)为保证训练过程持续降低分类误差上限 ,将式(7)代入式(6),可得:     (8)

通常在已标记软件样本上的分类错误率 ,可忽略不计,由此简化式(8)得到:             (9)即:

                   (10)将式(10)作为新标记软件样本集 是否用于分类器更新训练的有效性评估条件;

采用十折交叉验证法,每轮迭代训练前从已标记软件样本集 中随机选出1/10的样本加入未标记软件样本集U: , ,利用 中的软件样本对第轮协同标记的错误率 进行估计;

由于未标记软件样本集的选取具有随机性,当 时,需要有 ,式(10)较难满足,导致无法选出符合条件的协同标记软件样本而提前终止迭代更新过程;故限定两轮协同标记的软件样本规模大小一致,即 ,将式(10)的评估条件进行扩展,得到式(11),即:

             (11)通过固定每轮协同标记的软件样本规模,令 ,对软件样本的有效性评估条件进行简化;

当需要更多的已标记软件样本用于后继的分类器训练,继续放宽软件样本的有效性评估条件如式(12)所示:

(12)

其中,为松驰因子;

在第轮的迭代训练过程中,依次令 , ,对 中的软件样本进行有效性评估,只有满足式(11)或式(12)条件的新标记软件样本才能对分类器 进行更新训练,直至达到给定的迭代更新训练次数,或无法从未标记软件样本集U中找出符合更新条件的软件样本;

(4)投票检测过程:对于协同训练结束后得到的三个分类器 ,和 ,采用投票机制对恶意样本的进行融合标记。

2.根据权利要求1所述的基于协同学习的可视化恶意软件检测方法,其特征在于,在软件可视化过程中,所述二进制文件中每个所读取的字符表示为8位的无符号变量,所述软件样本灰度图像的像素范围为相应8位二进制的范围[0,255],其中:0代表黑色,255代表白色,中间为灰色,而且针对不同大小的软件样本灰度图像设定不同的灰度图像高度。

3.根据权利要求1所述的基于协同学习的可视化恶意软件检测方法,其特征在于,特征提取过程中,提取软件样本灰度图像局部特征视图 具体为:将软件样本的灰度图像投入旋转不变均匀模式的局部二值模式LBP算子进行运算得到相应的LBP纹理特征向量,作为描述软件样本的局部特征;

提取软件样本灰度图像全局特征视图 具体为:将软件样本划分成16*16的网格,并对每个网格计算平均灰度强度和灰度的平均方差,作为描述软件样本的全局特征;

提取软件样本的行为特征视图 具体为:对软件样本进行逆向分析,提取其包含的系统调用序列 ,对每一个 函数进行数值编码,从而将序列 转换为对应的编码序列 ,直接对编码序列 进行分段切分,形成分段输入向量作为软件样本的行为特征;或者将编码序列 中典型的异常 函数调用序列片段出现的频率作为软件样本的行为特征。

说明书 :

基于协同学习的可视化恶意软件检测方法

技术领域

[0001] 本发明涉及网络空间安全技术领域,特别是一种基于协同学习的可视化恶意软件检测方法。

背景技术

[0002] 恶意软件是当前网络空间面临的严重安全威胁,具有生成速度快,传播范围广,感染能力强的特点。恶意软件包括木马、病毒、蠕虫和恶意后门等。自上世纪90年代起,研究者
开始对恶意软件的检测进行深入研究,现有的恶意软件检测包括静态检测和动态检测两类
方法,目前应用广泛的检测方式包括基于签名的检测、基于行为的检测和启发式扫描等。
[0003] 在传统检测方法中,在对所捕捉到的恶意软件进行分析之前需要人工使用反汇编软件、虚拟机和沙箱等工具对恶意软件进行分析,导致对恶意软件的识别往往严重滞后于
软件传播。同时,在实际的检测场景下,由于恶意样本的特征标记需要经过大量的人工解码
和分析,导致获取有标记的恶意样本十分困难。而大量的无标记软件样本因缺乏标记而无
法被用于传统的恶意软件检测模型训练过程。
[0004] 传统恶意软件检测方法需要大量的人工解码和分析,以实现对恶意样本的特征提取与样本标记。通过人工进行恶意样本分析代价过高,导致有标记的恶意样本获取困难,而
大量无标记的恶意样本无法被用于检测模型训练过程而遗留闲置。因此,设计新型的恶意
软件检测方法,避免检测模型对大量人工标记样本的依赖问题对于恶意软件检测具有重要
意义。

发明内容

[0005] 为解决现有技术中存在的问题,本发明的目的是提供一种基于协同学习的可视化恶意软件检测方法,本发明将软件二进制文件通过可视化的处理转化成灰度图像,提取不
同的图像特征并结合软件行为特征,进而形成多特征视图;然后在多特征视图下,利用少量
的有标记样本和大量无标记样本,利用多个分类器进行基于协同学习的恶意软件检测建
模,以持续优化模型的恶意软件检测能力;本发明能够利用图像特征的旋转、平移不变性提
升模型对变种恶意软件的检测能力,此外,利用大量未标记样本进行检测模型持续迭代训
练,减少了对人工标记样本的依赖。
[0006] 为实现上述目的,本发明采用的技术方案是:一种基于协同学习的可视化恶意软件检测方法,包括初始化过程和协同训练过程;其中:
[0007] 所述初始化过程具体包括:
[0008] (1)软件可视化:当得到软件的二进制文件后,首先对每个二进制文件进行读取,得到每个二进制文件所对应的二进制字符串,然后将得到的二进制字符串组成二维矩阵,
再将所述二维矩阵中的数值转化成像素值,并将每个像素值按照由黑至白过渡的颜色拼接
成软件样本的灰度图像;
[0009] (2)特征提取:提取所述软件样本的特征,用于在不同的特征视图上训练多个不同的分类器,实现多分类器协同的恶意软件检测;其中,提取的特征包括:软件样本灰度图像
局部特征视图 、软件样本灰度图像全局特征视图 和软件样本的行为特征视图 ;
[0010] 所述的协同训练过程具体包括:
[0011] (3)多分类器新样本协同训练标记:
[0012] 在训练的初始化阶段,利用少量有标记软件样本,在三个不同的特征视图 下分别训练三个分类器 ;
[0013] 之后在迭代训练过程中,对于所得到的分类器 ,由另两个分类器 , 为其产生更新样本 ,且 : 和 随机从未标记软件样本集U中抽取软件样本进行标
记,其中 和 标记结果相同的软件样本集合 被认为具有较
高置信度,在分类器 所在的视图 中对 中的软件样本 进行特征提取,并将提取后的特征
连同标记的 或 作为新的有标记软件样本加入分类器 的新标记软件样本集 ,用于
的更新训练;
[0014] (4)投票检测过程:对于协同训练结束后得到的三个分类器 ,和 ,采用投票机制对恶意样本的进行融合标记。
[0015] 作为本发明的进一步改进,在软件可视化过程中,所述二进制文件中每个所读取的字符表示为8位的无符号变量,所述软件样本灰度图像的像素范围为相应8位二进制的范
围[0,255],其中:0代表黑色,255代表白色,中间为灰色,而且针对不同大小的软件样本灰
度图像设定不同的灰度图像高度。
[0016] 作为本发明的进一步改进,特征提取过程中,提取软件样本灰度图像局部特征视图 具体为:将软件样本的灰度图像投入旋转不变均匀模式的局部二值模式LBP算子进行
运算得到相应的LBP纹理特征向量,作为描述软件样本的局部特征;
[0017] 提取软件样本灰度图像全局特征视图 具体为:将软件样本划分成16*16的网格,并对每个网格计算平均灰度强度和灰度的平均方差,作为描述软件样本的全局特征;
[0018] 提取软件样本的行为特征视图 具体为:对软件样本进行逆向分析,提取其包含的系统调用序列 ,对每一个 函数进行数值编码,从而将序列 转换
为对应的编码序列 ,直接对编码序列 进行分段切分,形成分
段输入向量作为软件样本的行为特征;或者将编码序列 中典型的异常 函数调用序列片
段出现的频率作为软件样本的行为特征。
[0019] 作为本发明的进一步改进,所述的协同训练过程还包括:
[0020] 新标记软件样本的有效性评估:将多分类器新样本协同训练标记过程中标记错误的软件样本视作样本噪声,利用噪声学习理论,对新标记软件样本的有效性进行评估,只有
通过评估的软件样本才能最终用于分类器的更新。
[0021] 作为本发明的进一步改进,新标记软件样本的有效性评估具体包括:
[0022] 设训练样本序列包含 个软件样本,其中协同标记的样本噪声率,即错误率为 ,当满足 时,有 ,其中,为置信度参数,表示分类器 的分类误
差上限,是软件样本的类别数目, 反映了分类器 和理想分类器 的均衡差别的概
率之和;
[0023] 在给定置信度参数的情况下,需满足的条件可变形为式(1):
[0024] (1)
[0025] 对式(1)左侧进行展开,可得:
[0026] (2)
[0027] 从而得到:
[0028]                         (3)
[0029] 根据式(3),软件样本数量 和样本错误率 需满足式(4):
[0030]                           (4)
[0031] 令常数 ,其中 为令式(4)取等号的系数,则可得:
[0032]                         (5)
[0033] 由式(5)可知,误差上限的平方与 成反比;
[0034] 设 为少量的已标记样本集,为第轮新标注的样本集,对于分类器 ,和 ,分别代表第轮新标记样本集 , ,第轮已标记样本总数为 ,软件样本协同标
记错误率为 ,使用第轮的 个样本对分类器 进行更新训练, ,若要保证更新训练
后分类器的性能较上一轮训练有所提升,则需保证满足式(6):
[0035]         (6)
[0036] 结合式(5)和式(6)可知:若式(6)成立,则第轮的 个样本对分类器 , 进行训练后,的分类误差上限 将较 轮更低;若式(6)不成立,则需要从未标记软件样本集U
中重新采样进行协同标记;设第轮样本协同标记过程中,和 在已标记软件样本集 和新
标记软件样本集 上的错误率分别为 和 ,则软件样本协同标记错误率 如式(7)所示:
[0037]                          (7)
[0038] 为保证训练过程持续降低分类误差上限 ,将式(7)代入式(6),可得:
[0039]      (8)
[0040] 通常在已标记软件样本上的分类错误率 ,可忽略不计,由此简化式(8)得到:
[0041]              (9)
[0042] 即:
[0043]                    (10)
[0044] 将式(10)作为新标记软件样本集 是否用于分类器更新训练的有效性评估条件。
[0045] 作为本发明的进一步改进,采用十折交叉验证法,每轮迭代训练前从已标记软件样本集中随机选出1/10的样本 加入未标记软件样本集U: , ,利用 中的
软件样本对第轮协同标记的错误率 进行估计。
[0046] 作为本发明的进一步改进,由于未标记软件样本集的选取具有随机性,当时,需要有 ,式(10)较难满足,导致无法选出符合条件的协同标记软件样
本而提前终止迭代更新过程;故限定两轮协同标记的软件样本规模大小一致,即 ,
将式(10)的评估条件进行扩展,得到式(11),即:
[0047]              (11)
[0048] 通过固定每轮协同标记的软件样本规模,令 ,对软件样本的有效性评估条件进行简化。
[0049] 作为本发明的进一步改进,还包括:
[0050] 当需要更多的已标记软件样本用于后继的分类器训练,继续放宽软件样本的有效性评估条件如式(12)所示:
[0051] (12)
[0052] 其中,为松驰因子;
[0053] 在第轮的迭代训练过程中,依次令 , ,对 中的软件样本进行有效性评估,只有满足式(11)或式(12)条件的新标记软件样本才能对分类器 进行更新训练,直至
达到给定的迭代更新训练次数,或无法从未标记软件样本集U中找出符合更新条件的软件
样本。
[0054] 本发明的有益效果是:
[0055] 本发明的基于协同学习的可视化恶意软件检测方法,软件转化为可视化图像,提取图像的局部特征和全局特征,并连同软件行为特征构成软件的多特征视图;随后在每个
特征视图下训练不同的分类器;多个分类器通过协同训练,新标记样本的有效性评估,迭代
实现了多个分类器的协同训练更新;本发明能够使用少量已标记的软件样本特征进行建
模,并通过大量未标记样本不断优化模型的检测性能,使恶意软件检测模型具有了自学习,
自适应的能力,从而减少了对于人工软件样本标记的依赖,解决了恶意软件检测中有标记
样本收集困难,导致基于机器学习的恶意软件分类模型难以有效训练的问题。

附图说明

[0056] 图1为本发明实施例的整体流程图;
[0057] 图2为本发明实施例中特征提取的流程图;
[0058] 图3为本发明实施例中多分类器新样本协同标记的流程图;
[0059] 图4为本发明实施例中Malimg数据集上各算法准确率的对比图;
[0060] 图5为本发明实施例中Microsoft数据集上各算法准确率的对比图。

具体实施方式

[0061] 下面结合附图对本发明的实施例进行详细说明。实施例
[0062] 如图1所示,一种基于协同学习的可视化恶意软件检测方法,包括初始化和协同训练两个过程,其中,初始化过程包括:1、软件可视化,2、特征提取;协同训练过程包括:3、多
分类器新样本协同标记,4、新标记样本有效性评估。
[0063] 接下来对本实施例进行详细描述:
[0064] (1)软件可视化:当得到软件的二进制文件后,首先对每个二进制文件进行读取,得到每个文件所对应的二进制字符串,其中二进制文件中所读取的每个字符表示为8位的
无符号变量。然后将得到的二进制字符串组成二维矩阵;将二维矩阵中的数值转化成像素
值,并将每个像素值按照由黑至白过渡的颜色拼接成灰度图像。其中图像像素的取值范围
设置为相应8位二进制位的取值范围[0,255],0代表黑色,255代表白色,中间为灰色。同时,
针对不同大小的恶意样本设定不同的灰度图像高度,以防止由于图像过长或过宽导致提取
出含有噪声的特征。
[0065] (2)特征提取:为了在不同的特征视图上训练多个不同的分类器,以便于实现多分类器协同的恶意软件检测,如图2所示,本实施例提取了软件样本的三种特征视图。
[0066] ①软件样本灰度图像局部特征 :对于可视化过程所得到的软件样本灰度图像,首先将图像样本投入旋转不变均匀模式的LBP(局部二值模式)算子进行运算得到相应的LBP
纹理特征向量作为描述图像样本的局部特征。
[0067] ②软件样本灰度图像全局特征 :将图像样本划分成16*16的网格,并对每个网格计算平均灰度强度和灰度的平均方差作为描述图像样本的全局特征。
[0068] ③软件样本的行为特征 ,对软件进行逆向分析,提取其包含的系统调用序列,对每一个 函数进行数值编码,从而将序列 转换为对应的编码
序列 。优选的,直接对 进行分段切分,形成分段输入向量作为
软件的行为特征;也可以将 中典型的异常 调用序列片断出现的频率作为软件的行为特
征。
[0069] (3)多分类器新样本协同标记:如图3所示,在三个特征视图 , , 下分别训练三个分类器 ,和 。在训练的初始化阶段,利用少量有标记样本,在三个不同的特征视图下
训练三个不同基本分类器 。
[0070] 之后在迭代训练过程中,对于所得到的分类器 ,由另两个分类器 , 为其产生更新样本 ,且 : 和 随机从未标记样本集U中抽取样本进行标记,其中
和 标记结果相同的样本集合 被认为具有较高置信度,在
分类器 所在的视图 中对 中的样本 进行特征提取,并将提取后的特征连同标记 (或
)作为新的有标记样本加入分类器 的新标记样本集 ,用于 的更新训练。
[0071] (4)新标记样本的有效性评估:由于多分类器协同训练可能会产生错误的新标记样本,并放入新标记样本集 中, ,从而降低分类器更新训练的性能。本实施例将步骤
(3)标记错误的样本视作样本噪声,利用噪声学习理论,对新标记样本的有效性进行评估,
只有通过评估的样本才能最终用于分类器更新。
[0072] 根据Angluin and Laird所提出的噪声学习理论,设训练样本序列包含 个样本,其中协同标记的样本噪声率(错误率)为 ,当 满足 时,有 ,
其中,为置信度参数,表示分类器 的分类误差上限,是样本的类别数目。 反映了
分类器 和理想分类器 的均衡差别(两者在样本标记上的不一致)的概率之和。
[0073] 在给定置信度参数的情况下,需满足的条件可变形为式(1):
[0074] (1)
[0075] 对式(1)左侧进行展开,可得:
[0076] (2)
[0077] 从而得到:
[0078]                         (3)
[0079] 根据式(3),软件样本数量 和样本错误率 需满足式(4):
[0080]                           (4)
[0081] 令常数 ,其中 为令式(4)取等号的系数,则可得:
[0082]                        (5)
[0083] 由式(5)可知,误差上限的平方与 成反比。
[0084] 设 为少量的已标记样本集,为第轮新标注的样本集(对于分类器 ,和 ,分别代表第轮新标记样本集 , )。第轮已标记样本总数为 ,样本协同标记
错误率为 。使用第轮的 个样本对分类器 进行更新训练, ,若要保证更新训练后
分类器的性能较上一轮训练有所提升,则需保证满足式(6):
[0085]         (6)
[0086] 结合式(5)和式(6)可知:若式(6)成立,则第轮的 个样本对分类器 , 进行训练后,的分类误差上限 将较 轮更低;若式(6)不成立,则需要从未标记软件样本集U
中重新采样进行协同标记。设第轮样本协同标记过程中,和 在已标记软件样本集 和新
标记软件样本集 上的错误率分别为 和 ,则软件样本协同标记错误率 如式(7)所示:
[0087]                          (7)
[0088] 为保证训练过程持续降低分类误差上限 ,将式(7)代入式(6),可得:
[0089]      (8)
[0090] 通常在已标记软件样本上的分类错误率 ,可忽略不计,由此简化式(8)得到:
[0091]              (9)
[0092] 即:
[0093]                    (10)
[0094] 为了对 进行估计,在具体实施方式中,可以采用十折交叉验证法每轮迭代训练前从已标记软件样本集 中随机选出1/10的样本 加入未标记软件样本集U: ,
,利用 中的软件样本对第轮协同标记的错误率 进行估计。
[0095] 由于未标记样本集的选取具有随机性,当 时,需要有 ,式(10)较难满足,导致无法选出符合条件的协同标记样本而提前终止迭代更新过程。
[0096] 因此,本实施例限定两轮协同标记的样本规模大小一致,即 ,将评估条件(10)进行扩展,得到条件(11),即:
[0097]              (11)
[0098] 通过固定每轮协同标记样本规模,令 ,将简化样本的评估条件。进一步地,当需要更多的已标记样本用于后继的分类器训练,可以继续放宽评估条件如式(12)所
示。
[0099] (12)
[0100] 其中 为松驰因子。
[0101] 在第轮的迭代训练过程中,依次令 , ,对 中的样本进行有效性评估。只有满足条件(11)或条件(12)的新标记样本才能对分类器 进行更新训练,直至达到给定
的迭代更新训练次数,或无法从未标记样本集U中找出符合更新条件的样本。
[0102] (5)投票检测过程:对于协同训练结束后得到的三个分类器 ,和 ,采用投票机制对恶意样本的进行融合标记。
[0103] 下面通过实验对本实施例进行验证:
[0104] 1、实验数据集介绍:
[0105] 为检验本实施例所提出的恶意样本检测方法的性能,选取了Malimg数据集和Microsoft Malware Classification Challenge数据集对本发明所提出的方法进行测试,
以上恶意软件数据集可以公开下载。
[0106] Malimg数据集将来自25个不同家族的9339个恶意样本转换成相应的灰度图像,被大量用于测试各种基于可视化的恶意样本分类工作。Microsoft Malware Classification 
Challenge数据集(简称为Microsoft数据集)由Kaggle于2015年宣布的Microsoft恶意软件
分类挑战所提出。Microsoft数据集包含约0.5 TB的恶意样本反汇编文件和字节代码,涵盖
了来自9个不同恶意软件家族的21741个恶意软件样本,其中每个恶意软件样本有两个文
件,分别为样本的十六进制代码和反汇编代码,且为了保证这些文件的安全性,微软删除了
PE头。
[0107] 表1展示了Microsoft数据集中来自9个不同恶意软件族的43482个恶意文件,这些恶意文件中包含21741个样本的二进制文件和汇编程序源文件,其中训练样本数为10868
个,其余的10873个样本用于测试;表2显示了Malimg数据中9339个属于25种不同家族的恶
意软件的统计数据。
[0108]
[0109]
[0110] 可以看出Malimg数据集和Microsoft数据集的恶意样本分布比例都并不均衡,不同样本族的数量占比相差很大。比如在Malimg数据集中,25个样本族中的ALLAPLE的两个样
本族就占总体的48.6%,而其余的23种样本仅占51.4%;Microsoft数据集中,9个样本族中的
Simda样本仅占总体的0.4%。对于有监督学习算法,使用这种不均衡的恶意样本分布,往往
会因为过拟合的原因导致分类性能较差。
[0111] 2、实验结果:
[0112] 在实验过程中,首先在不同的特征视图下对 ,和 进行初始化,其中,分类器 ,和 分别代表所选取的随机森林算法(Random forest)、支持向量机(SVM)和K邻近算法
(KNN)。然后对3个分类器进行迭代的协同训练。训练结束后,在测试集上对不同类别的恶意
样本进行预测。
[0113] 在实验过程中,对于两个恶意样本数据集,每次实验抽取的有标记样本特征占总样本特征集的35%。图4和图5展示了在两种数据集上的准确率对比。从图4和图5中可以看
出,在初始总样本大小仅达到1800个时,由于样本量较低,所有的训练算法的分类效果均不
太理想。随着样本集规模的不断扩大,本实施例通过少量有标记样本和大量无标记样本的
协同训练,相对于其他检测模型,本实施例有效提升了恶意软件检测准确率。
[0114] 在Malimg数据集中,当样本数量分别达到2200,2600和3000时,本实施例的方法能够分别达到92.53%,94.44%和96.88%的准确率;而在Microsoft数据集中,当样本数量别达
到2200,2600和3000时,本发明的方法能够分别达到85.46%,90.62%和94.88%的准确率。如
图4和图5所示,在两种不均衡的数据集中,由于Malimg数据集中出现了少数恶意样本族样
本大小占比过高的情况,相比Malimg数据集,在Microsoft数据集产生的准确率的梯度曲线
更加平缓。在无标记样本数量超过3000时,本实施例在两种数据集上的融合分类准确率均
超过95%。相比其他分类算法,本发明的准确率有明显提升。这表明,经过分类器之间的协同
训练学习,本实施例能够不断提高恶意软件检测准确率。
[0115] 以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员
来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保
护范围。