基于机器学习的关联样本查找方法、装置及服务器转让专利

申请号 : CN201710805869.7

文献号 : CN107563201B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 华元彬陈宇龙许益鑫

申请人 : 北京奇宝科技有限公司

摘要 :

本发明公开了一种基于机器学习的关联样本查找方法、装置、服务器及计算机存储介质,其中,该方法包括:步骤S1,提取每一个样本的特征向量,存储特征向量;步骤S2,获取训练得到的训练模型;步骤S3,利用训练模型扫描特征向量,得到与已知病毒样本相关的关联样本;步骤S4:判断是否满足预设结束条件,若否,执行步骤S5;步骤S5,并根据关联样本对训练模型进行更新跳转执行步骤S3。根据本发明提供的方案,通过扫描样本的特征向量可以查找出与已知病毒相关的关联样本,并利用该关联样本对训练模型进行不断的更新,进而查找出新的关联样本,实现在样本库中快速查找出所有与已知病毒相关的组件以及工具。

权利要求 :

1.一种基于机器学习的关联样本查找方法,包括:

步骤S1:提取样本库中每一个样本的特征向量,存储所述每一个样本的特征向量;

步骤S2:获取根据已知病毒样本训练得到的训练模型;

步骤S3:利用所述训练模型扫描已存储的每一个样本的特征向量,得到与所述已知病毒样本相关的关联样本,将所述关联样本复制到所述已知病毒样本的关联样本集合中;其中,预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量没有得到所述关联样本集合中未保存的关联样本;

步骤S4:判断是否满足预设结束条件,若是,则本方法结束;若否,执行步骤S5;

步骤S5:根据关联样本对训练模型进行更新,跳转执行步骤S3。

2.根据权利要求1所述的方法,所述提取样本库中每一个样本的特征向量进一步包括:提取样本库中每一个样本的至少一个特征;

对所述样本的至少一个特征进行降维运算,得到样本的特征向量。

3.根据权利要求2所述的方法,所述样本的至少一个特征包括:类行为特征、编译器特征和/或加壳特征。

4.根据权利要求1-3任一项所述的方法,所述存储所述每一个样本的特征向量具体为:将所述样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中。

5.根据权利要求4所述的方法,在所述利用所述训练模型扫描每一个样本的特征向量之前,所述方法还包括:将训练模型置入分布式集群中的所述数个节点中;

所述利用所述训练模型扫描已存储的每一个样本的特征向量具体为:所述数个节点并行地利用训练模型对节点中已存储的样本的特征向量进行扫描。

6.一种基于机器学习的关联样本查找装置,包括:

提取模块,适于提取样本库中每一个样本的特征向量;

存储模块,适于存储所述每一个样本的特征向量;

训练模块,适于获取根据已知病毒样本训练得到的训练模型;

查找模块,适于利用所述训练模型扫描已存储的每一个样本的特征向量,得到与所述已知病毒样本相关的关联样本,将所述关联样本复制到所述已知病毒样本的关联样本集合中;

判断模块,适于判断是否满足预设结束条件;其中,所述预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量没有得到所述关联样本集合中未保存的关联样本;

更新模块,适于若所述判断模块判断出未满足预设结束条件,则根据关联样本对训练模型进行更新。

7.根据权利要求6所述的装置,所述提取模块进一步适于:提取样本库中每一个样本的至少一个特征;

对所述样本的至少一个特征进行降维运算,得到样本的特征向量。

8.根据权利要求7所述的装置,所述样本的至少一个特征包括:类行为特征、编译器特征和/或加壳特征。

9.根据权利要求6-8任一项所述的装置,所述存储模块进一步适于:将所述样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中。

10.根据权利要求9所述的装置,所述装置还包括:置入模块,适于将训练模型置入分布式集群中的所述数个节点中;

预测模块进一步适于:所述数个节点并行地利用训练模型对节点中已存储的样本的特征向量进行扫描。

11.一种服务器,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的基于机器学习的关联样本查找方法对应的操作。

12.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-5中任一项所述的基于机器学习的关联样本查找方法对应的操作。

说明书 :

基于机器学习的关联样本查找方法、装置及服务器

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种基于机器学习的关联样本查找方法、装置、服务器及计算机存储介质。

背景技术

