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

数据集构建、恶意软件识别、识别模型构建方法及装置与流程

2022-02-25 23:57:11 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种数据集构建、恶意软件识别、识别模型构建方法及装置。


背景技术:

2.随着计算机编程技术的不断发展,基于各式计算机语言编程得到的软件也使得人们能够更加方便的在计算机中完成各式任务和工作,但携带恶意内容的恶意软件也随之出现,恶意的攻击正常数据文件或盗取他人劳动成果。因此,对待测软件进行是否为恶意软件的识别是十分重要的。
3.现有的智能恶意软件识别技术中通常采用机器学习的方法识别恶意软件,而机器学习算法的应用离不开训练数据集。现有的智能恶意软件识别技术中训练数据集包括大量的恶意及非恶意软件,但训练数据集内部同质化现象比较严重(两个相似软件之间仅有非常小的差异),即数据集的冗余程度很高,而冗余数据不但浪费数据存储空间,拉长恶意软件识别模型训练时间,甚至还可能降低恶意软件识别模型的精度。


技术实现要素:

4.本发明提供一种数据集构建、恶意软件识别、识别模型构建方法及装置,用以解决现有技术中数据集冗余程度较高的缺陷。
5.本发明提供一种用于恶意软件识别的数据集构建方法,包括:
6.新样本获取步骤:获取新样本;其中,所述新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集中包含恶意样本,和/或,非恶意样本;
7.异常样本确定步骤:基于所述新样本以及种子集中的样本,采用异常检测算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中;
8.更新步骤:循环执行所述新样本获取步骤和所述异常样本确定步骤,直至种子集中的样本数量满足预设条件。
9.根据本发明提供一种的数据集构建方法,所述异常样本确定步骤,具体包括:
10.基于所述新样本以及种子集中的样本,采用孤立森林算法确定所述新样本是否为异常样本,若是,则将所述新样本添加至所述种子集中。
11.根据本发明提供一种的数据集构建方法,基于所述新样本以及种子集中的样本,采用孤立森林算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中,包括:
12.采用孤立森林算法或扩展孤立森林算法,基于种子集构建n个孤立树;
13.基于所述n个孤立树,对所述新样本进行异常值打分,若分值高于预设阈值,则将新样本添加至所述种子集中。
14.根据本发明提供一种的数据集构建方法,基于所述n个孤立树,对所述新样本进行异常值打分,包括:
15.基于所述n个孤立树,确定所述新样本在各孤立树上的深度值;
16.根据各深度值,采用异常值打分函数,对所述新样本进行异常值打分。
17.本发明还提供一种恶意软件识别方法,包括:
18.获取待识别的软件;
19.将所述软件输入至恶意软件识别模型中,获取所述软件的识别结果;
20.其中,所述恶意软件识别模型为采用如上述任一种所述的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用如上述任一种所述的数据集构建方法构建的包含非恶意样本的第二种子集进行机器学习训练后得到。
21.本发明还提供一种恶意软件识别模型构建方法,包括:
22.采用如上述任一种所述的数据集构建方法构建包含恶意样本的第一种子集;和/或,
23.采用如上述任一种所述的数据集构建方法构建包含非恶意样本的第二种子集;
24.基于所述第一种子集,和/或,所述第二种子集,采用机器学习的方式对机器学习模型进行训练,得到恶意软件识别模型。
25.本发明还提供一种用于恶意软件识别的数据集构建装置,包括:
26.新样本获取单元,用于获取新样本;其中,所述新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集包含恶意样本,和/或,非恶意样本;
27.异常样本确定单元,用于基于所述新样本以及种子集中的样本,采用异常检测算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中;
28.更新单元,用于循环执行所述新样本获取单元中的步骤和所述异常样本确定单元中的步骤,直至种子集中的样本数量满足预设条件。
29.本发明还提供一种恶意软件识别装置,包括:
30.获取单元,用于获取待识别的软件;
31.识别单元,用于将所述软件输入至恶意软件识别模型中,获取所述软件的识别结果;
32.其中,所述恶意软件识别模型为采用如上述任一种所述的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用如上述任一种所述的数据集构建方法构建的包含非恶意样本的第二种子集进行机器学习训练后得到。
33.本发明还提供一种恶意软件识别模型构建装置,包括:
34.第一构建单元,用于采用如上述任一种所述的数据集构建方法构建包含恶意样本的第一种子集;和/或,
35.第二构建单元,用于采用如上述任一种所述的数据集构建方法构建包含非恶意样本的第二种子集;
36.训练单元,用于基于所述第一种子集,和/或,所述第二种子集,采用机器学习的方式对机器学习模型进行训练,得到恶意软件识别模型。
37.本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述数据集构建方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别
模型构建方法的步骤。
38.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据集构建方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别模型构建方法的步骤。
39.本发明还提供一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上述任一种所述数据集构建方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上所述恶意软件识别模型构建方法的步骤。
40.本发明提供的数据集构建、恶意软件识别、识别模型构建方法及装置,基于新样本以及种子集中的样本,采用异常检测算法若确定新的样本为异常样本,则将新样本添加至所述种子集中,直至种子集中的样本数量满足预设条件。由此可见,本发明基于异常检测算法确定异常样本,使得异常样本与种子集中的样本具有较高的异常度,剔除了与种子集异常度较低的新样本,从而减少了种子集中的冗余数据,缩小了种子集的规模,进而节约了数据存储空间。同时具有较小规模的种子集应用于恶意软件识别时,还可以缩短恶意软件识别模型的训练时间,而且剔除冗余数据之后的种子集各样本具有较强的代表性,避免传统方法中数据集包含过多冗余数据带来的噪声导致影响识别模型准确度的问题。
附图说明
41.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本发明提供的数据集构建方法的流程示意图;
43.图2是本发明提供的种子集构建流程示意图;
44.图3是本发明提供的种子集更新流程示意图;
45.图4是本发明提供的恶意软件识别方法的流程示意图;
46.图5是本发明提供的恶意软件识别模型构建方法的流程示意图;
47.图6是本发明提供的数据集构建装置的结构示意图;
48.图7是本发明提供的恶意软件识别装置的结构示意图;
49.图8是本发明提供的恶意软件识别模型构建装置的结构示意图;
50.图9是本发明提供的电子设备的结构示意图。
具体实施方式
51.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.恶意软件是指在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马程序等。
恶意软件会窃取用户信息、影响用户对电子设备的使用体验,甚至严重的威胁到用户的财产安全,因此,需要对恶意软件进行识别。现有的智能恶意软件识别技术中通常使用机器学习识别恶意软件,而机器学习算法的应用离不开训练数据集。现有的智能恶意软件识别技术中基于大量的恶意及非恶意软件构建数据集,但由于软件之间的相似性很强,所以简单收集来的数据集内部同质化现象比较严重,例如同一个软件的相邻的几个小版本,或者属于同一家族的不同版本的病毒,或者是被相似病毒感染的同一个软件等,从而造成数据集的冗余程度很高,而冗余数据不但浪费数据存储空间,还拉长了恶意软件识别模型训练时间。同时,相比于实验室环境,恶意软件识别的真实场景往往更复杂,由于恶意软件更新较快,从而需要对应获取新的样本添加至训练集以更新识别模型,导致模型的训练集规模较大,相应地训练集中冗余数据也会增加并对识别模型的训练带来噪声,影响识别模型的准确度。
53.对此,本发明提供一种用于恶意软件识别的数据集构建方法。图1是本发明提供的数据集构建方法的流程示意图,如图1所示,该方法包括如下步骤:
54.步骤110、新样本获取步骤:获取新样本;其中,新样本的样本类型与预先构建的种子集中的样本类型一致,其中种子集中包含恶意样本,和/或,非恶意样本。
55.在本步骤中,为了训练恶意软件识别模型,需要获取新样本作为恶意软件识别模型的训练集数据,然后恶意软件识别模型根据这些训练集数据训练出一个或多个恶意/非恶意的二分类模型,进而采用该模型对恶意软件进行识别。其中,新样本的样本类型与预先构建的种子集中的样本类型一致,种子集中包含恶意样本,和/或,非恶意样本,即新样本中包含恶意样本,和/或,非恶意样本。其中,恶意样本包括尝试破坏计算机、搜集敏感信息或者非法访问其它计算机的软件,非恶意样本包括在计算机上正常工作的软件。上述恶意样本或非恶意样本可以从样本站点下载获取,但考虑到若直接将从样本站点下载获取的恶意样本或非恶意样本添加至种子集,种子集中可能会存在一些相同的恶意样本或者非恶意样本,增加了种子集的数据规模。因此,本实施例在下载获取恶意样本或非恶意样本之后,会对样本进行筛选去重,以剔除种子集中完全相同的样本,例如可以采用哈希摘要算法(md5、sha1等)对样本进行去重处理,将与种子集中样本摘要值相等的样本剔除,从而保证种子集中样本数据各不相同。
56.此外,为了从样本原始特征中找出最有效的特征(同类样本的不变性、不同样本的鉴别性、对噪声的鲁棒性),本实施例对去重处理后的样本进行特征抽取,将样本原始特征转换为一组具有明显物理意义或者统计意义或核的特征,从而可以减少数据冗余,并准确获取能够反映样本本质的特征,促进后续恶意软件识别模型对样本的学习和泛化,提高识别模型的预测精度。
57.如图2所示,本实施例通过从样本站点下载获取恶意样本或非恶意样本,然后对下载样本进行去重处理,剔除与种子集中数据相同的下载样本,之后对去重后的下载样本进行特征抽取,将下载样本以量化形式(通常为高维实向量)表示,直至种子集达到预设规模。需要说明的是,本实施例获取的种子集规模较小,例如种子集的数据规模达万级即可,相当于现有的智能恶意软件识别技术中获取种子集数据规模的1%,大幅度减小了种子集的规模,节约了存储空间。
58.此外,获取的种子集虽然包含了恶意样本或非恶意样本,但是在实际恶意软件识
别应用场景中,恶意软件与非恶意软件更新较快,为了保证识别模型的预测精度,需要适应软件的更新速度,经常从样本站点获取新的样本,用于对识别模型进行更新训练。本实施例可以通过定期从样本站点获取新样本,而获取的新样本的样本类型与种子集中的样本类型一致,包括恶意样本或非恶意样本。
59.步骤120、异常样本确定步骤:基于新样本以及种子集中的样本,采用异常检测算法确定新的样本是否为异常样本,若是,则将新样本添加至种子集中。
60.在本步骤中,需要说明的是,传统方法中获取恶意软件识别的数据集是通过样本下载—样本去重—特征抽取—构建数据集的步骤实现的,即传统方法中虽然可以通过样本去重(如哈希算法)剔除完全相同的样本,但利用哈希算法去重后得到的存在差异的软件,相互之间可能存在同质化现象(软件之间的差异非常小),例如同一个软件的相邻的几个小版本,或者属于同一家族的不同版本的病毒,或者是被相似病毒感染的同一个软件等等,这就导致最终数据集中存在大量的相类似样本,也即冗余样本。冗余样本不仅无法为识别模型学习提供有效信息,而且会导致数据集过渡膨胀,进而严重降低识别模型训练的效率。此外,因不同的软件普及程度相差很大,所以在最终的数据集中,不同样本的冗余度也具有很大的差异,最终导致识别模型训练中引入较大的偏置,影响识别模型的预测效果。
61.因此,本实施例在获取新样本后,基于异常检测算法确定新的样本是否为异常样本,若是,则表明新样本与种子集中的样本存在较大差异,因此将新样本添加至种子集,使得种子集中的样本具有较强的代表性。若确定新样本不是异常样本,则表明新样本与种子集中的样本差异程度较小,即新样本为冗余样本,因此将该新样本剔除,避免种子集样本出现冗余现象。其中,异常检测是找出其行为很不同于预期对象的一个检测过程。本实施例通过异常检测算法,将算法所认为的异常数据看作高质量的非冗余数据,而将非异常数据看作冗余数据,也就是剔除冗余度很高,即异常度很低的非异常数据,从而可以低成本构建出质量较高的数据集。同时,基于异常检测算法确定的数据集,使得最终形成的数据集中的样本都具有较强的代表性,既使得样本点周围的噪声大大减少,又可在不降低数据覆盖能力的情况下减小数据规模,有效提高识别模型的训练收敛速度、预测精度以及泛化性能。
62.本技术创新性地以逆向思维的方式解决了现有样本集无法高效且高质量生成的问题,在本技术的样本集生成过程中,利用异常检测算法检测出异常数据,然后将异常数据作为高质量的非冗余数据,可以理解的是,由于非异常数据与样本集中已有的样本的相似度较高,因此,可以将非异常数据作为冗余数据,而将异常数据作为非冗余数据。可以理解的是,一般来说,异常检测算法是用来剔除异常数据的,而本技术创造性逆向化了这一过程,利用异常检测算法来添加有效样本数据,从而减少了种子集中的冗余数据,缩小了种子集的规模,进而节约了数据存储空间。同时具有较小规模的种子集应用于恶意软件识别时,还可以缩短恶意软件识别模型的训练时间,而且剔除冗余数据之后的种子集各样本具有较强的代表性,避免传统方法中数据集包含过多冗余数据带来的噪声导致影响识别模型准确度的问题。
63.此外,传统方法中为了提高数据集的质量,通常需要人工对数据的标注情况进行二次确认(甚至可能存在多轮次地审核确认),极度耗时耗力,由此可见,本实施例在减小数据集规模的基础上,还能够大幅降低高质量数据集的人工审核成本。
64.步骤130、更新步骤:循环执行所述新样本获取步骤和所述异常样本确定步骤,直
至种子集中的样本数量满足预设条件。
65.在本步骤中,需要说明的是,由于预先构建的种子集内部会存在冗余现象,但经过步骤110和步骤120的方法将新样本添加至种子集后,预先构建的种子集在步骤130获取的种子集中只占很低的比例,从而实现将种子集中的冗余度稀释并趋于可忽略。由此可见,本实施例通过循环执行步骤110和步骤120,不仅可以获取新的数据集样本用于训练识别模型,而且可以稀释种子集的冗余度,降低数据集的规模,节省数据集的存储开销。其中,预设条件可以指种子集中的样本数量达到预设规模,或者更新次数达到预设次数,本实施例对此不作具体限定。
66.本发明提供的数据集构建方法,基于新样本以及种子集中的样本,采用异常检测算法若确定新的样本为异常样本,则将新样本添加至所述种子集中,直至种子集中的样本数量满足预设条件。由此可见,本发明基于异常检测算法确定异常样本,使得异常样本与种子集中的样本具有较高的异常度,剔除了与种子集异常度较低的新样本,从而减少了种子集中的冗余数据,缩小了种子集的规模,进而节约了数据存储空间。同时具有较小规模的种子集应用于恶意软件识别时,还可以缩短恶意软件识别模型的训练时间,而且剔除冗余数据之后的种子集各样本具有较强的代表性,避免传统方法中数据集包含过多冗余数据带来的噪声导致影响识别模型准确度的问题。
67.基于上述实施例,异常样本确定步骤,具体包括:
68.基于新样本以及种子集中的样本,采用孤立森林算法确定新样本是否为异常样本,若是,则将新样本添加至种子集中。
69.在本实施例中,需要说明的是,孤立森林(isolation forest)是一个基于ensemble的快速离群点检测方法,具有线性时间复杂度和高精准度,与其他异常检测算法通过距离、密度等量化指标来刻画样本间的疏离程度不同,孤立森林算法通过对样本点的孤立来检测异常值。具体来说,该算法利用一种名为孤立树的二叉搜索树结构来孤立样本。由于异常值的数量较少且与大部分样本的疏离性,因此,异常值会被更早的孤立出来,也即异常值会距离孤立树的根节点更近,而正常值则会距离根节点有更远的距离。此外,相较于lof,k-means等传统算法,孤立森林算法对高维数据有较好的鲁棒性。
70.在本实施例中,通过采用孤立森林算法,在种子集中设立孤立树,将新样本与孤立树中的每个节点进行比较分析,确定新样本在孤立树上的深度,深度越小离孤立树的根节点越近,说明该新样本与种子集中的样本存在较大差异。需要说明的是,孤立森林算法可以基于新样本在孤立树中的深度值计算异常分数值,异常分数值越大,表明新样本离孤立树的根节点越近。可以理解的是,通过设置一个预设值,若异常分数值大于预设值,则判定新样本为异常样本,并将其添加至种子集中。
71.此外,由于用于识别模型的数据集采用的是计算机可以识别的二进制样本数据,若采用聚类方法对整个数据集进行聚类,然后取聚类核心作为低冗余度集合,虽然能够判断新样本是否与种子集样本存在差异,但是聚类方法的算法复杂度要高于孤立森林算法,尤其对于以超高维度向量(通常达到若干k维,甚至几十k维)表示的二进制样本数据向量的数据,其运行开销严重降低了自身的可用性。
72.本发明提供的数据集构建方法,基于新样本以及种子集中的样本,采用孤立森林算法确定新样本是否为异常样本,不仅减少了运行开销成本,而且具有较好的鲁棒性。
73.基于上述实施例,基于新样本以及种子集中的样本,采用孤立森林算法确定新的样本是否为异常样本,若是,则将新样本添加至种子集中,包括:
74.采用孤立森林算法或扩展孤立森林算法,基于种子集构建n个孤立树;
75.基于n个孤立树,对新样本进行异常值打分,若分值高于预设阈值,则将新样本添加至种子集中。
76.在本实施例中,需要说明的是,由于恶意样本或非恶意样本的特征向量中可能混合了离散和连续等各种形式,且维度通常会较大,另外数据量大导致对向量进行归一化也会很耗时,为了避免这些问题可以采用孤立森林算法;若恶意样本或非恶意样本的特征向量为连续归一化结果,则可以使用扩展孤立森林算法(extend isolation forest),进一步减少所构建的数据集中的偏置因素。由此可见,本实施例可以根据恶意样本或非恶意样本的特征向量情况选取对应的异常检测算法,以提高计算效率。
77.在本实施例中,孤立森林算法或扩展孤立森林算法通过在种子集上构建n棵孤立树(isolation tree),其中每棵树仅针对种子集的一个随机采样得到的子集,然后从所有特征中随机选一个对数据集进行切分,不断重复此过程,直到当前数据集为单数据集合,或者深度达到阈值,其中n可以由领域专家设定,如可设定一个初始值100,后续可以根据指定策略进行增加,如每次n比前一次增大5。
78.在本实施例中,在种子集中构建n个孤立树后,对新样本进行异常值打分,以过滤分值低于预设阈值的样本(预设阈值可由专家设定,如0.5,低于预设阈值的样本被认为是冗余/低质量样本),将异常值打分高于预设阈值的样本添加至种子集中,直至种子集的规模达到本次迭代前规模的α倍(α值可以由领域专家设定,如α=2.0),从而可以确保在不影响识别模型预测精度的基础上,确保新样本与已有种子集存在差异,从而稀释步骤110中获取种子集的冗余度。
79.如图3所示,按照样本下载—样本去重—特征抽取获取步骤110中的种子集后,在种子集中构建孤立树,基于孤立树对新样本进行质量打分,判断新样本是否为高质量的非冗余样本,若是,则将新样本添加至种子集样本中,更新种子集样本。
80.基于上述实施例,基于n个孤立树,对新样本进行异常值打分,包括:
81.基于n个孤立树,确定新样本在各孤立树上的深度值;
82.根据各深度值,采用异常值打分函数,对新样本进行异常值打分。
83.在本实施例中,通过在种子集上构建n个孤立树,每一孤立树仅针对种子集的一个随机采样得到的子集,然后从所有特征中随机选一个对种子集进行切分,不断重复次过程,直到当前种子集为单数据集合,或者深度达到阈值,新样本在每棵树上均对应一个深度值,深度值越小的,说明新样本与种子集样本的差异越大。孤立森林算法通过计算新样本在所有孤立树上的深度均值,并将其代入异常值打分函数,获取异常值打分结果:
[0084][0085]
其中,s(x,n)表示异常值打分结果,x表示新样本,n表示构建孤立树所用的节点数量,e(h(x))表示x在所有孤立树上的深度的均值,h表示孤立树的总深度值。
[0086]
需要说明的是,孤立森林算法是众多的异常检测算法中的一个算法,几乎所有异常检测算法的应用仍然是异常检测(比如流量的突然变化,很多数据中的某个数据与其他
数据具有很大差异,等等),本实施例中的异常检测算法不限于孤立森林算法,可以根据实际情况选取相应的异常检测算法。本技术的主要亮点在于并非要剔除异常数据,而是要将算法所认为的异常数据看作高质量的非冗余数据,而将非异常数据看作冗余数据(对冗余度很高,也就是异常度很低的非异常数据,反而要将其剔除出去),这种逆向思维的应用导致了本技术可以很低的成本构建出质量非常高的数据集。
[0087]
此外,为了尽可能提高数据集的质量,往往还需要人工对数据的标注情况做二次确认(甚至多轮次地审核确认),而对于软件的二进制样本,人工确认极度耗时耗力,因此本技术还能够间接地大幅降低高质量数据集的人工审核成本。
[0088]
目前,针对二进制样本数据,尚无有效降低冗余度方面的工作,从机器学习的角度考虑,当然可以使用聚类方法对整个数据集进行聚类,然后取聚类核心作为低冗余度集合,但是聚类方法的算法复杂度要高于孤立森林算法,尤其对于二进制样本这种通常表示为超高维度(通常达到若干k维,甚至几十k维)向量的数据,其运行开销严重降低了自身的可用性。
[0089]
基于上述实施例,如图4所示,本发明提供一种恶意软件识别方法,该方法包括如下步骤:
[0090]
步骤410、获取待识别的软件;
[0091]
步骤420、将软件输入至恶意软件识别模型中,获取软件的识别结果;
[0092]
其中,恶意软件识别模型为采用如上任一实施例的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用如上任一实施例的数据集构建方法构建的包含非恶意样本的第二种子集进行机器学习训练后得到。
[0093]
在本实施例中,需要说明的是,由于采用如上任一实施例的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用如上任一实施例的数据集构建方法构建的包含非恶意样本的第二种子集,剔除了第一种子集和第二种子集中的冗余样本,缩小了第一种子集和第二种子集的规模,使得最终形成的数据集中的样本都具有较强的代表性,既使得样本点周围的噪声大大减少,又可在不降低数据覆盖能力的情况下减小数据规模,有效提高识别模型的训练收敛速度、预测精度以及泛化性能。由此可见,本实施例通过将待识别软件输入恶意软件识别模型,可以精确获取识别结果,而且识别模型可以根据软件样本的更新情况进行相应的更新训练,从而可以实时更新待识别软件的识别结果。
[0094]
基于上述实施例,如图5所示,本发明提供一种恶意软件识别模型构建方法,该方法包括如下步骤:
[0095]
步骤510、采用如上任一实施例的数据集构建方法构建包含恶意样本的第一种子集;和/或,
[0096]
步骤520、采用如上任一实施例的数据集构建方法构建包含非恶意样本的第二种子集;
[0097]
步骤530、基于第一种子集,和/或,第二种子集,采用机器学习的方式对机器学习模型进行训练,得到恶意软件识别模型。
[0098]
在本实施例中,需要说明的是,采用如上任一实施例的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用如上任一实施例的数据集构建方法构建的包含非恶意样本的第二种子集,剔除了第一种子集和第二种子集中的冗余样本,缩小了第一种子集
和第二种子集的规模,使得最终形成的数据集中的样本都具有较强的代表性,既使得样本点周围的噪声大大减少,又可在不降低数据覆盖能力的情况下减小数据规模,有效提高识别模型的训练收敛速度、预测精度以及泛化性能,使得获取的识别模型能够准确判断待识别的软件是否为恶意软件。
[0099]
下面对本发明提供的数据集构建装置进行描述,下文描述的数据集构建装置与上文描述的数据集构建方法可相互对应参照。
[0100]
基于上述实施例,如图6所示,本发明提供一种用于恶意软件识别的数据集构建装置,该装置包括:
[0101]
新样本获取单元610,用于获取新样本;其中,新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集包含恶意样本,和/或,非恶意样本;
[0102]
异常样本确定单元620,用于基于新样本以及种子集中的样本,采用异常检测算法确定新的样本是否为异常样本,若是,则将新样本添加至种子集中;
[0103]
更新单元630,用于循环执行新样本获取单元中的步骤和异常样本确定单元中的步骤,直至种子集中的样本数量满足预设条件。
[0104]
基于上述实施例,异常样本确定单元620,具体用于:
[0105]
基于新样本以及种子集中的样本,采用孤立森林算法确定新样本是否为异常样本,若是,则将新样本添加至种子集中。
[0106]
基于上述实施例,异常样本确定单元620用于基于新样本以及种子集中的样本,采用孤立森林算法确定新的样本是否为异常样本,若是,则将新样本添加至种子集中,包括:
[0107]
采用孤立森林算法或扩展孤立森林算法,基于种子集构建n个孤立树;
[0108]
基于n个孤立树,对新样本进行异常值打分,若分值高于预设阈值,则将新样本添加至种子集中。
[0109]
基于上述实施例,预设条件为第一比值达到预设值,所述第一比值为本次将新样本添加至所述种子集后,种子集中的第一样本数量与未添加本次新样本之前,种子集中的第二样本数量的比值。
[0110]
基于上述实施例,基于n个孤立树,对新样本进行异常值打分,包括:
[0111]
基于n个孤立树,确定新样本在各孤立树上的深度值;
[0112]
根据各深度值,采用异常值打分函数,对新样本进行异常值打分。
[0113]
基于上述实施例,如图7所示,本发明提供一种恶意软件识别装置,该装置包括:
[0114]
获取单元710,用于获取待识别的软件;
[0115]
识别单元720,用于将软件输入至恶意软件识别模型中,获取软件的识别结果;
[0116]
其中,恶意软件识别模型为采用如上任一实施例所述的数据集构建方法构建的包含恶意样本的第一种子集,和/或,采用采用如上任一实施例所述的数据集构建方法构建的包含非恶意样本的第二种子集进行机器学习训练后得到。
[0117]
基于上述实施例,如图8所示,本发明提供一种恶意软件识别模型构建装置,该装置包括:
[0118]
第一构建单元810,用于采用如上任一实施例所述的数据集构建方法构建包含恶意样本的第一种子集;和/或,
[0119]
第二构建单元820,用于采用如上任一实施例所述的数据集构建方法构建包含非
恶意样本的第二种子集;
[0120]
训练单元830,用于基于第一种子集,和/或,第二种子集,采用机器学习的方式对机器学习模型进行训练,得到恶意软件识别模型。
[0121]
图9是本发明提供的电子设备的结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(communications interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行数据集构建方法,该方法包括:新样本获取步骤:获取新样本;其中,所述新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集中包含恶意样本,和/或,非恶意样本;异常样本确定步骤:基于所述新样本以及种子集中的样本,采用异常检测算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中;更新步骤:循环执行所述新样本获取步骤和所述异常样本确定步骤,直至种子集中的样本数量满足条件。
[0122]
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0123]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据集构建方法,该方法包括:新样本获取步骤:获取新样本;其中,所述新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集中包含恶意样本,和/或,非恶意样本;异常样本确定步骤:基于所述新样本以及种子集中的样本,采用异常检测算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中;更新步骤:循环执行所述新样本获取步骤和所述异常样本确定步骤,直至种子集中的样本数量满足条件。
[0124]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据集构建方法,该方法包括:新样本获取步骤:获取新样本;其中,所述新样本的样本类型与预先构建的种子集中的样本类型一致,其中所述种子集中包含恶意样本,和/或,非恶意样本;异常样本确定步骤:基于所述新样本以及种子集中的样本,采用异常检测算法确定所述新的样本是否为异常样本,若是,则将所述新样本添加至所述种子集中;更新步骤:循环执行所述新样本获取步骤和所述异常样本确定步骤,直至种子集中的样本数量满足条件。
[0125]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性
的劳动的情况下,即可以理解并实施。
[0126]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0127]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献