[0002] 恶意程序是一类特殊的程序,它们通常在用户不知晓也未授权的情况下潜入到用户的计算机系统中,对用户系统进行攻击。恶意程序可以包括病毒、后门程序、木马程序、宏病毒、引导区病毒、脚本病毒等。
[0003] 随着网络时代的到来,很多数据或信息都通过网络存储以及传递,而恶意程序在对计算机系统进行攻击之后,会导致计算机功能不正常或数据造成破坏的问题。为解决这一问题,在查杀病毒之前,首先查找出与恶意程序相关的程序文件,但是现有技术并没有提供一种较好的根据恶意程序将计算机系统中与病毒相关的组件以及工具进行查找的方案。

发明内容

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于机器学习的关联样本查找方法、装置及服务器。
[0005] 根据本发明的一个方面,提供了一种基于机器学习的关联样本查找方法,该方法包括:
[0006] 步骤S1:提取样本库中每一个样本的特征向量,存储每一个样本的特征向量;
[0007] 步骤S2:获取根据已知病毒样本训练得到的训练模型;
[0008] 步骤S3:利用训练模型扫描已存储的每一个样本的特征向量,得到与已知病毒样本相关的关联样本,将关联样本复制到已知病毒样本的关联样本集合中;
[0009] 步骤S4:判断是否满足预设结束条件,若是,则本方法结束;若否,执行步骤S5;
[0010] 步骤S5:将关联样本复制到已知病毒样本的关联样本集合中,并根据关联样本对训练模型进行更新,跳转执行步骤S3。
[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] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0039] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0040] 图1示出了根据本发明一个实施例的基于机器学习的关联样本查找方法的流程图;
[0041] 图2示出了根据本发明另一个实施例的基于机器学习的关联样本查找方法的流程图;
[0042] 图3示出了根据本发明又一个实施例的基于机器学习的关联样本查找装置的功能框图;
[0043] 图4示出了根据本发明再一个实施例的基于机器学习的关联样本查找装置的功能框图;
[0044] 图5示出了根据本发明的一种服务器的结构示意图。

具体实施方式

[0045] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0046] 图1示出了根据本发明一个实施例的基于机器学习的关联样本查找方法的流程图。如图1所示,该方法包括以下步骤:
[0047] 步骤S101,提取样本库中每一个样本的特征向量,存储每一个样本的特征向量。
[0048] 本实施例是为了实现在获取到病毒或恶意攻击事件的程序文件之后,通过该程序文件建立的训练模型去扫描样本库中样本的特征向量,发现与病毒或恶意攻击事件相关的关联样本,并利用每次查找出的关联样本更新训练模型,以进行病毒或恶意攻击事件的溯源,快速从样本库中查找出与病毒或恶意攻击事件相关的所有关联样本,进而便于采取措施进行查杀,消除与爆发的病毒或恶意攻击事件相关的组件或工具再次对用户系统造成破坏的可能。
[0049] 具体地,分析样本库中每一个样本的程序文件,从程序文件中提取能够表示该程序文件的足够多的信息的特征,例如表示样本的行为功能的特征,并根据所提取的特征生成特征向量;存储样本库中的所有样本的特征向量,以供后续扫描查找时能够直接获取。
[0050] 步骤S102,获取根据已知病毒样本训练得到的训练模型。
[0051] 具体地,训练模型的训练过程可以为:分析每一个拦截或获取的同一病毒家族或同类恶意攻击事件的可执行程序文件,提取程序文件的特征,根据所提取的特征生成每一个程序文件的特征向量,将同一病毒家族或同类恶意攻击事件的所有特征向量以及海量白样本的特征向量,并结合所有训练样本的黑白属性使用对应的决策机进行训练,训练的方式可以选择使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练,经过训练得到用于查找已知病毒或恶意攻击事件的相关工具及组件的训练模型,其中,训练模型可以为带编码的训练模型、或压缩的训练模型。
[0052] 步骤S103,利用训练模型扫描已存储的每一个样本的特征向量,得到与已知病毒样本相关的关联样本,将关联样本复制到已知病毒样本的关联样本集合中。
[0053] 在得到经训练得到的训练模型之后,利用训练模型去扫描样本库中每一个样本的特征向量,对特征向量进行匹配识别,得到对应特征向量的预测结果,即查找出与已知病毒或恶意攻击事件相关的组件及工具对应的关联样本。在得到关联样本后,为便于后续查杀的工作,将关联样本复制到同一病毒家族或同一类恶意攻击事件的关联样本集合中。
[0054] 步骤S104,判断是否满足预设结束条件,若是,则本方法结束;若否,执行步骤S105。
[0055] 根据查找结果判断是否满足预设结束条件,例如是否达到预设的查找数量或者查找次数,或者样本库中的关联样本是否查找完全。如果没有满足预设结束条件,则需要利用查找到的关联样本更新训练模型,利用新的训练模型进行查找的步骤,如此循环,直至满足结束条件。
[0056] 步骤S105,根据关联样本对训练模型进行更新。
[0057] 由于相关的组件及工具的程序文件也能反映出病毒家族或同类恶意攻击事件的相似特征,本实施例中,根据查找出的关联样本去更新已有的训练模型,具体地,更新已有的训练模型的过程为:在查找出关联样本之后,重新分析每一个拦截或获取的同一病毒家族或同类恶意攻击事件的可执行程序文件,以及分析每一个关联样本的可执行程序文件,提取程序文件的特征,根据所提取的特征生成每一个程序文件的特征向量,将关联样本、同一病毒家族或同类恶意攻击事件的所有特征向量以及海量白样本的特征向量,并结合所有训练样本的黑白属性使用对应的决策机进行训练,经过训练得到更新后的训练模型,该更新后的训练模型能够用于在样本库中再次查找已知病毒或恶意攻击事件的相关工具及组件。
[0058] 在得到更新后的训练模型之后,跳转到步骤S103进行关联样本的再次查找。
[0059] 本实施例提供的基于机器学习的关联样本查找方法,在拦截或获取到病毒的相关信息后,通过分析病毒的程序文件,根据决策机进行训练得出训练模型,利用训练模型扫描样本的特征向量即可从样本中查找出与已知病毒相关的关联样本,通过扫描样本的特征向量进行查找的方式能够提高查找的速度;考虑到查找出的关联样本也能够发映出病毒家族或同类恶意攻击事件的相似特征,利用该关联样本对训练模型进行不断的更新,通过更新后的训练模型查找出新的与已知病毒相关的关联样本,循环执行上述训练模型更新以及查找的步骤,直至满足预设结束条件,例如样本库中的关联样本被全部查找出来;并且由于提取的样本库中样本的特征向量对应的特征为能够表示该样本足够多的信息的特征,因此每次更新训练模型后,仍能够通过扫描样本同样的特征向量来实现查找,而无需根据更新后的训练模型再次进行特征提取,从而极大的缩减了查找的时间,提高了查找的速度。因此利用本实施例提供的基于机器学习的关联样本查找方法可以实现在样本库中快速完整的查找出所有与已知病毒相关的组件以及工具。
[0060] 图2示出了根据本发明另一个实施例的基于机器学习的关联样本查找方法的流程图。如图2所示,该方法包括以下步骤:
[0061] 步骤S201,提取样本库中每一个样本的特征向量。
[0062] 具体地,提取样本库中每一个样本的至少一个特征,对样本的至少一个特征进行降维运算,得到样本的特征向量。实际中,提取的样本的程序文件的特征往往是高维数据,高维数据带来的最大问题就是占用存储空间、运行速度慢,从而导致对高维数据的存储或处理的效率低下,因此,在本实施例中,对提取到的特征进行降维处理,不仅可以节省储存空间,还能够提高扫描预测的速度。在本发明的一个具体实施例中,降维运算的算法具体为:PCA 算法、LDA算法或LLE算法。
[0063] 本实施例中,提取的样本的特征能够表示样本的足够多的特征信息,从而保证在循环查找关联样本的过程中,只需进行一次特征向量的计算,以达到提高查找速度的目的。在本发明的一个具体实施例中,样本的特征包括:类行为特征、编译器特征和/或加壳特征。
[0064] 其中,类行为特征可以从整体上分为导入表库特征和导入表 API(Application Programming Interface,应用程序编程接口)特征。具体地,对于导入表库特征和导入表API特征描述如下:
[0065] 1、导入表库特征
[0066] 导入表导入的动态库通常具有特别的功能,能表示程序本身可能达到的功能。例如,导入表库WS2_32.DLL的程序一般表示需要进行联网操作。因此,通过检查导入表的导入库名,可以预先选择常见恶意程序使用的动态库若干。具体的,可以为这些动态库建立HASH(哈希)表,即把所选择动态库特征字符串归一后,计算一个HASH值,并根据所计算的HASH值建立 HASH表,后续对于输入的未知程序可以在提取其导入表后,查找该HASH 表来确定导入表特征,以达到确定其是否为恶意程序的目的。
[0067] 举例来说,该导入表库类特征可以进一步细分为如下特征类型:
[0068] 1)网络类特征(包括RPC),示例如下:
[0069] DNSAPI.DLL
[0070] MSWSOCK.DLL
[0071] NDIS.SYS
[0072] NETAPI32.DLL
[0073] WININET.DLL
[0074] WSOCK32.DLL
[0075] WS2_32.DLL
[0076] MPR.DLL
[0077] RPCRT4.DLL
[0078] URLMON.DLL
[0079] 2)高级Win32应用程序接口类特征,示例如下:
[0080] ADVAPI32.DLL
[0081] 3)系统内核类特征,示例如下:
[0082] KERNEL32.DLL
[0083] NTDLL.DLL
[0084] NTOSKRNL.EXE
[0085] 4)Windows用户界面相关应用程序接口类特征,示例如下:
[0086] USER32.DLL
[0087] 5)Windows应用程序公用GUI图形用户界面模块类特征,示例如下:
[0088] COMCTL32.DLL
[0089] GDI32.DLL
[0090] GDIPLUS.DLL
[0091] 6)Windows硬件提取层模块类特征,示例如下:
[0092] HAL.DLL
[0093] 7)Microsoft MCF Library类特征,示例如下:
[0094] MFC42.DLL
[0095] 8)微软Microsoft Visual Basic虚拟机相关模块类特征,示例如下:
[0096] MSVBVM60.DLL
[0097] 9)标准的C运行库程序类特征,示例如下:
[0098] MSVCP60.DLL
[0099] MSVCR71.DLL
[0100] MSVCRT.DLL
[0101] 10)对象链接和嵌入相关模块类特征,示例如下:
[0102] OLE32.DLL
[0103] OLEAUT32.DLL
[0104] 11)Windows系统进程状态支持模块类特征,示例如下:
[0105] PSAPI.DLL
[0106] 12)Windows的32位外壳动态链接库文件类特征,示例如下:
[0107] SHELL32.DLL
[0108] 13)UNC和URL地址动态链接库文件类特征,用于注册键值和色彩设置,示例如下:
[0109] SHLWAPI.DLL
[0110] 2、导入表API特征
[0111] 导入表API特征为从所述导入表库中选取的函数特征,这些函数可以进一步说明程序的行为功能。具体归一格式如下:
[0112] DLLNAME!APINAME
[0113] DLLNAME统一转成大写,如ADVAPI32.DLL!AddAccessAllowedAce
[0114] 对于高级Win32应用程序接口类特征ADVAPI32.DLL,可以进一步选取其函数特征示例如下:
[0115] ADVAPI32.DLL!AddAccessAllowedAce
[0116] ADVAPI32.DLL!AddAce
[0117] ADVAPI32.DLL!AdjustTokenPrivileges
[0118] ADVAPI32.DLL!AllocateAndInitializeSid
[0119] ADVAPI32.DLL!ChangeServiceConfig2A
[0120] ADVAPI32.DLL!ChangeServiceConfig2W
[0121] ADVAPI32.DLL!CheckTokenMembership
[0122] ADVAPI32.DLL!CloseServiceHandle
[0123] ADVAPI32.DLL!ControlService
[0124] ADVAPI32.DLL!ConvertSidToStringSidW
[0125] 又例如,对于Windows应用程序公用GUI图形用户界面模块类特征 COMCTL32.DLL,可以进一步选取其函数特征示例如下:
[0126] COMCTL32.DLL!13
[0127] COMCTL32.DLL!14
[0128] COMCTL32.DLL!17
[0129] COMCTL32.DLL!CreatePropertySheetPageA
[0130] COMCTL32.DLL!DestroyPropertySheetPage
[0131] COMCTL32.DLL!FlatSB_GetScrollInfo
[0132] COMCTL32.DLL!FlatSB_SetScrollInfo
[0133] COMCTL32.DLL!FlatSB_SetScrollPos
[0134] COMCTL32.DLL!ImageList_Add
[0135] COMCTL32.DLL!ImageList_AddMasked
[0136] 上述仅是示例性的描述,对于每种具体的导入表库特征对应的函数特征不再一一赘述。
[0137] 编译器特征具体包括:VC4、VC5、VC6、VC7、VC8、Delphi以及BC。
[0138] 加壳特征具体包括:UPX、NSPack、ASPack、UPack以及PECompact。
[0139] 步骤S202,将样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中。
[0140] 由于样本库中的样本的数量可能会非常大,可能出现单机根本就无法存储的情况,并且若在扫描查找时,对样本的特征向量一个接一个串行的去匹配查找,那么将会非常耗时,导致预测不及时。本实施例中,利用分布式集群能够通过各个存储节点分担存储压力,并能够对其存储的各个节点的数据进行并行处理的优势,将样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中,例如HBase或Hadoop分布式系统。
[0141] 具体地,将所有样本的特征向量存储在分布式集群的数个节点中,保证每个节点中存储的特征向量的数量均衡,并且具体存储到多少节点中还要考虑到对扫描预测速度的要求;在扫描预测时,可以让分布式集群的各个节点同时进行预测。这样就既能满足存储的需求,又能满足预测速度的要求。
[0142] 步骤S203,获取根据已知病毒样本训练得到的训练模型。
[0143] 具体地,训练模型的训练过程可以为:分析每一个拦截或获取的同一病毒家族或同类恶意攻击事件的可执行程序文件,提取程序文件的特征,根据所提取的特征生成每一个程序文件的特征向量,将同一病毒家族或同类恶意攻击事件的所有特征向量以及海量白样本的特征向量,并结合所有训练样本的黑白属性使用对应的决策机进行训练,训练的方式可以选择使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练,经过训练得到用于查找已知病毒或恶意攻击事件的相关工具及组件的训练模型,其中,训练模型可以为带编码的训练模型、或压缩的训练模型。
[0144] 步骤S204,将训练模型置入分布式集群中的数个节点中。
[0145] 为了便于查找时对特征向量的匹配识别,并且考虑到样本的数量较大,本实施例中,选择将得到的训练模型置入分布式集群中存储有样本的特征向量的节点中进行匹配识别,而不是将样本的特征向量从存储系统中取出来进行匹配识别。
[0146] 步骤S205,数个节点并行地利用训练模型对节点中已存储的样本的特征向量进行扫描,将查找到的关联样本复制到已知病毒样本的关联样本集合中。
[0147] 分布式集群中的每一个存储有样本的特征向量的节点并行的利用训练模型进行特征匹配识别,查找出与已知病毒或恶意攻击事件相关的关联样本,即相关的组件及工具。
[0148] 步骤S206,判断是否满足预设结束条件,若是,则本方法结束;若否,执行步骤S207。
[0149] 本实施例是为了实现通过对训练模型的不断更新,查找出样本库中所有与已知病毒或恶意攻击事件相关的组件及攻击,因此本实施例中设定预设结束条件的目的是使本方法在完全查找出关联样本后结束。优选的,预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量没有得到关联样本集合中未保存的关联样本。
[0150] 在本发明一个具体的实施例中,在得到与已知病毒样本相关的关联样本并将该关联样本复制到关联样本集合中之后,将该关联样本的特征向量从样本库中删除,这样能够使得下一次扫描时需要扫描的样本的特征向量数量减少,提升扫描查找的速度,并且这种方式便于直接发现是否能够查找到新的关联样本,此时,预设结束条件具体为:利用训练模型扫描分布式集群中存储有样本的特征向量没有得到与已知病毒样本相关的关联样本。
[0151] 在本发明另一个具体的实施例中,预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量得到的与已知病毒样本相关的关联样本与上一次扫描得到的关联样本相同。
[0152] 如果未满足预设结束条件,则循环执行利用查找到的关联样本更新训练模型,利用新的训练模型进行查找的步骤,直至满足预设结束条件,本方法结束。
[0153] 步骤S207,根据关联样本对训练模型进行更新。
[0154] 由于相关的组件及工具的程序文件也能反映出病毒家族或同类恶意攻击事件的相似特征,并且通过对越多的相关组件及工具的程序文件的分析,越能发现同一病毒家族或同类攻击事件的通性,因此,本实施例在每次查找出新的关联样本之后,即在增加了新的训练样本之后,都需要重新对所有查找出的关联样本以及已知病毒或攻击事件的程序文件进行分析,重新提取特征向量,使用相应的决策机训练得到更新的训练模型,该更新的训练模型能更准确的描述病毒或恶意攻击事件以及关联样本的真实特征,因此通过该更新后的训练模型能够查找出更多新的关联样本。
[0155] 在得到更新后的训练模型之后,跳转到步骤S204进行关联样本的再次查找。
[0156] 本实施例提供的基于机器学习的关联样本查找方法,通过一次提取样本库中每一个样本的特征,其中,该特征包含了样本足够多的特征信息,利用降维算法对特征进行降维处理,在节省存储空间的同时提高了扫描查找的速度,根据经降维处理后的特征生成每一个样本的特征向量,这样就使得每一个特征向量能够表示对应样本的较完整的特征信息,因此每次更新训练模型后,仍能够通过扫描样本同样的特征向量来实现查找,而无需根据更新后的训练模型再次进行特征提取,从而极大的缩减了查找的时间,提高了查找的速度;将提取的样本的特征向量存储在分布式集群中的数个节点中,这样不仅能够满足存储的需求,还能够实现对数个节点中的特征向量进行并行扫描查找,提高查找的速度;将训练模型置入分布式集群中的数个节点中,这样的方式比将特征向量从存储系统中取出来进行处理更方便以及更节省时间;通过扫描样本的特征向量进行查找的方式能够提高查找的速度;
考虑到查找出的关联样本也能够发映出病毒家族或同类恶意攻击事件的相似特征,利用该关联样本对训练模型进行不断的更新,通过更新后的训练模型查找出新的与已知病毒相关的关联样本,循环执行上述训练模型更新以及查找的步骤,直至满足预设结束条件,例如样本库中的关联样本被全部查找出来。因此利用本实施例提供的基于机器学习的关联样本查找方法可以实现在样本库中快速完整的查找出所有与已知病毒相关的组件以及工具。
[0157] 图3示出了根据本发明又一个实施例的基于机器学习的关联样本查找装置的功能框图。如图3所示,该装置包括:提取模块301,存储模块302,训练模块303,预测模块304以及更新模块305。
[0158] 提取模块301,适于提取样本库中每一个样本的特征向量;
[0159] 存储模块302,适于存储每一个样本的特征向量;
[0160] 训练模块303,适于获取根据已知病毒样本训练得到的训练模型;
[0161] 查找模块304,适于利用训练模型扫描已存储的每一个样本的特征向量,得到与已知病毒样本相关的关联样本,将关联样本复制到已知病毒样本的关联样本集合中;
[0162] 判断模块305,适于判断是否满足预设结束条件;
[0163] 更新模块306,适于若判断模块305判断出未满足预设结束条件,则根据关联样本对训练模型进行更新。
[0164] 本实施例提供的基于机器学习的关联样本查找装置,在拦截或获取到病毒的相关信息后,通过分析病毒的程序文件,生成相应的决策机,根据该决策机进行训练得出训练模型,利用训练模型扫描样本的特征向量即可从样本中查找出与已知病毒相关的关联样本;通过扫描样本的特征向量进行查找的方式能够提高查找的速度;考虑到查找出的关联样本也能够发映出病毒家族或同类恶意攻击事件的相似特征,利用该关联样本对训练模型进行不断的更新,通过更新后的训练模型查找出新的与已知病毒相关的关联样本,循环执行上述训练模型更新以及查找的步骤,直至满足预设结束条件,例如样本库中的关联样本被全部查找出来;并且由于提取的样本库中样本的特征向量对应的特征为能够表示该样本足够多的信息的特征,因此每次更新训练模型后,仍能够通过扫描样本同样的特征向量来实现查找,而无需根据更新后的训练模型再次进行特征提取,从而极大的缩减了查找的时间,提高了查找的速度。因此利用本实施例提供的基于机器学习的关联样本查找装置可以实现在样本库中快速完整的查找出所有与已知病毒相关的组件以及工具。
[0165] 图4示出了根据本发明再一个实施例的基于机器学习的关联样本查找装置的功能框图。如图4所示,在图3的基础上,该装置还包括:置入模块401。
[0166] 置入模块401,适于将训练模型置入分布式集群中的数个节点中。
[0167] 提取模块301进一步适于:
[0168] 提取样本库中每一个样本的至少一个特征;
[0169] 对样本的至少一个特征进行降维运算,得到样本的特征向量。
[0170] 其中,样本的至少一个特征包括:类行为特征、编译器特征和/或加壳特征。
[0171] 降维运算的算法具体为:PCA算法、LDA算法或LLE算法。
[0172] 存储模块302进一步适于:将样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中。
[0173] 查找模块304进一步适于:数个节点并行地利用训练模型对节点中已存储的样本的特征向量进行扫描。
[0174] 预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量没有得到关联样本集合中未保存的关联样本。
[0175] 本实施例提供的基于机器学习的关联样本查找装置,通过一次提取样本库中每一个样本的特征,其中,该特征包含了样本足够多的特征信息,利用降维算法对特征进行降维处理,在节省存储空间的同时提高了扫描查找的速度,根据经降维处理后的特征生成每一个样本的特征向量,这样就使得每一个特征向量能够表示对应样本的较完整的特征信息,因此每次更新训练模型后,仍能够通过扫描样本同样的特征向量来实现查找,而无需根据更新后的训练模型再次进行特征提取,从而极大的缩减了查找的时间,提高了查找的速度;将提取的样本的特征向量存储在分布式集群中的数个节点中,这样不仅能够满足存储的需求,还能够实现对数个节点中的特征向量进行并行扫描查找,提高查找的速度;将训练模型置入分布式集群中的数个节点中,这样的方式比将特征向量从存储系统中取出来进行处理更方便以及更节省时间;通过扫描样本的特征向量进行查找的方式能够提高查找的速度;
考虑到查找出的关联样本也能够发映出病毒家族或同类恶意攻击事件的相似特征,利用该关联样本对训练模型进行不断的更新,通过更新后的训练模型查找出新的与已知病毒相关的关联样本,循环执行上述训练模型更新以及查找的步骤,直至满足预设结束条件,例如样本库中的关联样本被全部查找出来。因此利用本实施例提供的基于机器学习的关联样本查找装置可以实现在样本库中快速完整的查找出所有与已知病毒相关的组件以及工具。
[0176] 本申请实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于机器学习的关联样本查找方法。
[0177] 图5示出了根据本发明的一种服务器的结构示意图,本发明具体实施例并不对服务器的具体实现做限定。
[0178] 如图5所示,该服务器可以包括:处理器(processor)502、通信接口 (Communications Interface)504、存储器(memory)506、以及通信总线508。
[0179] 其中:
[0180] 处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
[0181] 通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
[0182] 处理器502,用于执行程序510,具体可以执行上述基于机器学习的关联样本查找方法实施例中的相关步骤。
[0183] 具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
[0184] 处理器502可能是中央处理器CPU,或者是特定集成电路ASIC  (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个 CPU以及一个或多个ASIC。
[0185] 存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0186] 程序510具体可以用于使得处理器502执行以下操作:
[0187] 步骤S1:提取样本库中每一个样本的特征向量,存储每一个样本的特征向量;
[0188] 步骤S2:获取根据已知病毒样本训练得到的训练模型;
[0189] 步骤S3:利用训练模型扫描已存储的每一个样本的特征向量,得到与已知病毒样本相关的关联样本,将关联样本复制到已知病毒样本的关联样本集合中;
[0190] 步骤S4:判断是否满足预设结束条件,若是,则本方法结束;若否,执行步骤S5;
[0191] 步骤S5:将关联样本复制到已知病毒样本的关联样本集合中,并根据关联样本对训练模型进行更新,跳转执行步骤S3。
[0192] 其中,预设结束条件具体为:利用训练模型扫描已存储的每一个样本的特征向量没有得到关联样本集合中未保存的关联样本。
[0193] 程序510具体还可以用于使得处理器502执行以下操作:
[0194] 提取样本库中每一个样本的至少一个特征;
[0195] 对样本的至少一个特征进行降维运算,得到样本的特征向量。
[0196] 其中,样本的至少一个特征包括:类行为特征、编译器特征和/或加壳特征。
[0197] 降维运算的算法具体为:PCA算法、LDA算法或LLE算法。
[0198] 程序510具体还可以用于使得处理器502执行以下操作:
[0199] 将样本库中所有样本的特征向量分布存储到分布式集群中的数个节点中。
[0200] 程序510具体还可以用于使得处理器502执行以下操作:
[0201] 将训练模型置入分布式集群中的数个节点中;
[0202] 程序510具体还可以用于使得处理器502执行以下操作:
[0203] 数个节点并行地利用训练模型对节点中已存储的样本的特征向量进行扫描。
[0204] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0205] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0206] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0207] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0208] 此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0209] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于机器学习的关联样本查找装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0210] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。