恶意代码的检测模型处理方法、检测方法和装置与流程

文档序号:31678068发布日期:2022-09-28 09:44阅读:770来源:国知局
恶意代码的检测模型处理方法、检测方法和装置与流程

1.本技术涉及计算机安全技术领域,特别是涉及一种恶意代码的检测模型处理方法、检测方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着计算机技术的快速发展,计算机技术已经渗透到生活中的各方各面。随之而来的,计算机安全也成为了重要问题。其中,计算机设备上运行的恶意代码已经给计算机安全造成极大挑战。由此,需要对计算机设备上运行的恶意代码进行检测。
3.在相关技术中,主要是通过文件特征检测实现恶意代码检测。进行文件特征检测时,是确定待测代码文件的结构特征,从而检测该结构特征是否存在于预先建立的恶意代码特征库中,若是,则确定待侧代码文件记载有恶意代码。然而,通过文件特征检测进行恶意代码检查,容易发生漏检,检测恶意代码的准确性较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种检测恶意代码准确性高的恶意代码的检测模型处理方法、检测方法、装置、计算机设备、存储介质和计算机程序产品。
5.一方面,本技术提供了一种恶意代码的检测模型处理方法,该方法包括:
6.获取代码训练样本的样本行为记录集合,样本行为记录集合记录有相应的代码训练样本在运行后产生的样本代码行为;
7.获取目标行为类型特征集,目标行为类型特征集包括用于训练检测模型的代码行为类型;
8.参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型;
9.基于属于目标行为类型特征集的样本行为类型,生成代码训练样本的样本行为特征组;
10.获取用于表征代码训练样本的恶意属性的样本标签,基于样本行为特征组和样本标签,训练检测模型。
11.在其中一个实施例中,更新终止条件包括经过代码行为类型的更新处理后的行为类型特征集种群中存在检测效果评价值大于预设阈值的行为类型特征集。
12.在其中一个实施例中,更新处理包括:不同代码行为类型之间的聚合、删减代码行为类型、增加代码行为类型、拆解代码行为类型或者变更代码行为类型中至少一种。
13.在其中一个实施例中,样本行为特征组具有与目标行为类型特征集中的代码行为类型一一对应的特征位;样本行为特征组中,与属于目标行为类型特征集的样本行为类型对应的特征位为第一值,样本行为特征组中除去值为第一值特征位剩余的特征位为第二值。
14.另一方面,本技术还提供了一种恶意代码的检测模型处理装置,该装置包括:
15.第一获取模块,用于获取代码训练样本的样本行为记录集合,样本行为记录集合记录有相应的代码训练样本在运行后产生的样本代码行为;
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.另一方面,本技术提供了一种恶意代码的检测方法,该方法包括:
43.获取目标代码的行为记录集合,行为记录集合记录有目标代码在运行后产生的代码行为;
44.获取目标行为类型特征集,目标行为类型特征集包括经过训练的检测模型检测恶意代码时所需的代码行为类型;
45.参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型;
46.基于属于目标行为类型特征集的目标行为类型,生成目标代码的行为特征组;
47.通过经过训练的检测模型,基于行为特征组进行恶意代码检测,获得目标代码的恶意属性。
48.另一方面,本技术提供了一种恶意代码的检测装置,该装置包括:
49.第一获取模块,用于获取目标代码的行为记录集合,行为记录集合记录有目标代
码在运行后产生的代码行为;
50.第二获取模块,用于获取目标行为类型特征集,目标行为类型特征集包括经过训练的检测模型检测恶意代码时所需的代码行为类型;
51.确定模块,用于参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型;
52.生成模块,用于基于属于目标行为类型特征集的目标行为类型,生成目标代码的行为特征组;
53.检测模块,用于通过经过训练的检测模型,基于行为特征组进行恶意代码检测,获得目标代码的恶意属性。
54.在其中一个实施例中,确定模块,用于对行为记录集合中记录的至少一部分代码行为进行重构,获得重构行为类型;参考目标行为类型特征集,在重构行为类型中,确定属于目标行为类型特征集的目标行为类型。
55.在其中一个实施例中,检测模块,还用于对外推送用于对目标代码的恶意属性进行检验的检验请求信息;获取基于检验请求信息所返回的检验结果,检验结果用于确定目标代码作为代码训练样本时的样本标签;基于目标代码所作为的代码训练样本和对应的样本标签,对检测模型进行再次训练。
56.另一方面,本技术还提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述提供的恶意代码的检测方法的步骤。
57.另一方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述提供的恶意代码的检测方法的步骤。
58.另一方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述提供的恶意代码的检测方法的步骤。
59.上述恶意代码的检测方法、装置、计算机设备、存储介质和计算机程序产品,通过获取目标代码的行为记录集合,参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,生成目标代码的行为特征组,基于行为特征组,通过检测模型对目标代码进行检测。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
附图说明
60.图1为一个实施例中恶意代码的检测模型处理方法和恶意代码的检测方法的应用环境图;
61.图2为一个实施例中恶意代码的检测模型处理方法的流程示意图;
62.图3为一个实施例中恶意代码的检测方法的流程示意图;
63.图4为另一个实施例中恶意代码的检测模型处理方法的流程示意图;
64.图5为一个实施例中检测环境的架构示意图;
65.图6为一个实施例中检测模型的部署流程示意图;
66.图7为一个实施例中检验流程和迭代训练流程的框架流程示意图;
67.图8为一个实施例中恶意代码的检测模型处理装置的结构框图;
68.图9为一个实施例中恶意代码的检测装置的结构框图;
69.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
70.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
71.首先,对本技术实施例中涉及到的名词进行简要解释说明:
72.恶意代码:指的是没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。本技术实施例提及的代码(包括恶意代码)通常指代的是计算机设备中的可运行程序。有的恶意代码具备一个完整程序所应该具有的全部功能,能够独立传播和运行,这样的恶意代码不需要寄宿在另一个程序中,可以称之为独立的恶意代码。而有的恶意代码只是一段代码,需要嵌入某个完整的程序中,作为该程序的一个组成部分进行传播和运行,这样的恶意代码可以称之为非独立的恶意代码,其会导致其宿主程序体现恶意性。
73.恶意属性:通常对应于两种代码评价结果,即恶意代码和非恶意代码。
74.蜜罐技术:指的是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
75.代码行为:指的是代码执行后表现出的行为,具体可以是代码在执行后创建的进程或线程所表现出的行为。
76.信息熵:用于描述随机变量的不确定性。在本技术实施例中,信息熵用于描述代码为恶意代码,还是为非恶意代码的不确定性。
77.条件熵:指的是在某种已知变量的条件下,随机变量的不确定性。在本技术实施例中,条件熵用于描述已知某一代码产生了某种类型的代码行为,该代码为恶意代码,还是为非恶意代码的不确定性。
78.另外,在本技术实施例中,检测模型的训练过程和后续的恶意代码检测应用过程,主要是涉及人工智能(artificial intelligence,ai),基于人工智能中的机器学习(machine learning,ml)技术而设计。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
79.人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能在多个领域展开研究和
应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人和智能医疗等,相信随着技术的发展,人工智能将在更多的领域获得应用,并发挥越来越重要的价值。
80.而机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析和算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。对比于数据挖掘从大数据之间找相互特性而言,机器学习更加注重算法的设计,让计算机能够自动地从数据中“学习”规律,并利用规律对未知数据进行预测。
81.机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习和归纳学习等技术。强化学习(reinforcement learning,rl),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
82.在一些实施例中,本技术实施例提供的恶意代码的检测模型处理方法或者恶意代码的检测方法,可以应用于如图1所示的应用环境中。其中,终端102可通过有线或者无线网络,直接或者间接地与服务器104进行通信,本技术实施例对此不作具体限定。另外,终端102或者服务器104可各自单独用于执行本技术实施例中的恶意代码的检测模型处理方法,也可各自单独用于执行本技术实施例中的恶意代码的检测方法;还可以是两者协同用于执行本技术实施例中的恶意代码的检测模型处理方法,也可以是两者协同用于执行本技术实施例中的恶意代码的检测方法。
83.对于单独执行,现以服务器104单独执行恶意代码的检测模型处理方法时的其中一种实施过程为例。具体地,服务器104可以提前获取代码训练样本的样本行为记录集合并存储,参考本地存储的目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型,并由此生成样本行为特征组。而样本行为特征组可以作为本地存储的检测模型的输入项,而代码训练样本的样本标签可以作为监督项,通过监督式学习可以对检测模型进行训练。
84.同样对于单独执行,现以终端102单独执行恶意代码的检测方法时的其中一种实施过程为例。具体地,终端102可以获取目标代码的行为记录集合,并获取目标行为类型特征集。终端102参考目标行为类型特征集,在行为记录集合所记录代码行为的代码行为类型中,确定属于目标行为类型特征集的目标行为类型,并基于此生成目标代码的行为特征组。终端102将行为特征组输入至检测模型,得到目标代码的恶意属性。
85.对于协同执行,现以两者协同执行恶意代码的检测模型处理方法时其中一种实施过程为例,终端102可以收集代码训练样本,并可以获取由服务器104所下发的目标行为类型特征集并存储。终端102在收集到新的代码训练样本后,可以参考本地存储的目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型,并基于此生成样本行为特征组,终端102将样本行为特征组上传至服务器104。服务器104可将样本行为特征组作为本地存储的检测模型的输入项,而代码训练样本的样本标签可以作为监督项,通过监督式学习可以对检测模型进行训练。数据存储系统可以存储服务器104获取到的代码训练样本,还可以存储检测模型,以后续基于
代码训练样本对检测模型进行训练。数据存储系统可以集成在服务器104上,也可以集成在云上或其他服务器上。
86.同样对于协同执行,现以两者协同执行恶意代码的检测方法时其中一种实施过程为例,终端102可以获取目标代码的行为记录集合,并将行为记录集合上传至服务器104。服务器104可以从本地获取目标行为类型特征集,并参考目标行为类型特征集,在行为记录集合所记录代码行为的代码行为类型中,确定属于目标行为类型特征集的目标行为类型,并基于此生成行为特征组。服务器104将行为特征组输入至本地存储的检测模型,获得目标代码的恶意属性。
87.可以理解的是,对于协同执行,服务器104可以集成在云端,也即本技术实施例提及的恶意代码的检测模型处理方法、以及恶意代码的检测方法,均可以通过云技术实现。云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
88.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
89.而本技术实施例可以涉及到云技术中云安全应用领域,具体体现在可以通过云计算技术实现对广域网或者局域网中不同计算机设备中运行的恶意代码进行检测。其中,云安全(cloud security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构和安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
90.云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护和合规审计等。2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力。3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
91.其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。终端上可运行有应用程序,比如视频应用、或音频应用等,用于呈现代码数据。服务器104则可以是与软件或是网页、小程序等相对应的后台服务器,或者是专门用于进行检测代码的服务器,本技术实施例不做具体限定。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络
服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
92.在一些实施例中,结合上述名词解释、技术解释和实施环境说明,如图2所示,提供了一种恶意代码的检测模型处理方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端或服务器)为例进行说明,包括以下步骤:
93.步骤202、获取代码训练样本的样本行为记录集合,样本行为记录集合记录有相应的代码训练样本在运行后产生的样本代码行为。
94.结合上述名词解释的相关说明,代码训练样本可以是作为训练样本的可运行程序。可以理解的是,程序在运行后自然会产生一系列的代码行为,如命令执行、代码注入、内存驻留、凭据收集(主要是指的是用户名和密码)和翻查信息等。由此,计算机设备可以记录这些代码行为并汇总成行为记录集合。可以理解的是,由于是记录代码行为,从而样本行为记录集合中可能会存在同类型的样本代码行为。例如,某一代码在运行过程中,先产生了“命令执行”这个代码行为,接着产生了“代码注入”这个代码行为,随后又产生了“命令执行”这个代码行为。此时,该代码的行为记录集合中会存在两个“命令执行”的代码行为。
95.需要说明的是,一个代码处于运行的状态可能会持续很久,并由此可能会产生大量的代码行为。此时,计算机设备在获取该代码的行为记录集合时,也不太可能将该代码整个运行过程中产生的所有代码行为都记录下来,这主要是若记录所有的代码行为,则会占用较大的存储空间,以及后续对这么多代码行为进行处理会占用较多的系统资源。由此,本技术实施例在获取样本行为记录集合时,计算机设备可以获取代码训练样本在运行过程中部分时段的样本代码行为。例如,可以是一个时段内的样本代码行为,也可以是多个时段内的样本代码行为,本技术实施例对此不作具体限定。另外,同一代码训练样本可能会产生多次运行过程。对于某一代码训练样本,该代码训练样本的样本行为记录集合中记录的样本代码行为可以同一次运行过程中所产生的,也可以多次运行过程中所产生的,本技术实施例对此不作具体限定。
96.还需要说明的是,由于程序在计算机设备中的运行过程,实际上是通过由进程或者线程作为基本执行实体所体现的,从而本技术实施例提及的代码行为可以是代码相应的进程或者线程在运行过程中所产生的。另外,为对代码行为进行记录,样本行为记录集合中的样本代码行为需要以一种呈现形式进行表示。实际实施过程中,可以通过字符串进行表示,不同代码行为类型对应不同的字符串;还可以通过编码进行表示,不同代码行为类型可以均采用相同编码方式进行编码,如均采用二进制编码或者均采用16进制编码等,本技术实施例不对代码行为在行为记录集合中的呈现形式作具体限定。
97.为了便于说明,本技术实施例以代码行为采用二进制编码进行表示为例,如可将“命令执行”这一代码行为类型通过二进制编码“001”进行表示,而将“代码注入”这一代码行为类型通过二进制编码“010”进行表示。由此,样本行为记录集合实际上可以为一系列二进制编码的集合。需要说明的是,在上述提及的示例中,不同代码行为类型对应的二进制编码的编码长度均是相同的。实际实施过程中,不同代码行为类型对应的二进制编码的编码长度也可以不同,如“命令执行”这一代码行为类型可以采用三位二进制编码“001”,而“代码注入”这一代码行为类型可以采用四位二进制编码“0010”,本技术实施例对此也不作具体限定。
98.由上述内容可知,计算机设备可以通过“获取代码训练样本在运行过程中部分时段的样本代码行为”,也即通过限缩获取到的数据量,以用来限制构成的样本行为记录集合的大小。实际实施过程中,计算机设备还可以通过直接限制样本行为记录集合的规模,以用来限制样本行为记录集合的大小。具体地,以代码行为通过上述提及的二进制编码进行表示,且每一代码行为均采用3位编码为例,假设直接限制样本行为记录集合的规模是记录100个样本代码行为,则结合每一代码行为均采用3位编码的相关说明可知,样本行为记录集合可以是100*3=300个比特位。由此,可以限制样本行为记录集合的大小为300个比特位。
99.需要说明的是,由于上面过程主要是通过直接限制样本行为记录集合的规模,以用来限制样本行为记录集合的大小,从而计算机设备在“获取数据”时,也即获取代码训练样本在运行后产生的样本代码行为时,可以不对获取到的数据量的多少进行限定,而是后续基于样本行为记录集合的规模,对获取到的数据量进行整理。具体地,若实际实施过程中获取到的数据量比较多,如获取到了200个样本代码行为,则此时计算机设备可以计算出所有的样本代码行为通过二进制编码进行表示会占用200*3=600个比特位,而样本行为记录集合的大小为300个比特位。由此,计算机设备可以对获取到的所有代码行为作删减处理,如仅保留100个代码行为。
100.上述过程为其中一种可行的、用于删减数据量的方式。考虑到二进制编码作为编码的可组合性,若将获取到的200个样本代码行为的二进制编码通过编码首位衔接的方式形成一组“编码流”,则计算机设备删减数据量的方式还可以为“编码流截断”。需要说明的是,200个样本代码行为可以形成600个比特位,理论上随机截断出300个比特位,再将300个比特位按照编码比特位的顺序,每3位作为一组二进制编码,即可得到100个二进制编码,刚好契合样本行为记录集合的限制规模。
101.但由于随机截断,可能会破坏原有3位一组的二进制编码的完整性,导致首尾衔接后形成的相邻二进制编码之间的重组,从而使得截断后所产生的样本行为记录集合中所记录的样本代码行为,与原始获取到的样本代码行为之间出入太大。这可能相当于是随机构建样本行为记录集合,从而导致记录样本代码行为失去了意义,也不是以代码运行的真实情况为基础。基于上述说明,实际实施过程中,可以按照3个比特位为单位进行截断。例如,结合上述示例,若“编码流”为600个比特位,则计算机设备可以截断出第4位至第303位的比特位,作为构建样本行为记录集合的基础。此时,不会破坏原有3位一组的二进制编码的完整性,以保持二进制编码的原始指代含义。
102.上述主要陈述的是,在实际实施过程中获取到的数据量比较多的情形下,如何基于样本行为记录集合的规模,对获取到的数据量进行整理,以限制样本行为记录集合的大小的过程。实际实施过程中,还可能会出现获取到的数据量比较少的情形,如获取到了60个代码行为。则此时计算机设备可以计算出所有的样本代码行为通过二进制编码进行表示会占用60*3=180个比特位,而样本行为记录集合的大小为300个比特位。很明显,此时所有样本代码行为所占用的比特位还没有达到样本行为记录集合的限制规模。
103.与此同时,可以理解的是,代码训练样本通常会不止一个。由此延伸出,不同代码训练样本的样本行为记录集合的实际规模是否需要完全一致。由于后续处理过程与样本行为记录集合的规模可以不存在关联,从而实际实施过程中,可以不对样本行为记录集合设
置限制规模,或者设置限制规模,仅在获取到的数据量比较多的情况下使用限制规模删减数据量。以此为基础,尽量完全保留获取到的数据量。
104.当然,考虑到相同规模的样本行为记录集合可以会因数据记录形式一致,而便于统一处理。由此,实际实施过程中,对于某一代码训练样本,在获取到的所有样本代码行为还没有达到样本行为记录集合的限制规模的情况下,计算机设备可以对获取到的所有代码行为作数据量的“补充处理”。可以理解的是,补充数据的可以是不具有指代含义的内容,否则可能会将样本代码训练样本从未产生过的样本代码行为添加进了样本行为记录集合。结合上述关于“编码流”的说明,计算机设备补充数据量的方式可以为向编码流填充比特位。现进行具体说明:若获取到了60个代码行为,则可以确定共占用180个比特位,则补充120个比特位即可达到样本行为记录集合的限制规模。
105.由于样本代码行为对应的是3位一组的二进制编码,若随机填充比特位,则可能会破坏原有3位一组的二进制编码的完整性。基于上述不进行随机截断的相同理由,计算机设备可以维持原有3位一组的二进制编码完整性的前提下,进行比特位填充。具体填充方式可以为在编码流之前填充,也可以在编码流之后填充,也可以在编码流中间填充,也可以多种方式结合,本技术实施例不对填充方式作具体限定。
106.需要说明的是,上述过程中有提及“补充数据的可以是不具有指代含义的内容”,从而这里填充内容可以不指向任一代码行为类型。结合上述内容,以“命令执行”这一代码行为类型通过二进制编码“001”进行表示,“代码注入”这一代码行为类型通过二进制编码“010”进行表示,后面为“011”并依此类推。由此可知,至少在该示例中,二进制编码“000”是未被启用以用于指代代码行为类型的。因此,在该示例中,可以全部填充数值为“0”的比特位。当然,实际实施过程中还可以结合指代代码行为类型时具体所启用的二进制编码,决定填充方式,以保证填充内容不指向任一代码行为类型,本技术实施例不对填充方式作具体限定。
107.在上述关于样本代码行为通过二进制编码进行表示的相关说明中,提及了样本行为记录集合可以由二进制编码通过首尾衔接的方式形成“编码流”进行表示。既然是首尾衔接,通常是需要有一个顺序的。而代码在运行过程中产生的代码行为,会自然而然形成一个代码行为的产生时序。由此,实际实施过程中,样本行为记录集合可以为一个序列,其中记录的样本代码行为可以按照样本代码行为的产生时序进行排序。
108.由后续步骤可知,计算机设备在生成样本行为特征组时,样本行为特征组中的特征位实际上对应的是代码行为类型。样本行为特征组是基于属于目标行为类型特征集的样本行为类型所生成的,而属于目标行为类型特征集的样本行为类型是基于样本行为记录集合所记录样本代码行为的代码行为类型所确定的。由上述过程可以看出样本行为特征组中特征位对应的代码行为类型,与样本行为记录集合所记录的样本代码行为是存在关联的。基于该关联,可将原本存在于样本行为记录集合中的时序,传递至样本行为特征组,从而使得样本行为特征组中产生特征位的排序。其中,特征位的排序实际上是对应的代码行为类型之间的排序,具体实现过程可参考后续过程的说明。
109.需要说明的是,考虑到恶意代码在运行过程中呈现恶意性时,确实可能存在一定代码行为产生时序,且这种代码行为产生时序可能具有一定的恶意逻辑。例如,某一恶意代码的恶意行为可能是先大量复制,再通过大量复制的恶意代码产生多个进程在内存中长期
驻留,最后通过长期驻留的多个进程持续对凭据进行收集,很明显这种代码行为产生时序可以使得恶意代码制作者最大程度获益。由此,本技术实施例可以在样本行为记录集合中引入产生样本代码行为的时序,并通过上述简要说明所陈述的方式,将时序作为对检测模型进行训练的参考因素之一,这样可能可以提高恶意代码的检测准确率。但考虑到如今恶意代码的迷惑性和制作恶意代码制作者的编程风格的随意性,恶意代码所呈现的代码行为产生时序可能不能再与恶意逻辑关联,引入代码行为产生时序可能会起到反效果。因此,实际上实施中可以基于实际情况,决定是否在样本行为记录集合中引入代码行为产生时序,本技术实施例对此不作具体限定。
110.步骤204、获取目标行为类型特征集,目标行为类型特征集包括用于训练检测模型的代码行为类型。
111.可以理解的是,代码所能呈现的代码行为均可以被预先收集。而在收集到的所有代码行为中,通常只有部分代码行为是恶意的。例如,通常代码都不会产生翻查信息这种行为,翻查信息会影响到信息安全所以通常是恶意的代码行为。由此,哪些代码行为类型的代码行为可能具有恶意性,是可以提前获知的。基于上述说明,在本步骤中,计算机设备可以先确定哪些代码行为类型的代码行为可能具有恶意性,再由这些代码行为类型构成目标行为类型特征集。
112.与样本行为记录集合同理,目标行为类型特征集中的代码行为类型也需要以一种呈现形式进行表示。而由上述步骤中的内容可知,代码行为类型可以通过二进制编码进行表示,样本行为记录集合中的样本代码行为也通过二进制编码进行表示,样本行为记录集合每存在一个二进制编码的记录,则代表产生了相应代码行为类型的代码行为。因此,在本步骤中,目标行为类型特征集中的代码行为类型可以通过二进制编码进行表示。当然,也可以采用其它呈现形式进行表示,本技术实施例对此不作具体限定。
113.步骤206、参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型。
114.需要说明的是,后续步骤中的样本行为特征组实际上作为检测模型的输入项。而目标行为类型特征集主要是作为生成输入项的指引,也即用来确定检测模型的输入项所需要的代码行为类型。其中,输入项可能不一定完全覆盖目标行为类型特征集所包括的所有代码行为类型,但输入项所覆盖的代码行为类型从属于目标行为类型特征集。还需要说明的是,目标行为类型特征集中包括的代码行为类型并非是一成不变的,一种代码行为类型可能会被拆解为多种代码行为子类型,而多种代码行为类型还可以被聚合成一种新的代码行为类型。
115.由上述步骤的内容可知,目标行为类型特征集中的代码行为类型,实际上是基于那些可能存在恶意性的代码行为所确定的,且目标行为类型特征集主要是作为生成输入项的指引。由此可知,对于检测模型而言,比较关注代码是否产生了目标行为类型特征集中代码行为类型对应的代码行为,并由此判断是否为恶意代码。因此,本步骤中“确定属于目标行为类型特征集的样本行为类型”的过程,在某一层面上,可以理解为将目标行为类型特征集中包括的所有代码行为类型,与样本行为记录集合中记录的样本代码行为对应的所有代码行为类型“取交集”。
116.但在前面已经说明了目标行为类型特征集中包括的代码行为类型并非是一成不
变的,目标行为类型特征集中包括的一些代码行为类型仅通过记录代码行为的方式可能是获取不到的。例如,样本行为记录集合中记录的样本代码行为对应的所有代码行为类型中包括a1和a2这两种代码行为类型,而目标行为类型特征集中包括a这种代码行为类型。其中,a是由a1和a2聚合而成的。很明显,样本行为记录集合中不存在a这种代码行为类型的样本代码行为,但a1和a2与a存在紧密关联。而目标行为类型特征集中的代码行为类型是基于那些可能存在恶意性的代码行为所确定的,既然a被认为可能是存在恶意性的代码行为类型,显然不能因为样本行为记录集合不存在a这种代码行为类型的样本代码行为,而忽略a1和a2这两种代码行为类型的恶意性。
117.因此,在本步骤中才会提及“参考目标行为类型特征集”,其中“参考”二字,主要指的是样本行为记录集合中记录的样本代码行为对应的代码行为类型,可能会朝向贴合于目标行为类型特征集中代码行为类型的方向,发生某些变化。在此变化中,可能会产生某些原本不被样本行为记录集合所覆盖的代码行为类型。但此变化,还是需要“基于样本行为记录集合所记录样本代码行为的代码行为类型”。需要说明的是,本步骤中提及的“样本行为类型”,主要是区别于原本样本行为记录集合所覆盖的代码行为类型的一种表达,本质上还是代码行为类型。
118.可以理解的是,“样本行为类型”均从属于目标行为类型特征集,也即均为目标行为类型特征集中的代码行为类型。但有些“样本行为类型”可能被样本行为记录集合所覆盖,通过样本行为记录集合所覆盖的代码行为类型与目标行为类型特征集中包括的代码行为类型“取交集”所产生,并未经历过变化。与此同时,有些“样本行为类型”可能不被样本行为记录集合所覆盖,是由样本行为记录集合所覆盖的至少部分代码行为类型发生变化,变化后的结果与目标行为类型特征集中包括的代码行为类型“取交集”所产生。
119.为了便于理解,以样本行为记录集合所覆盖的代码行为类型包括a1、a2、b、c和e,而目标行为类型特征集中包括的代码行为类型包括a、b1、c和d为例。其中,a是由于a1和a2聚合形成的,而b是由b1和b2聚合形成的。由此,可以参考目标行为类型特征集,对样本行为记录集合所覆盖的代码行为类型,朝向贴合于目标行为类型特征集中代码行为类型的方向发生变化。具体地,变化后的样本行为记录集合所覆盖的代码行为类型可以包括a、b1、b2、c和e。由此,通过取交集,可以确定属于目标行为类型特征集的样本行为类型为a、b1和c。需要说明的是,上述提及的变化方式主要是聚合和拆解,实际实施过程中还可以有其它变化方式,本技术实施例对此不作具体限定。
120.步骤208、基于属于目标行为类型特征集的样本行为类型,生成代码训练样本的样本行为特征组。
121.由上述步骤的解释可知,样本行为特征组是作为检测模型的输入项,目标行为类型特征集主要是作为生成输入项的指引。由此可知,对于检测模型而言,比较关注代码是否产生了目标行为类型特征集中代码行为类型对应的代码行为,并由此判断是否为恶意代码。而样本行为特征组主要是用于指示代码训练样本产生了哪些从属于目标行为类型特征集中代码行为类型的样本代码行为。或者进一步地,代码训练样本产生的样本代码行为经过变化后,产生了哪些从属于目标行为类型特征集中代码行为类型的样本代码行为。
122.由此,为了能够表示代码训练样本最终产生了哪些从属于目标行为类型特征集中的代码行为类型的样本代码行为。样本行为特征组可以具有多个特征位,特征位的数量可
以与目标行为类型特征集中代码行为类型的数量一致,每一特征位均指代目标行为类型特征集中的一种代码行为类型,每一特征位上的信息即为一个样本行为特征。由此,特征位上的信息的表现形式可以为1或者0。其中,若样本行为特征组中某一特征位上的信息为1,则可以表示代码训练样本最终产生了该特征位所指代的代码行为类型对应的样本代码行为;若样本行为特征组中某一特征位上的信息为0,则可以表示代码训练样本最终没有产生该特征位所指代的代码行为类型对应的样本代码行为。当然,实际实施过程中,1与0的含义还可以反过来,本技术实施例对此不作具体限定。
123.需要说明的是,多个代码训练样本对检测模型进行同一批次训练时,其各自的样本行为特征组在相同位置上的特征位所指代的代码行为类型是相同的。例如,代码训练样本a和b均用于同一批次的训练过程,若a的样本行为特征组中第一个特征位指代的是代码行为类型a,则b的样本行为特征组中第一个特征位指代的是代码行为类型a,也即相同位置上的特征位所指代的代码行为类型均相同。将样本行为特征组视为整体上的一个特征,之所以需要相同,主要是为了保证同一批次训练过程中的输入项都是相同类型的特征。与此同时,对于某模型,其最后训练过程中输入项使用了怎样类型的特征,后续其应用过程通常也需要使用相同类型的特征。由此,对于最后训练过程中输入的样本行为特征组与后续应用过程中输入的行为特征组,相同位置上的特征位所指代的代码行为类型均相同。
124.步骤210、获取用于表征代码训练样本的恶意属性的样本标签,基于样本行为特征组和样本标签,训练检测模型。
125.其中,恶意属性可以对应于两种代码评价结果,即恶意代码和非恶意代码。计算机设备通过将样本行为特征组作为输入,基于样本标签可对检测模型进行监督式训练。其中,检测模型可以为实现分类功能的神经网络模型,如循环神经网络或者卷积神经网络等,训练结束的条件可以为检测模型收敛等,本技术实施例对此不作具体限定。
126.需要说明的是,实际实施过程中,所有代码训练样本可以分为两部分,其中一部分用于训练过程,另一部分可用于对经过训练的检测模型进行测试。还需要说明的是,所有代码训练样本可以均来自于样本数据库。样本数据库中可以包括恶意代码样本和非恶意代码样本,样本数据库中的样本来源可以包括三部分:第一是开源代码方所分享出的代码样本,第二是计算机安全相关工作人员在攻击演练中所产生的代码样本,第三是在网络(可以包括广域网或者局域网)中捕获的代码样本。当然,实际实施过程中,样本数据库还可以有其它代码样本来源,本技术实施例对此不作具体限定。
127.上述恶意代码的检测模型处理方法,通过获取代码训练样本的样本行为记录集合和目标行为类型特征集,参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,生成代码训练样本的样本行为特征组,基于样本行为特征组和样本标签,训练检测模型。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
128.另外,由于样本行为特征组是参考目标行为类型特征集并基于样本行为记录集合所生成的,而目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,从而
样本行为特征组可以尽量反映出样本行为记录集合的代码行为恶意程度,进而将样本行为特征组作为检测模型的输入项,可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
129.最后,由于使用检测模型对代码进行检测,不需要像文件特征检测那样,频繁更新恶意代码特征库而导致占用存储资源不断增长,而是仅需更新样本对检测模型再次训练即可,也即检测模型本申不需要太占用存储资源,从而可以节省存储资源。与此同时,恶意代码特征库逐渐庞大也会导致后续检测过程中查找次数逐渐增多,从而会影响检测效率,并因占用太多处理资源而影响系统性能。而使用检测模型,只需输入输出过程即可得到预测结果,从而可以提高检测效率,并可降低对系统性能的影响。
130.由样本行为记录集合的命名可知,代码训练样本的样本代码行为需要被记录下来。由此,在一些实施例中,获取代码训练样本的样本行为记录集合,包括:在封闭的行为感知环境下运行代码训练样本,行为感知环境被配置为对代码训练样本运行后产生的样本代码行为进行记录;基于行为感知环境所记录的样本代码行为,构成代码训练样本的样本行为记录集合。
131.具体地,行为感知环境主要是通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行感知和记录。甚至,还可以对攻击行为进行分析,以了解攻击方所使用的工具与方法,推测攻击意图和动机,并进行反向追溯。通过行为感知环境,能够让防御方清晰地了解所面对的安全威胁,并通过技术和管理手段来增强系统的安全防护能力。实际实施过程中,行为感知环境可以是基于蜜罐技术所配置的。
132.另外,之所以在本技术实施例中强调是“封闭的”行为感知环境,主要是由于行为感知环境实际上是作为一种安全资源,其价值在于被探测、攻击和损害,借此收集入侵证据。实际实施过程中,行为感知环境也会被配置为提供一定的漏洞,以便于被入侵。但可理解的是,若配置有行为感知环境的计算机设备被整体渗透,则不光不能实现目的,还可能会导致入侵者将配置有行为感知环境的计算机设备作为跳板,向其它计算机设备进行入侵行为,造成更加严重的后果。由此,在本技术实施例中“封闭的”主要是强调在配置行为感知环境时,设置漏洞以便入侵的设陷技术需要具有足够安全性,否则不能有效记录代码行为。
133.计算机设备在封闭的行为感知环境下运行代码训练样本,行为感知环境可以对产生的样本代码行为进行记录。其中,记录的时段和样本代码行为的表示形式可以参考上述实施例的说明,在此不再赘述。样本行为记录集合的构成形式可以与样本代码行为的表示形式相关,本技术实施例不对样本行为记录集合的构成形式作具体限定。例如,若样本代码行为通过二进制编码进行表示,则样本行为记录集合的构成形式可以为二进制编码集合。
134.在上述实施例中,由于可以通过具有足够安全性的行为感知环境对代码行为进行感知和记录,从而在保证配置有行为感知环境的计算机设备不被整体渗透的前提下,可以实现恶意代码行为的感知和记录,进而可以增强计算机设备以及由所有计算机设备构成的计算机设备系统的安全性。
135.在上述实施例提及过目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,也给出了一种基于经验判断,以获取目标行为类型特征集的实现方式。可以理解的是,实际实施过程中可以基于一些可量化的判断依据,从诸多代码行为类型中筛选出
部分代码行为类型,以构建得到目标行为类型特征集。需要说明的是,上述对检测模型的训练过程中提及的“获取目标行为类型特征集”,可以是在训练过程中临时构建,也可以是在训练之前提前构建,而训练过程中直接获取并使用,本技术实施例对此不作具体限定。基于该说明,在一些实施例中,目标行为类型特征集是通过目标行为类型特征集构建步骤获得的,目标行为类型特征集构建步骤包括:
136.获取初始行为类型特征集和多个代码样本相应的多个样本行为记录集合;确定多个代码样本中恶意代码样本和非恶意代码样本各自的出现概率,根据各自的出现概率,计算代码样本的信息熵;确定初始行为类型特征集中每个代码行为类型的条件熵;根据信息熵和每个代码行为类型的条件熵,确定每个代码行为类型的信息增益值;信息增益值用于指示相应的代码行为类型对恶意代码检测的贡献程度;从初始行为类型特征集中,选取按信息增益值降序排序时前预设数量个信息增益值对应的代码行为类型,构建目标行为类型特征集。
137.具体地,初始行为类型特征集中同样包括的是代码行为类型。初始行为类型特征集可以由已知的所有代码行为类型所构成,也可以是之前实施例所陈述的那样,由基于经验判断的、可能会具有恶意性的代码行为类型所构成,本技术实施例不对初始行为类型特征集的构成方式作具体限定。初始行为类型特征集主要是作为构建目标行为类型特征集的基础,后续构建得到的目标行为类型特征集中的代码行为类型来源于初始行为类型特征集。
138.计算机设备除了获取初始行为类型特征集之外,还可以获取多个代码样本相应的多个样本行为记录集合。其中,每一代码样本即对应一个样本行为记录集合。需要说明的是,此处的“代码样本”与上述实施例提及的“代码训练样本”主要是命名上加以区分,上述实施例中“代码训练样本”主要是指用于对检测模型进行训练的代码样本。两者本质上可以没有不同,甚至还可以为同一代码样本,本技术实施例对此不作具体限定。
139.在多个代码样本中,哪些代码样本是恶意代码样本,哪些代码样本是非恶意代码是可以提前获知的。由此,计算机设备可以根据多个代码样本中恶意代码样本与非恶意代码样本的分布,计算得到多个代码样本中恶意代码样本和非恶意代码样本各自的出现概率。结合信息熵的定义,可以将代码样本是否为恶意代码样本设置为一个随机变量,该随机变量的取值为恶意代码样本或者非恶意代码样本,且代码样本的信息熵的计算过程可参考如下公式(1):
[0140][0141]
在上述公式(1)中,x表示随机变量,xi表示随机变量的第i种取值,n表示随机变量共有n种取值,p(xi)表示随机变量的取值为第i种取值的概率。对应于本技术实施例中,随机变量x共有两种取值,随机变量的取值为该两种取值各自的概率分别为,多个代码样本中恶意代码样本和非恶意代码样本各自的出现概率。
[0142]
计算机设备在确定代码样本的信息熵后,可以确定在不同代码行为类型作为已知条件下,代码样本为恶意代码样本还是非恶意代码样本的不确定性,也即确定初始行为类型特征集中每个代码行为类型的条件熵。其中,条件熵可以参考相关定义和公式进行计算。
[0143]
对于初始行为类型特征集中任一代码行为类型,计算机设备将信息熵与该代码行
为类型的条件熵做差,即可得到该代码行为类型的信息增益值。其中,信息熵用于表示随即变量本来的不确定性,而条件熵用于表示随机变量在某种已知条件下的不确定性,将两者做差,即表示在该种已知条件下,随机变量的不确定性减少的程度,两者差值即为信息增益值。结合该原理说明,很明显,某一代码行为类型的信息增益值的数值越大,则表示在该代码行为类型作为已知条件下(实际上指的是将代码样本已产生了该代码行为类型的代码行为,作为已知条件),代码样本为恶意代码样本,还是非恶意代码样本的不确定性减少的程度越大。由此表明,对于推断代码样本为恶意代码样本,还是为非恶意代码样本,该代码行为类型对于该推断过程结果导向的贡献程度比较大。也即,该代码行为类型对恶意代码检测的贡献程度较大。
[0144]
由上述内容可知,信息增益值越大则说明相应的代码行为类型对恶意代码检测的贡献程度越大。因此,计算机设备可以将初始行为类型特征集中的代码行为类型的信息增益值按照从大到小降序排序,并从中选取排序靠前的预设数量个信息增益值。基于这些信息增益值对应的代码行为类型,构建目标行为类型特征集。需要说明的是,信息增益值还可以由反向做差计算得到,也即将该代码行为类型的条件熵与信息熵做差。此时,信息增益值会被设置成反向含义,也即信息增益值越小则说明相应的代码行为类型对恶意代码检测的贡献程度越大,并可以通过反向选取构建目标行为类型特征集。实际实施过程中具体选用哪种方式,本技术实施例对此不作具体限定。
[0145]
在上述实施例中,由于可以计算不同代码行为类型的信息增益值,从而通过信息增益值可以有效判断出不同代码行为类型对恶意代码检测的贡献程度。由此作为依据,可以在初始行为类型特征集中尽量筛选出对恶意代码检测的贡献程度较大的代码行为类型,将这些代码行为类型用于检测模型的训练过程,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0146]
在一些实施例中,确定初始行为类型特征集中每个代码行为类型的条件熵,包括:
[0147]
针对初始行为类型特征集中每个代码行为类型对应的目标代码行为,获取多个样本行为记录集合中记录有目标代码行为的样本行为记录集合的第一数量、及未记录目标代码行为的样本行为记录集合的第二数量;在多个样本行为记录集合中记录有目标代码行为的样本行为记录集合所对应的代码样本中,确定恶意代码样本的第三数量和非恶意代码样本的第四数量;在多个样本行为记录集合中未记录目标代码行为的样本行为记录集合所对应的代码样本中,确定恶意代码样本的第五数量和非恶意代码样本的第六数量;根据第一数量、第二数量、第三数量、第四数量、第五数量和第六数量,计算任一代码行为类型的条件熵。
[0148]
具体地,对于初始行为类型特征集中的任一代码行为类型,可将该代码行为类型对应的代码行为作为目标代码行为。可以理解的是,多个代码样本中可能有些代码样本在运行过程中产生了该目标代码行为,也可能有些代码样本在运行过程中没有产生该目标代码行为。由此,多个样本行为记录集合中可能有些样本行为记录集合中记录有该目标代码行为,可能有些样本行为记录集合中未记录该目标代码行为。因此,计算机设备可以先确定多个样本行为记录集合中哪些样本行为记录集合中记录有该目标代码行为,并统计第一数量;还可以确定哪些样本行为记录集合中未记录该目标代码行为,并统计第二数量。
[0149]
而对于多个样本行为记录集合中记录有该目标代码行为的样本行为记录集合,计
算机设备还可以确定这些样本行为记录集合所对应的所有代码样本中,哪些代码样本为恶意代码样本,并统计第三数量;还可以确定哪些代码样本为非恶意代码样本,并统计第四数量。而对于多个样本行为记录集合中未记录该目标代码行为的样本行为记录集合,计算机设备还可以确定这些样本行为记录集合所对应的所有代码样本中,哪些代码样本为恶意代码样本,并统计第五数量;还可以确定哪些代码样本为非恶意代码样本,并统计第六数量。
[0150]
对于任一代码行为类型,计算机设备根据上述提及的第一数量至第六数量,计算该代码行为类型的条件熵的过程,包括:根据第一数量和第二数量,计算目标代码行为在多个样本行为记录集合中出现的第一概率和不出现的第二概率;根据第三数量和第四数量,计算在出现目标代码行为的前提下代码样本为恶意代码样本的第三概率和为非恶意代码样本的第四概率;根据第五数量和第六数量,计算在不出现目标代码行为的前提下代码样本为恶意代码样本的第五概率和为非恶意代码样本的第六概率;根据第一概率至第六概率,计算该代码行为类型的条件熵。
[0151]
其中,根据第一概率至第六概率,计算该代码行为类型的条件熵的过程可以包括:根据第三概率和第四概率,计算在出现目标代码行为的前提下代码样本的第一信息熵;根据第五概率和第六概率,计算在不出现目标代码行为的前提下代码样本的第二信息熵;计算第一信息熵与第一概率的乘积,计算第二信息熵与第二概率的乘积,将两个乘积之和作为该代码行为类型的条件熵。具体地,上述条件熵的计算过程可参考如下公式(2):
[0152][0153]
在上述公式(2)中,h(y/x)中的y表示随机变量,x表示随机变量x的给定条件,整体表示随机变量y在随机变量x的给定条件下的不确定性。x表示具体的给定条件,x∈x表示x属于随机变量x的所有给定条件中的一种,p(x)表示x这种具体的给定条件的出现概率。h(y/x=x)表示随机变量y在x=x这种具体的给定条件下的信息熵。
[0154]
为了便于理解,以多个代码样本各自的恶意属性的样本标签和样本行为记录集合中的内容参考如下表1所示为例:
[0155]
表1
[0156]
命令执行代码注入内存驻留是否为恶意代码样本有有有是无有无是有无无否
[0157]
其中,表中第二行、第三行和第四行即对应一个代码样本,第一行表示该代码样本的样本行为记录集合中记录有“命令执行”、“代码注入”和“内存驻留”这三种类型的样本代码行为,且该代码样本为恶意代码样本。
[0158]
基于上表1和上述公式(1),可以先计算出代码样本的信息熵为:-(2/3)*log(2/3)-(1/3)*log(1/3)=0.2763。对于“命令执行”这一代码行为类型,上述公式(2)中随机变量的x的取值为“有”或者“无”,分别代表“样本行为记录集合中记录有命令执行这一类型代码行为”这一具体的给定条件,以及“样本行为记录集合中未记录命令执行这一类型代码行为”这一具体的给定条件。
[0159]
由于表2对应的3个样本行为记录集合中仅有2个样本行为记录集合中记录有“命
令执行”这一类型的目标代码行为,从而第一数量为2,第二数量为1。由于表2中仅有第二行和第四行分别对应的样本行为记录集合中记录有“命令执行”这一类型的目标代码行为,而其中第二行对应的代码样本为恶意代码样本,而第四行对应的代码样本为非恶意代码样本,从而第三数量为1,第四数量为1。由于表2中仅有第三行对应的样本行为记录集合中未记录“命令执行”这一类型的目标代码行为,且第三行对应的代码样本为恶意代码样本,从而第五数量为1,第六数量为0。
[0160]
基于上述各个数量,可以计算出上述公式(2)中不同因式的数值。其中,p(x=“有”)=第一数量/(第一数量+第二数量)=2/3。p(x=“无”)=第二数量/(第一数量+第二数量)=1/3。h(y/x=x)可参考上述公式(1)的计算过程,h(y/x=“有”)=-[第三数量/(第三数量+第四数量)]*log[第三数量/(第三数量+第四数量]-[第四数量/(第三数量+第四数量)]*log[第四数量/(第三数量+第四数量]=-(1/2)*log(1/2)-(1/2)*log(1/2)=0.301。
[0161]
h(y/x=“无”)=-[第五数量/(第五数量+第六数量)]*log[第五数量/(第五数量+第六数量)]-[第六数量/(第五数量+第六数量)]*log[第六数量/(第五数量+第六数量)]=-1*log(1)-0=0。结合上述各项数值,可以计算得到“命令执行”这一代码类型的条件熵为(2/3)*0.301+(1/3)*0=0.2。
[0162]
上述实施例中,由于可以计算不同代码行为类型的条件熵,而根据不同代码行为类型的条件熵可以计算不同代码行为类型的信息增益值,从而通过信息增益值可以有效判断出不同代码行为类型对恶意代码检测的贡献程度。由此作为依据,可以在初始行为类型特征集中尽量筛选出对恶意代码检测的贡献程度较大的代码行为类型,将这些代码行为类型用于检测模型的训练过程,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0163]
上述内容主要是计算每一代码行为类型的信息增益,从而以此为依据,筛选出对恶意代码检测的贡献程度较大的代码行为类型,并以此构建目标行为类型特征集的方式。实际实施过程中,还可以有其它方式构建目标行为类型特征集。由此,在一些实施例中,目标行为类型特征集是通过目标行为类型特征集构建步骤获得的,目标行为类型特征集构建步骤包括:
[0164]
获取初始行为类型特征集和多个代码样本相应的多个样本行为记录集合;针对初始行为类型特征集中每个代码行为类型对应的目标代码行为,参考多个样本行为记录集合中各自记录的样本代码行为,在多个代码样本中,确定样本行为记录集合中记录有目标代码行为的代码样本,并作为目标代码样本;计算目标代码样本中的非恶意代码样本在多个代码样本中非恶意代码样本中的第一占比;计算目标代码样本中的恶意代码样本在多个代码样本中恶意代码样本中的第二占比;根据第一占比和第二占比,获取每个代码行为类型对恶意代码检测的贡献程度;根据每一代码行为类型对恶意代码检测的贡献程度,对初始行为类型特征集进行筛选,获得目标行为类型特征集。
[0165]
具体地,关于初始行为类型特征集的相关说明可参考之前实施例的内容,此处不赘述。对于“命令执行”这一代码行为类型,结合上述表1,计算机设备可以确定样本行为记录集合中记录有目标代码行为的代码样本为表1中第二行和第四行对应的代码样本,并可作为目标代码样本。其中,计算第一占比的过程可参考如下公式(3):
[0166]
rb=nb(t)/sb(t);
ꢀꢀ
(3)
[0167]
在上述公式(3)中,nb(t)表示目标代码样本中的非恶意代码样本的数量,sb(t)表示多个代码样本中非恶意样本的数量,rb表示第一占比。结合上述表1,nb(t)的数值为1,而sb(t)的数值为1,从而rb也为1。
[0168]
计算第一占比的过程可参考如下公式(4):
[0169]rm
=nm(t)/sm(t);
ꢀꢀ
(4)
[0170]
在上述公式(4)中,nm(t)表示目标代码样本中的恶意代码样本的数量,sm(t)表示多个代码样本中恶意样本的数量,rm表示第二占比。结合上述表1,nm(t)的数值为1,而sm(t)的数值为2,从而rm为0.5。
[0171]
结合上述计算过程可知,第一占比可以反映出现目标代码行为的非恶意代码样本在所有非恶意代码样本中的占比,第二占比可以反映出现目标代码行为的恶意代码样本在所有恶意代码样本中的占比。可以理解的是,第二占比相对于第一占比越大,则说明该目标代码行为对应的代码行为类型与恶意代码关联更紧密,恶意代码产生的代码行为中更容易出现该目标代码行为。因此,实际实施过程中,计算机设备可计算第二占比与第一占比之间的比值,并作为该目标代码行为对应的代码行为类型对恶意代码检测的贡献程度。当然,实际实施过程中,还可以采用其它方式计算贡献程度,如分别对第二占比和第一占比取负对数值,将两者之间的负对数值差值作为该代码行为类型对恶意代码检测的贡献程度,本技术实施例不对计算方式作具体限定。
[0172]
在计算得到每一代码行为类型对恶意代码检测的贡献程度后,计算机设备可以对初始行为类型特征集中的代码行为类型进行筛选。其中,筛选方式可以阈值比较的方式,本技术实施例对此不作具体限定。以采用计算第二占比与第一占比之间的比值,计算代码行为类型对恶意代码检测的贡献程度为例,对于任一代码行为类型,若计算得到其对应的比值为3,而阈值为2,则由于比值大于阈值,从而可将该代码行为类型添加至目标行为类型特征集。
[0173]
在上述实施例中,由于可以计算不同代码行为类型对恶意代码检测的贡献程度,并以不同代码行为类型的贡献程度为依据,在初始行为类型特征集中尽量筛选出对恶意代码检测的贡献程度较大的代码行为类型,将这些代码行为类型用于检测模型的训练过程,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0174]
在之前实施例中提及过,目标行为类型特征集中包括的代码行为类型并非是一成不变的。可以理解的是,若目标行为类型特征集能够经过多次有方向的更新(朝产出对恶意代码检测的贡献程度尽可能较大的代码行为类型的方向),则可以提高检测模型的训练效果。基于该说明,在一些实施例中,目标行为类型特征集通过目标行为类型特征集更新步骤进行更新,目标行为类型特征集更新步骤包括:
[0175]
获取行为类型特征集种群,行为类型特征集种群包括至少一个行为类型特征集;对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理,直至达到更新终止条件,获得最终更新后的行为类型特征集种群;在最终更新后的行为类型特征集种群中,筛选出目标行为类型特征集。
[0176]
其中,行为类型特征集种群可以是基于已知的代码行为类型任意组合所形成的,也可以是基于经验判断的、可能会具有恶意性的代码行为类型进行组合所形成的,本技术实施例不对行为类型特征集种群的形成方式作具体限定。
[0177]
可以理解的是,每次迭代更新处理,计算机设备可以是对行为类型特征集种群中的部分行为类型特征集作代码行为类型的更新,还可以对全部行为类型特征集作代码行为类型的更新,本技术实施例对此不作具体限定。另外,所谓“对行为类型特征集作代码行为类型的更新”,主要是对行为类型特征集中包括的代码行为类型进行变化。其中,变化方式可以是之前实施例提及的聚合和拆解,具体如何变化可参考之前实施例的内容,此处不再赘述。
[0178]
另外,更新终止条件可以是为尽可能产出对恶意代码检测的贡献程度较大的代码行为类型而设置的。由此,可以结合与恶意代码检测的贡献程度相关联的评价指标,设置更新终止条件,如可以结合上述提及的信息增益值设置更新终止条件,本技术实施例对此不作具体限定。
[0179]
还可以理解的是,迭代更新处理的次数越多,则越可能产出新的代码行为类型。在产生新的代码行为类型的范畴下,迭代更新处理过程相当于向外探索的过程,可以使得行为类型特征集种群所覆盖的代码行为类型不再局限于现存的代码行为类型,而是逐步拓展代码行为类型的多样性,为寻找全局最优解提供可能。由此,更新终止条件还可以为使得能够迭代更新处理足够多的次数而设置,如设置为迭代2000次。
[0180]
计算机设备每次在完成迭代更新处理后,均可以得到迭代更新处理后的行为类型特征集种群,上次迭代更新处理得到的行为类型特征集种群可以作为下次迭代更新处理的基础。在达到更新终止条件后,计算机设备最后一次进行迭代更新处理所得到的行为类型特征集种群,即为最终更新后的行为类型特征集种群。计算机设备可以在最终更新后的行为类型特征集种群中,任意筛选出目标行为类型特征集。也可以是按照上述提及的,结合与恶意代码检测的贡献程度相关联的评价指标进行筛选,本技术实施例对此不作具体限定。
[0181]
在上述实施例中,通过基于更新终止条件,对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理。由于更新终止条件可以结合与恶意代码检测的贡献程度相关联的评价指标进行设置,从而后续可尽可能筛选出包含有对恶意代码检测的贡献程度较大的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。与此同时,通过多次迭代更新处理过程,可以使得检测模型的检测性能不断得到提升。另外,由于更新终止条件还可以拓展代码行为类型的多样性为考量进行设置,从而使得筛选出的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0182]
上述实施例提及了可以是基于经验判断的、可能会具有恶意性的代码行为类型进行组合所形成的。由此,在一些实施例中,行为类型特征集种群通过行为类型特征集种群构建步骤获得的,行为类型特征集种群的构建步骤,包括:
[0183]
获取初始行为类型特征集和多个代码样本的多个样本行为记录集合;对于初始行为类型特征集中的每一代码行为类型,根据每一代码行为类型对应的代码行为在多个样本行为记录集合中的分布,以及多个代码样本中恶意代码样本与非恶意代码样本的分布,计算每一代码行为类型对恶意代码检测的贡献程度;根据每一代码行为类型对恶意代码检测的贡献程度,对初始行为类型特征集进行筛选,获得筛选出的代码行为类型;对筛选出的代码行为类型进行组合,获得行为类型特征集种群。
[0184]
具体地,基于每一代码行为类型对应的代码行为在多个样本行为记录集合中的分布,以及多个代码样本中恶意代码样本与非恶意代码样本的分布,计算机设备可以计算得到每一代码行为类型的条件熵。由此,结合上述实施例中关于信息增益值的相关计算说明,可以将每一代码行为类型的信息增益值作为对恶意代码检测的贡献程度。
[0185]
另外,基于每一代码行为类型对应的代码行为在多个样本行为记录集合中的分布,以及多个代码样本中恶意代码样本与非恶意代码样本的分布,计算机设备还可以计算得到出现目标代码行为的非恶意代码样本在所有非恶意代码样本中的第一占比,以及出现目标代码行为的恶意代码样本在所有恶意代码样本中的第二占比。由此,结合上述实施例中关于第一占比和第二占比的相关计算说明,计算机设备可以计算得到每一代码行为类型对恶意代码检测的贡献程度。当然,实际实施过程中除了上述两种方式之外,还可以有其它方式计算得到每一代码行为类型对恶意代码检测的贡献程度,本技术实施例对此不作具体限定。
[0186]
对于后续的筛选过程,计算机设备可以选取按照贡献程度从大到小排序后的前预设数量个代码行为类型作为筛选出的代码行为类型。另外,对筛选出的代码行为类型进行组合的过程,可以是任意组合,也可以是按照某些规则组合,如使得行为类型特征集种群中每一行为类型特征集包括的代码行为类型数量相同,本技术实施例对此不作具体限定。
[0187]
在上述实施例中,由于在对行为类型特征集种群作迭代更新处理之前,可以按照代码行为类型对恶意代码检测的贡献程度,筛选出贡献程度尽量大的代码行为类型,并基于此构建行为类型特征集种群,从而使得后续在基于行为类型特征集种群作迭代更新处理,以筛选出目标行为类型特征集时,可以尽可能筛选出包含有贡献程度较大的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0188]
在一些实施例中,对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理,包括:
[0189]
选取本次迭代待更新的行为类型特征集种群中至少部分行为类型特征集;对选取的每一行为类型特征集中的至少部分代码行为类型作更新处理;基于经过训练的检测模型,对经过代码行为类型的更新处理后的行为类型特征集种群中每一行为类型特征集进行检测,根据相应的检测结果确定本次迭代更新处理后的行为类型特征集种群。
[0190]
可以理解的是,计算机设备每次迭代更新处理可以不对行为类型特征集种群中的全部行为类型特征集作迭代给更新处理,而是可以选取至少部分的行为类型特征集作为迭代更新处理目标,以使得每次迭代更新处理之前,行为类型特征集种群可以始终留存一些既有的代码行为类型,而选取至少部分代码行为类型作更新处理也是同理。其中,更新处理过程可参考之前实施例的内容,此处不再赘述。
[0191]
另外,实际实施过程中,计算机设备在每次迭代更新处理后,可以直接将本次迭代更新处理结果作为本次迭代更新处理后的行为类型特征集种群。当然,计算机设备也可以对本次迭代更新处理结果作进一步处理,如根据对行为类型特征集种群中每一行为类型特征集进行检测的检测结果,确定本次迭代更新处理后的行为类型特征集种群。
[0192]
其中,“对行为类型特征集种群中每一行为类型特征集进行检测的检测结果”,实际上可以是参考行为类型特征集种群中的行为类型特征集,基于代码样本进行检测的检测
结果。检测结果之所以可以作为进一步处理的依据,是因为代码样本的样本标签已知,与检测结果进行对比,即可评价所参考的行为类型特征集对于恶意代码检测的贡献程度。需要说明的是,本技术实施例中之所以使用“经过训练的检测模型”,主要是未经过训练的检测模型不能提供相对准确的检测结果,进而不能作为评价行为类型特征集对于恶意代码检测的贡献程度的客观依据。
[0193]
计算机设备可以通过计算所参考的每种行为类型特征集所对应的正确检测比率,以此作为进一步处理的依据。当然,实际实施过程中,还可以采用其它依据及方式作进一步处理,本技术实施例对此不作具体限定。
[0194]
在上述实施例中,由于在每次迭代更新处理后,可以基于本次迭代更新处理结果中每一行为类型特征集对于恶意代码检测的贡献程度,对本次迭代更新处理结果作进一步处理,以确定本次迭代更新处理后的行为类型特征集种群,从而可以尽量筛选出对于恶意代码检测的贡献程度较大的行为类型特征集,并基于此构建行为类型特征集种群,从而使得后续在基于行为类型特征集种群作迭代更新处理,以筛选出目标行为类型特征集时,可以尽可能筛选出包含有贡献程度较大的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。与此同时,通过多次迭代更新处理过程,可以使得检测模型的检测性能不断得到提升。另外,由于每次迭代更新处理中的进一步处理过程,可以减少下次迭代更新处理的数据量,从而可以节省计算设备的处理资源,提高处理性能。
[0195]
在一些实施例中,基于经过训练的检测模型,对经过代码行为类型的更新处理后的行为类型特征集种群中每一行为类型特征集进行检测,根据相应的检测结果确定本次迭代更新处理后的行为类型特征集种群,包括:
[0196]
在经过代码行为类型的更新处理后的行为类型特征集种群中,获取每一行为类型特征集对应的样本行为特征组集合和样本标签集合,每一样本行为特征组集合均是参考对应的行为类型特征集所生成的;将每一样本行为特征组集合中每一样本行为特征组输入至经过训练的检测模型,获得每一样本行为特征组集合对应的检测结果集合;根据每一行为类型特征集对应的检测结果集合和样本标签集合,在经过代码行为类型的更新处理后的行为类型特征集种群中筛选出至少部分行为类型特征集。
[0197]
具体地,对于任一行为类型特征集,该行为类型特征集对应的样本行为特征组集合,可以是参考该行为类型特征集,基于代码样本的样本行为记录集合所记录样本代码行为的代码行为类型所生成的。具体实现过程可参考之前实施例的内容,此处不再赘述。
[0198]
根据每一行为类型特征集对应的检测结果集合和样本标签集合,计算机设备可以计算出每一行为类型特征集对应的损失函数值。根据每一行为类型特征集对应的损失函数值,可以对经过代码行为类型的更新处理后的行为类型特征集种群进行筛选。其中,计算损失函数值所使用的损失函数可以为回归损失函数、均方差损失函数或者交叉熵损失函数等,本技术实施例对此不作具体限定。以损失函数值越小代表检测模型检测效果越好为例,可以对行为类型特征集种群中每一行为类型特征集对应的损失函数值按照从小到大排序,从中选取前预设数量个行为类型特征集作为筛选出的至少部分行为类型特征集。
[0199]
在上述实施例中,由于在每次迭代更新处理后,可以基于本次迭代更新处理结果中每一行为类型特征集对于恶意代码检测的贡献程度,对本次迭代更新处理结果作进一步
筛选,以确定本次迭代更新处理后的行为类型特征集种群,从而可以尽量筛选出对于恶意代码检测的贡献程度较大的行为类型特征集,并基于此构建行为类型特征集种群,从而使得后续在基于行为类型特征集种群作迭代更新处理,以筛选出目标行为类型特征集时,可以尽可能筛选出包含有贡献程度较大的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。与此同时,通过多次迭代更新处理过程,可以使得检测模型的检测性能不断得到提升。另外,由于每次迭代更新处理中的进一步筛选过程,可以减少下次迭代更新处理的数据量,从而可以节省计算设备的处理资源,提高处理性能。
[0200]
上述实施例主要提供的是基于检测模型的损失函数,计算每一行为类型特征集对应的损失函数值,并以此对行为类型特征集种群进行筛选的过程。当然,实际实施过程中,还可以采用其它方式进行筛选。由此,在一些实施例中,根据每一行为类型特征集对应的检测结果集合和样本标签集合,在经过代码行为类型的更新处理后的行为类型特征集种群中筛选出至少部分行为类型特征集,包括:
[0201]
根据每一行为类型特征集对应的检测结果集合和样本标签集合,获取每一行为类型特征集在用于恶意代码检测时的检测效果评价值;根据每一行为类型特征集的检测效果评价值,在经过代码行为类型的更新处理后的行为类型特征集种群中,筛选出按检测效果评价值降序排序时前预设数量个行为类型特征集。
[0202]
具体地,对于任一行为类型特征集,根据该行为类型特征集对应的检测结果集合和样本标签集合,实际上可以确定在以该行为类型特征集为参考依据的前提下,通过检测模型对多个代码样本进行检测时,有多少个代码样本被正确检测,有多少个代码样本本来是恶意代码样本却被误检成了非恶意代码样本,有多少个代码样本本来是非恶意代码样本却被误检成了恶意代码样本。
[0203]
很明显,上述提及的各个数量均可以直接用于或者间接参与对检测效果的评价,并都可以作为计算检测效果评价值的基础。为了便于理解,对于任一行为类型特征集,以该行为类型特征集对应的检测结果集合是基于多个代码样本所获取到的为例,该行为类型特征集的检测效果评价值可参考如下几种计算方式:
[0204]
(1)准确率
[0205]
具体计算过程可参考如下公式(5):
[0206][0207]
在上述公式(5)中,n
tp
表示多个代码样本中被识别为恶意代码样本而实际上也是恶意代码样本的数量,n
fp
表示多个代码样本中被识别为恶意代码样本而实际上是非恶意代码样本的数量。precision表示准确率,可以直接作为检测效果评价值。
[0208]
(2)召回率
[0209]
具体计算过程可参考如下公式(6):
[0210][0211]
在上述公式(6)中,n
tp
可参考上述公式(5)的定义,n
fn
表示多个代码样本中被识别为非恶意代码样本而实际上是恶意代码样本的数量。recall表示准确率,可以直接作为检
测效果评价值。
[0212]
(3)f1分数
[0213]
具体计算过程可参考如下公式(7):
[0214][0215]
在上述公式(7)中,f
1-score表示f1分数,可以直接作为检测效果评价值。f1分数是统计学中用来衡量二分类模型精确度的一种指标,可同时兼顾了分类模型的精确率和召回率,可以看作是模型精确率和召回率的一种调和平均。
[0216]
(4)入选概率
[0217][0218]
在上述公式(8)中,fiti表示行为类型特征集种群中第i个行为类型特征集对应的f1分数,n表示行为类型特征集种群中共有n个行为类型特征集,p(i)表示第i个行为类型特征集的入选概率,可以直接作为检测效果评价值。
[0219]
需要说明的是,上述内容相当于提供了四种类型的检测效果评价值,加上之前实施例提供的损失函数值,相当于提供了五种类型的检测效果评价值。实际实施过程中,可以选择其中一种进行筛选。对于上述提供的四种类型的检测效果评价值,一般是数值越大,代表检测效果越好。因此,在本技术实施例中,计算机设备可以对检测效果评价值进行从大到小的降序排序,并从中选取前预设数量个行为类型特征集。
[0220]
当然,实际实施过程中,计算机设备还可以选取上述提供的五种类型中的多种检测效果评价值进行筛选,本技术实施例对此不作具体限定。例如,可以同时选取五种,对每种检测效果评价值进行归一化,再对五种检测效果评价值各自对应的归一化结果进行加权求和,将最终求和结果作为最终的检测效果评价值。
[0221]
在上述实施例中,由于在每次迭代更新处理后,可以基于本次迭代更新处理结果中每一行为类型特征集在用于恶意代码检测时的检测效果评价值,对本次迭代更新处理结果作进一步筛选,以确定本次迭代更新处理后的行为类型特征集种群,从而可以尽量筛选出对于恶意代码检测的检测效果较好的行为类型特征集,并基于此构建行为类型特征集种群,从而使得后续在基于行为类型特征集种群作迭代更新处理,以筛选出目标行为类型特征集时,可以尽可能筛选出包含有检测效果较好的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。与此同时,通过多次迭代更新处理过程,可以使得检测模型的检测性能不断得到提升。另外,由于可以基于检测效果评价值对行为类型特征集作筛选,以减少下次迭代更新处理的数据量,从而可以节省计算设备的处理资源,提高处理性能。
[0222]
由之前实施例所陈述的内容可知,更新终止条件可以拓展代码行为类型的多样性为考量进行设置,还可以结合与恶意代码检测的贡献程度相关联的评价指标进行设置。基于该说明,在一些实施例中,更新终止条件包括经过代码行为类型的更新处理后的行为类型特征集种群中存在检测效果评价值大于预设阈值的行为类型特征集。
[0223]
可以理解的是,随着迭代更新处理过程的推进,行为类型特征集种群中的行为类
型特征集对应的检测效果应当是越来越好的,对恶意代码检测的贡献程度也应当是越来越高的。因此,在本技术实施例中,可将更新终止条件设置为更新后的行为类型特征集种群中存在检测效果评价值大于预设阈值的行为类型特征集。当然,实际实施过程中,更新终止条件还可以参考本技术实施例中的相关说明设置为包括其它多项内容,本技术实施例对此不作具体限定。
[0224]
在上述实施例中,通过基于更新终止条件,对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理。由于更新终止条件可以结合检测效果进行设置,从而后续可尽可能筛选出包含有对恶意代码检测的检测效果较好的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0225]
在一些实施例中,更新处理包括:不同代码行为类型之间的聚合、删减代码行为类型、增加代码行为类型、拆解代码行为类型或者变更代码行为类型中至少一种。
[0226]
具体地,如何对不同代码行为类型进行聚合,以及如何对代码行为类型进行拆解可参考之前实施例中的相关说明,此处不再赘述。删减代码行为类型指的是直接在行为类型特征集中删减代码行为类型,实际实施过程中可以从中随机删减;增加代码行为类型指的是直接在行为类型特征集中增加代码行为类型,实际实施中可以在已知的代码行为类型中随机选择添加,本技术实施例对此不作具体限定。
[0227]
代码行为类型的变更可以指的是对行为类型特征集中存在代码行为类型进行替换。而结合之前实施例陈述的,代码行为类型可以通过二进制编码进行表示。由此,本技术实施例在实现代码行为类型的变更时,除了直接替换之外,可以由二进制编码中特征位上的信息发生突变,从而变更原有代码行为类型。其中,突变的可以是其中一个特征位,也可以是多个特征位,本技术实施例对此不作具体限定。
[0228]
另外,对其中哪个特征位进行突变,可以完全随机,可以采用轮盘赌选择法进行选择,本技术实施例对此不作具体限定。最后,考虑到若随机突变,则可能会导致突变形成的二进制编码不存在任何一种已知的代码行为类型与其对应,突变结果不具备指代含义。为此,实际实施过程中,还可以设置突变边界限制条件,如保证突变结果存在已知的代码行为类型与其对应,本技术实施例对此不作具体限定。
[0229]
例如,某一代码行为类型的二进制编码为“001”,可以对其中二个特征位上的信息进行突变,如可将左起第二个特征位上的信息由“0”突变为1,并将左起将第三个特征位上的信息由“1”突变为“0”。结合之前实施例中二进制编码示例的相关说明可知,此次突变实际上是将代码行为类型由“命令执行”变更为了“代码注入”。
[0230]
在上述实施例中,通过采用不同的更新处理方式对代码行为类型作更新处理,可以拓展代码行为类型的多样性,从而使得筛选出的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0231]
在之前的实施例中提及过,样本行为记录集合中记录的样本代码行为对应的代码行为类型,可能会朝向贴合于目标行为类型特征集中代码行为类型的方向,发生某些变化。基于该说明,在一些实施例中,参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型,包括:
[0232]
对样本行为记录集合中记录的至少一部分样本代码行为进行重构,获得重构样本
行为类型;参考目标行为类型特征集,在重构样本行为类型中,确定属于目标行为类型特征集的样本行为类型。
[0233]
具体地,“重构”主要表示的是对样本行为记录集合中记录的至少一部分样本代码行为所对应的代码行为类型进行重构。其中,重构前的数据为代码行为类型,而重构后的结果为重构样本行为类型。重构前后并不改变数据属性,两者均为代码行为类型。另外,重构的方式可以包括代码行为类型的聚合、拆解和变更,本技术实施例对此不作具体限定。其中,聚合可以不限制于是2种代码行为类型的聚合,可以是更多种,本技术实施例对此不作具体限定。
[0234]
需要说明的是,在本技术实施例中提及的“对行为记录集合记录的至少一部分样本代码行为进行重构”中,之所以是至少一部分样本代码行为,是因为样本行为记录集合中可能有些样本代码行为没有“资格”重构。结合之前实施例中的示例,以样本行为记录集合所覆盖的代码行为类型包括a1、a2、b、c和e,而目标行为类型特征集中包括的代码行为类型包括a、b1、c和d为例。其中,a是由于a1和a2聚合形成的,而b是由b1和b2聚合形成的。由此,参考目标行为类型特征集,可以被重构的可能只有a1、a2和b,而c和e没有资格被重构,主要是因为参考目标行为类型特征集,实际并不存在c和e的重构路径。
[0235]
在上述示例中,样本行为记录集合的重构样本行为类型分别为a、b1、b2、c和e,而目标行为类型特征集中包括的代码行为类型包括a、b1、c和d,从而计算机设备可以确定出在所有的重构样本行为类型中,属于目标行为类型特征集的样本行为类型分别为a、b1和c。
[0236]
在上述实施例中,由于获得目标行为类型特征集的过程中,采用了不同的更新处理方式对代码行为类型作更新处理,为了保证输入项与目标行为类型特征集之间的一致性,从而才需要对样本行为记录集合中记录的至少一部分样本代码行为进行重构。而之所以作代码行为类型的更新处理,主要是为了拓展代码行为类型的多样性。由此,重构过程可以配合代码行为类型的更新处理过程,从而使得获得的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0237]
在一些实施例中,对样本行为记录集合中记录的至少一部分样本代码行为进行重构,包括:
[0238]
获取行为重构文件,行为重构文件用于记录将代码行为重构至目标行为类型特征集所包括的代码行为类型时,重构所需的代码行为类型和重构处理方式;在样本行为记录集合中记录的至少一部分样本代码行为属于行为重构文件中重构所需的代码行为类型的情况下,按照行为重构文件记录的相应重构处理方式,对至少一部分样本代码行为进行重构。
[0239]
其中,行为重构文件可以在之前实施例提及的迭代更新处理过程一并获取。具体地,在迭代更新处理过程中,会对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理。其中,更新处理可以包括删减、增加、聚合、拆解和变更。很明显,删减与增加的更新处理方式与重构无关,有关的主要是聚合、拆解和变更。
[0240]
在迭代更新处理过程,哪几种代码行为类型聚合为一种新的代码行为类型是可以被记录下的。与此同时,还可以记录下“聚合”的更新处理方式。反过来,后续若需要重构得到目标行为类型特征集中包括的某一代码行为类型时,该代码行为类型需要哪些代码行为
类型,基于之前记录的内容是可以获知的。与此同时,重构得到该代码行为类型需要怎样的重构处理方式(对应于之前记录的更新处理方式),也是可以获知的。由此,行为重构文件可以通过在迭代更新处理过程中进行记录所形成,且每次迭代更新处理过程中所形成的行为类型特征集均对应一个行为重构文件。由此,目标行为类型特征集也同样对应一个行为重构文件。
[0241]
为了便于理解,结合之前实施例中的示例,以样本行为记录集合所覆盖的代码行为类型包括a1、a2、b、c和e,且以目标行为类型特征集对应的行为重构文件中记录有两种重构路径为例。该两种重构路径分别为:
[0242]“1、重构处理方式:聚合;所需的代码行为类型包括a1和a2,重构结果为代码类型a”,还记录有“2、重构处理方式:拆解;所需的代码行为类型包括b,重构结果为代码类型b1和b2”。其中,上述所呈现的行为重构文件中的内容格式,只是其中一种示例,实际实施过程中可以根据需求设置,本技术实施例对此不作具体限定。
[0243]
由此,计算机设备在获取到行为重构文件后,可以确定样本行为记录集合中记录的、且属于行为重构文件中重构所需的代码行为类型为a1、a2和b。计算机设备按照行为重构文件记录的相应重构处理方式,可将a1和a2聚合成a,而将b拆解为b1和b2。
[0244]
在上述实施例中,由于获得目标行为类型特征集的过程中,采用了不同的更新处理方式对代码行为类型作更新处理,为了保证后续作为输入项的样本行为特征组与目标行为类型特征集之间的一致性,从而需要执行重构过程。而之所以作代码行为类型的更新处理,主要是为了拓展代码行为类型的多样性,从而重构过程可以配合代码行为类型的更新处理处理过程,使得获得的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0245]
在一些实施例中,样本行为特征组具有与目标行为类型特征集中的代码行为类型一一对应的特征位;样本行为特征组中,与属于目标行为类型特征集的样本行为类型对应的特征位为第一值,样本行为特征组中除去值为第一值特征位剩余的特征位为第二值。
[0246]
其中,第一值于第二值主要是为了表示两者互相区分,实际实施过程中第一值与第二值的具体取值,可以根据需求进行设置,如第一值为1,第二值为0,本技术实施例对此不作具体限定。
[0247]
为了便于理解,以样本行为特征组共有4个特征位,且特征位上的信息通过1和0进行表示为例。其中,第一个特征位在目标行为类型特征集中对应的代码行为类型为“命令执行”,第二个特征位对应的代码行为类型为“代码注入”,第三个特征位对应的代码行为类型为“内存驻留”,第四个特征位对应的代码行为类型为“凭据收集”。
[0248]
若基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型为“命令执行”和“凭据收集”,则计算机设备可以确定“命令执行”对应的特征位,也即第一个特征位的值为1;并可以确定“凭据收集”对应的特征位,也即第四个特征位的值为1;还可以确定其余剩下的特征位的值为0。由此,最后形成的样本行为特征组为“1001”。
[0249]
在上述实施例中,通过包括特征位的样本行为特征组,能够有效表示代码训练样本最终产生了哪些从属于目标行为类型特征集中代码行为类型的样本代码行为。由于样本
行为特征组本身只占用多个比特位的存储空间,从而可以尽量减少占用的存储资源。与此同时,由于只占用多个比特位的存储空间带来的是较少的数据量,从而可以减少后续处理的数据量,节省计算机设备的处理资源。
[0250]
上述实施例提及的主要是对一个检测模型进行训练过程中,实际实施过程中,还可以同时对多个检测模型进行训练,再从所有经过训练的检测模型中选择一个检测效果较佳的检测模型。基于该说明,在一些实施例中,检测模型和目标行为类型特征集的数量均为多个,每一检测模型均对应一个目标行为类型特征集;基于样本行为特征组和样本标签,训练检测模型之后,还包括:
[0251]
通过代码样本,对每一经过训练的检测模型进行测试,获得对应的目标行为类型特征集的检测效果评价值;根据每一目标行为类型特征集的检测效果评价值,从所有经过训练的检测模型中筛选出用于恶意代码检测的检测模型。
[0252]
其中,本技术实施例提及的“代码样本”与之前实施例提及的“代码样本”,可以是相同的代码样本,也可以是不同的代码样本,本技术实施例对此不作具体限定。由上述实施例的内容可知,每一经过训练的检测模型均对应一个目标行为类型特征集。由此,计算机设备可以计算出每一目标行为类型特征集的检测效果评价值。关于检测效果评价值的计算过程,可以参考上述实施例中“行为类型特征集在用于恶意代码检测时的检测效果评价值”的计算过程,此处不再赘述。计算机设备通过比较每一目标行为类型特征集的检测效果评价值,可以确定检测效果最佳的目标行为类型特征集,而该目标行为类型特征集对应的经过训练的检测模型,即为筛选出的,用于恶意代码检测的检测模型。
[0253]
需要说明的是,上述每一经过训练的检测模型在先前训练过程所使用的代码训练样本,可以是同一批次的相同样本,也可以是不同的样本。另外,本技术实施例提及的测试过程所使用的代码样本,每一经过训练的检测模型使用的也可以相同的代码样本,也可以是不同的代码样本呢,本技术实施例对此不作具体限定。由于代码训练样本可能是会不断生成的,从而实际实施过程中,还饿可以周期性地对检测模型进行迭代训练。
[0254]
在上述实施例中,由于可以同时对多个检测模型进行训练,并可以基于每一经过训练的检测模型所对应的检测效果评价值,从所有经过训练的检测模型中筛选出用于恶意代码检测的检测模型,从而可以尽量筛选出检测效果较佳的检测模型投入至后续对恶意代码的检测过程中使用,进而可以提高后续恶意代码的检测准确率。
[0255]
上述实施例主要是对恶意代码的检测模型进行训练的过程,实际实施过程中,还可以应用检测模型实现对恶意代码的检测。由此,在一些实施例中,如图3所示,提供了一种恶意代码的检测方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端或服务器)为例进行说明,包括以下步骤:
[0256]
302、获取目标代码的行为记录集合,行为记录集合记录有目标代码在运行后产生的代码行为。
[0257]
具体地,计算机设备可以在封闭的行为感知环境下运行目标代码。其中,行为感知环境被配置为对目标代码运行后产生的样本代码行为进行记录。计算机设备可以基于行为感知环境所记录的代码行为,构成目标代码的行为记录集合。
[0258]
304、获取目标行为类型特征集,目标行为类型特征集包括经过训练的检测模型检测恶意代码时所需的代码行为类型。
[0259]
由上述训练过程的相关实施例中的内容可知,经过训练的检测模型均对应一个目标行为类型特征集。由此,计算机设备在获取经过训练的检测模型时,可以同时获取对应的目标行为类型特征集。其中,目标行为类型特征集是如何生成的,可以参考上述训练过程的相关实施例中的内容,此处不再赘述。
[0260]
306、参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型。
[0261]
308、基于属于目标行为类型特征集的目标行为类型,生成目标代码的行为特征组。
[0262]
具体地,步骤306的实现过程可参考图2对应的实施例中步骤206的实现过程,步骤308的实现过程可参考图2对应的实施例中步骤208的实现过程,此处不再赘述。
[0263]
310、通过经过训练的检测模型,基于行为特征组进行恶意代码检测,获得目标代码的恶意属性。
[0264]
具体地,计算机设备将行为特征组输入至经过训练的检测模型,即可输出目标代码的恶意属性。其中,恶意属性可以有两种结果,分别为恶意代码和非恶意代码。
[0265]
上述恶意代码的检测方法,通过获取目标代码的行为记录集合,参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,生成目标代码的行为特征组,基于行为特征组,通过检测模型对目标代码进行检测。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0266]
另外,由于行为特征组是参考目标行为类型特征集并基于行为记录集合所生成的,而目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,从而行为特征组可以尽量反映出行为记录集合中代码行为的恶意程度,进而将行为特征组作为检测模型的输入项,可以提高恶意代码的检测准确率。
[0267]
最后,由于使用检测模型对代码进行检测,不需要像文件特征检测那样,频繁更新恶意代码特征库而导致占用存储资源不断增长,而是仅需更新样本对检测模型再次训练即可,也即检测模型本申不需要太占用存储资源,从而可以节省存储资源。与此同时,恶意代码特征库逐渐庞大也会导致后续检测过程中查找次数逐渐增多,从而会影响检测效率,并因占用太多处理资源而影响系统性能。而使用检测模型,只需输入输出过程即可得到预测结果,从而可以提高检测效率,并可降低对系统性能的影响。
[0268]
在一些实施例中,参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型,包括:
[0269]
对行为记录集合中记录的至少一部分代码行为进行重构,获得重构行为类型;参考目标行为类型特征集,在重构行为类型中,确定属于目标行为类型特征集的目标行为类型。
[0270]
具体地,计算机设备在对行为记录集合中记录的至少一部分代码行为进行重构时,可以通过如下过程实现:获取行为重构文件,行为重构文件用于记录将代码行为重构至目标行为类型特征集所包括的代码行为类型时,重构所需的代码行为类型和重构处理方
式;在行为记录集合中记录的至少一部分代码行为属于行为重构文件中重构所需的代码行为类型的情况下,按照行为重构文件记录的相应重构处理方式,对至少一部分代码行为进行重构。其中,重构具体过程可以参考上述训练过程的相关实施例中的内容,此处不再赘述。
[0271]
在上述实施例中,由于获得目标行为类型特征集的过程中,采用了不同的更新处理方式对代码行为类型作更新处理,为了保证后续作为输入项的行为特征组与目标行为类型特征集之间的一致性,从而需要执行重构过程。而之所以作代码行为类型的更新处理,主要是为了拓展代码行为类型的多样性,从而重构过程可以配合代码行为类型的更新处理处理过程,使得获得的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0272]
在一些实施例中,行为特征组具有与目标行为类型特征集中的代码行为类型一一对应的特征位;行为特征组中,与属于目标行为类型特征集的目标行为类型对应的特征位为第一值,行为特征组中除去值为第一值特征位剩余的特征位为第二值。
[0273]
具体地,行为特征组中特征位上的信息的获取方式、行为特征组中特征位的分布和指代含义,以及第一值和第二值的取值方式和指代含义,均可以参考上述训练过程的相关实施例中的内容,此处不再赘述。
[0274]
在上述实施例中,通过包括特征位的行为特征组,能够有效表示目标代码最终产生了哪些从属于目标行为类型特征集中代码行为类型的代码行为。由于行为特征组本身只占用多个比特位的存储空间,从而可以尽量减少占用的存储资源。与此同时,由于只占用多个比特位的存储空间带来的是较少的数据量,从而可以减少后续处理的数据量,节省计算机设备的处理资源。
[0275]
考虑到实际应用中产生的数据也可以继续作为代码训练样本,以对检测模型进行训练。由此,在一些实施例中,通过经过训练的检测模型,基于行为特征组进行恶意代码检测,获得目标代码的恶意属性之后,还包括:
[0276]
对外推送用于对目标代码的恶意属性进行检验的检验请求信息;获取基于检验请求信息所返回的检验结果,检验结果用于确定目标代码作为代码训练样本时的样本标签;基于目标代码所作为的代码训练样本和对应的样本标签,对检测模型进行再次训练。
[0277]
其中,计算机设备对外推送检验请求信息,可以是对其它计算机设备进行推送,如向其它移动终端进行推送。与此同时,推送方式可以是短信、邮件或者应用通知等,本技术实施例不对推送对象的类型和推送方式作具体限定。检验请求信息的主要作用可以为:请求信息收到方对之前对目标代码的检测结果进行确认。由此,检验请求信息中可以至少携带之前通过检测模型对目标代码的检测结果,也即目标代码的恶意属性。
[0278]
信息接收方在接收到检验请求信息后,可以对检验请求信息进行检验,并向计算机设备返回检验结果。其中,若信息接收方在对检验请求信息中携带的检测结果进行检验后,发现之前的检测结果是错误的,则可以对之前的检测结果进行修正,由检验结果携带修正信息返回至计算机设备。反之,信息接收方可以回复对之前检测结果的确认信息,由检验结果携带确认信息返回至计算机设备。
[0279]
计算机设备在获取检验结果后,可以基于检验结果确定目标代码作为代码训练样
本时的样本标签。具体地,若检验结果中携带有确认信息,则可以直接将之前的检测结果作为目标代码的样本标签。若检验结果中携带有修正信息,则可将修正信息所指向的正确检测结果作为目标代码的样本标签。计算机设备在获得目标代码所作为的代码训练样本和对应的样本标签后,可采用增量入库的方式将两者添加至样本数据库,后续需要时再用于训练,如按照每天、每周或者每月等方式周期性地进行训练;也可以直接采用监督式的训练方式,对检测模型进行再次训练。其中,再次训练的过程可参考上述训练过程的相关实施例中的内容,此处不再赘述。
[0280]
需要说明的是,除了通过将实际检测过程中获取到的目标代码作为代码训练样本之外,实际实施过程中,还可以通过人工逆向分析或者蜜罐引爆等方式获取用于作为代码训练样本的目标代码,并通过计算机设备向外推送目标代码的方式,以获取目标代码作为代码训练样本时的样本标签,从而将获取到的作为代码训练样本的目标代码和对应的样本标签,采用增量入库的方式添加至样本数据库。
[0281]
还需要说明的是,目标行为类型特征集可以被实时更新,更新方式可以包括对其拓展。由于目标行为类型特征集决定了检测模型的输入项,而目标行为类型特征集中设置的代码行为类型通常会被认为是有恶意性的代码行为,从而可以理解的是,在设置目标行为类型特征集中的代码行为类型时,设置代码行为类型的严苛程度,与后续参考目标行为类型特征集,通过检测模型对代码进行检测时的告警次数与频率相关。
[0282]
若设置代码行为类型较为严苛,则可能会导致一些较小程度影响计算机设备安全性的代码行为也会被触发告警,告警次数比较多,告警频率比较高。而实际上告警次数变多,可能带来的是误告警增多。因此,实际实施过程中可以基于对误告警的接受程度,设置目标行为类型特征集中的代码行为类型。
[0283]
在上述实施例中,由于可以通过向外推送用于对目标代码的恶意属性进行检验的检验请求信息,从而可以对误检测进行优化。与此同时,误检测的优化结果与正确检测的确认结果均可以作为代码训练样本,用于对检测模型进行自动训练,从而在攻防对抗中能够不断提升检测模型的检测性能。
[0284]
为了便于理解,如图4所示,提供了一种恶意代码的检测模型处理方法,以该方法应用于计算机设备(该计算机设备具体可以是图1中的终端或服务器)为例进行说明,包括以下步骤:
[0285]
步骤402、获取代码训练样本的样本行为记录集合,样本行为记录集合记录有相应的代码训练样本在运行后产生的样本代码行为。
[0286]
步骤404、获取行为类型特征集种群,行为类型特征集种群包括至少一个行为类型特征集。
[0287]
步骤406、对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理,直至达到更新终止条件,获得最终更新后的行为类型特征集种群。
[0288]
步骤408、在最终更新后的行为类型特征集种群中,筛选出目标行为类型特征集,目标行为类型特征集包括用于训练检测模型的代码行为类型。
[0289]
步骤410、对样本行为记录集合中记录的至少一部分样本代码行为进行重构,获得重构样本行为类型,参考目标行为类型特征集,在重构样本行为类型中,确定属于目标行为类型特征集的样本行为类型。
[0290]
步骤412、基于属于目标行为类型特征集的样本行为类型,生成代码训练样本的样本行为特征组。
[0291]
步骤414、获取用于表征代码训练样本的恶意属性的样本标签,基于样本行为特征组和样本标签,训练检测模型。
[0292]
在上述实施例中,通过获取代码训练样本的样本行为记录集合和目标行为类型特征集,参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,生成代码训练样本的样本行为特征组,基于样本行为特征组和样本标签,训练检测模型。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0293]
其次,通过基于更新终止条件,对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处理。由于更新终止条件可以结合与恶意代码检测的贡献程度相关联的评价指标进行设置,从而后续可尽可能筛选出包含有对恶意代码检测的贡献程度较大的代码行为类型的目标行为类型特征集,进而可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。与此同时,通过多次迭代更新处理过程,可以使得检测模型的检测性能不断得到提升。与此同时,由于更新终止条件还可以拓展代码行为类型的多样性为考量进行设置,从而使得筛选出的目标行为类型特征集不再局限于现存的代码行为类型,并提供了找到全局最优解的可能性,进而也可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0294]
另外,由于样本行为特征组是参考目标行为类型特征集并基于样本行为记录集合所生成的,而目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,从而样本行为特征组可以尽量反映出样本行为记录集合的代码行为恶意程度,进而将样本行为特征组作为检测模型的输入项,可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0295]
最后,由于使用检测模型对代码进行检测,不需要像文件特征检测那样,频繁更新恶意代码特征库而导致占用存储资源不断增长,而是仅需更新样本对检测模型再次训练即可,也即检测模型本申不需要太占用存储资源,从而可以节省存储资源。与此同时,恶意代码特征库逐渐庞大也会导致后续检测过程中查找次数逐渐增多,从而会影响检测效率,并因占用太多处理资源而影响系统性能。而使用检测模型,只需输入输出过程即可得到预测结果,从而可以提高检测效率,并可降低对系统性能的影响。
[0296]
本技术实施例还提供一种应用场景,该应用场景应用上述的恶意代码的检测模型处理方法,以计算机设备涉及到服务器为例进行说明。具体地,该恶意代码的检测模型处理方法在该应用场景的应用如下:
[0297]
在执行该方法之前,可以预先在终端侧与服务器侧共同构建终端恶意代码的检测环境。其中,该检测环境可以包括日志采集客户端、数据存储平台和机器学习平台。该检测环境的具体架构可参考图5,在图5中,“主机1”、“主机2”、“主机3”和“主机4”,均表示安装有日志采集客户端的终端。终端通过其上安装的日志采集客户端,采集进程运行日志,并将采集进程行为日志导入至服务器中的数据存储平台。数据存储平台可以对进程行为日志进行
清洗、整合以及打标签,以生成代码样本。而服务器中的机器学习平台可以用于存储检测模型,并从数据存储平台中获取代码样本,用于对检测模型进行训练。与此同时,服务器中机器学习平台可以获取待检测的目标代码,以实现对目标代码的检测。需要说明的是,为克服上述检测环境部署后难以自动迭代更新的问题,实际应用中的目标代码可以再次作为代码样本,用于对检测模型不断迭代更新优化,以提升模型的检测性能。
[0298]
基于上述关于检测环境的说明,恶意代码的检测模型处理方法的过程可以包括:服务器通过数据存储平台存储终端导入的进程行为日志,对进程行为日志进行清洗、整合和打标签,生成训练过程所需的各项数据。
[0299]
服务器从数据存储平台中获取代码训练样本的样本行为记录集合,并获取目标行为类型特征集。
[0300]
服务器参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型。服务器基于属于目标行为类型特征集的样本行为类型,生成代码训练样本的样本行为特征组。
[0301]
服务器中的机器学习平台,从数据存储平台中获取用于表征代码训练样本的恶意属性的样本标签;服务器中的机器学习平台基于样本行为特征组和样本标签,训练检测模型。
[0302]
本技术实施例还提供一种应用场景,该应用场景应用上述的恶意代码的检测方法,以计算机设备涉及到服务器为例进行说明。具体地,该恶意代码的检测方法在该应用场景的应用如下:
[0303]
在执行该方法之前,可以先将目标行为类型特征集和经过训练的检测模型部署至检测环境。其中,检测环境可参考上述应用场景实施例中的相关说明。检测模型的部署流程图可参考图6。
[0304]
服务器从终端侧获取目标代码的行为记录集合;在图6中,会话流为目标代码所产生的代码行为,会话流可以转为生成行为记录集合。
[0305]
服务器获取目标行为类型特征集;在图6中,服务器可以从迭代流程中对代码行为类型的迭代更新处理流程的输出中获取目标行为类型特征集,并可以从对检测模型的迭代训练流程中获取检测模型。
[0306]
服务器参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型;基于属于目标行为类型特征集的目标行为类型,生成目标代码的行为特征组。
[0307]
服务器将行为特征组输入至检测模型,通过检测模型,基于行为特征组进行恶意代码检测,得到目标代码的检测结果。其中,检测结果主要为目标代码的恶意属性。其中,某一段时间内的检测结果可参考如下表2:
[0308]
表2
[0309]
时间恶意行为执行是否检出2021年10月25日命令执行是2021年10月25日注入+命令执行是2021年10月25日收集凭据+命令执行是2021年10月25日持久化驻留+命令执行是
2021年11月09日注入+收集凭据是2021年11月09日注入+持久化驻留是2021年11月09日注入+翻查信息是
[0310]
在完成上述检测过程后,可以考虑对目标代码的检测结果经过检验后,将目标代码的检测结果与目标代码均作为样本用于迭代训练流程。该检验流程和迭代训练流程,具体框架流程可参考图7。现结合图7对检验流程和迭代训练流程进行说明:
[0311]
服务器向终端侧推送用于对目标代码的恶意属性进行检验的检验请求信息;检验请求信息可以携带对目标代码的检测结果。对应图7,可以是由模型文件记录检测结果,从模型文件中获取检测结果;再将检测结果通过告警工单推送至安全人员所使用的终端。其中,告警工单可以对应于检验请求信息。
[0312]
服务器获取终端侧返回的基于检验请求信息所返回的检验结果,也即对应于图7中安全人员返回的打标签结果。
[0313]
服务器根据目标代码所作为的代码训练样本和对应的样本标签,生成标签样本,并增量添加至样本数据库。后续可以用于对检测模型进行迭代训练,也可以用于对目标行为类型特征集进行代码行为类型的迭代更新处理。其中,新模型训练完成后,可以将新训练完成的模型和新生成的目标行为类型特征集部署至检测环境中。
[0314]
需要说明的是,上述应用场景为示意性的应用场景,用于帮助理解本技术的方案,并不用于限定本技术的实际应用场景。
[0315]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0316]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的恶意代码的检测模型处理方法的恶意代码的检测模型处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个恶意代码的检测模型处理装置实施例中的具体限定可以参见上文中对于恶意代码的检测模型处理方法的限定,在此不再赘述。
[0317]
在一些实施例中,如图8所示,提供了一种恶意代码的检测模型处理装置800,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一获取模块802、第二获取模块804、确定模块806、生成模块808和训练模块810,其中:
[0318]
第一获取模块802,用于获取代码训练样本的样本行为记录集合,样本行为记录集合记录有相应的代码训练样本在运行后产生的样本代码行为;
[0319]
第二获取模块804,用于获取目标行为类型特征集,目标行为类型特征集包括用于训练检测模型的代码行为类型;
[0320]
确定模块806,用于参考目标行为类型特征集,基于样本行为记录集合所记录样本
代码行为的代码行为类型,确定属于目标行为类型特征集的样本行为类型;
[0321]
生成模块808,用于基于属于目标行为类型特征集的样本行为类型,生成代码训练样本的样本行为特征组;
[0322]
训练模块810,用于获取用于表征代码训练样本的恶意属性的样本标签,基于样本行为特征组和样本标签,训练检测模型。
[0323]
在一些实施例中,第一获取模块802,用于在封闭的行为感知环境下运行代码训练样本,行为感知环境被配置为对代码训练样本运行后产生的样本代码行为进行记录;基于行为感知环境所记录的样本代码行为,构成代码训练样本的样本行为记录集合。
[0324]
在一些实施例中,目标行为类型特征集是通过目标行为类型特征集构建步骤获得的;该装置还包括:
[0325]
第一构建模块,用于获取初始行为类型特征集和多个代码样本相应的多个样本行为记录集合;确定多个代码样本中恶意代码样本和非恶意代码样本各自的出现概率,根据各自的出现概率,计算代码样本的信息熵;确定初始行为类型特征集中每个代码行为类型的条件熵;根据信息熵和每个代码行为类型的条件熵,确定每个代码行为类型的信息增益值;信息增益值用于指示相应的代码行为类型对恶意代码检测的贡献程度;从初始行为类型特征集中,选取按信息增益值降序排序时前预设数量个信息增益值对应的代码行为类型,构建目标行为类型特征集。
[0326]
在一些实施例中,第一构建模块,还用于针对初始行为类型特征集中每个代码行为类型对应的目标代码行为,获取多个样本行为记录集合中记录有目标代码行为的样本行为记录集合的第一数量、及未记录目标代码行为的样本行为记录集合的第二数量;在多个样本行为记录集合中记录有目标代码行为的样本行为记录集合所对应的代码样本中,确定恶意代码样本的第三数量和非恶意代码样本的第四数量;在多个样本行为记录集合中未记录目标代码行为的样本行为记录集合所对应的代码样本中,确定恶意代码样本的第五数量和非恶意代码样本的第六数量;根据第一数量、第二数量、第三数量、第四数量、第五数量和第六数量,计算任一代码行为类型的条件熵。
[0327]
在一些实施例中,目标行为类型特征集是通过目标行为类型特征集构建步骤获得的;该装置还包括:
[0328]
第二构建模块,用于获取初始行为类型特征集和多个代码样本相应的多个样本行为记录集合;针对初始行为类型特征集中每个代码行为类型对应的目标代码行为,参考多个样本行为记录集合中各自记录的样本代码行为,在多个代码样本中,确定样本行为记录集合中记录有目标代码行为的代码样本,并作为目标代码样本;计算目标代码样本中的非恶意代码样本在多个代码样本中非恶意代码样本中的第一占比;计算目标代码样本中的恶意代码样本在多个代码样本中恶意代码样本中的第二占比;根据第一占比和第二占比,获取每个代码行为类型对恶意代码检测的贡献程度;根据每一代码行为类型对恶意代码检测的贡献程度,对初始行为类型特征集进行筛选,获得目标行为类型特征集。
[0329]
在一些实施例中,目标行为类型特征集通过目标行为类型特征集更新步骤进行更新;该装置还包括:
[0330]
更新模块,用于获取行为类型特征集种群,行为类型特征集种群包括至少一个行为类型特征集;对行为类型特征集种群中的行为类型特征集作代码行为类型的迭代更新处
理,直至达到更新终止条件,获得最终更新后的行为类型特征集种群;在最终更新后的行为类型特征集种群中,筛选出目标行为类型特征集。
[0331]
在一些实施例中,更新模块,还用于获取初始行为类型特征集和多个代码样本的多个样本行为记录集合;对于初始行为类型特征集中的每一代码行为类型,根据每一代码行为类型对应的代码行为在多个样本行为记录集合中的分布,以及多个代码样本中恶意代码样本与非恶意代码样本的分布,计算每一代码行为类型对恶意代码检测的贡献程度;根据每一代码行为类型对恶意代码检测的贡献程度,对初始行为类型特征集进行筛选,获得筛选出的代码行为类型;对筛选出的代码行为类型进行组合,获得行为类型特征集种群。
[0332]
在一些实施例中,更新模块,还用于选取本次迭代待更新的行为类型特征集种群中至少部分行为类型特征集;对选取的每一行为类型特征集中的至少部分代码行为类型作更新处理;基于经过训练的检测模型,对经过代码行为类型的更新处理后的行为类型特征集种群中每一行为类型特征集进行检测,根据相应的检测结果确定本次迭代更新处理后的行为类型特征集种群。
[0333]
在一些实施例中,更新模块,还用于在经过代码行为类型的更新处理后的行为类型特征集种群中,获取每一行为类型特征集对应的样本行为特征组集合和样本标签集合,每一样本行为特征组集合均是参考对应的行为类型特征集所生成的;将每一样本行为特征组集合中每一样本行为特征组输入至经过训练的检测模型,获得每一样本行为特征组集合对应的检测结果集合;根据每一行为类型特征集对应的检测结果集合和样本标签集合,在经过代码行为类型的更新处理后的行为类型特征集种群中筛选出至少部分行为类型特征集。
[0334]
在一些实施例中,更新模块,还用于根据每一行为类型特征集对应的检测结果集合和样本标签集合,获取每一行为类型特征集在用于恶意代码检测时的检测效果评价值;根据每一行为类型特征集的检测效果评价值,在经过代码行为类型的更新处理后的行为类型特征集种群中,筛选出按检测效果评价值降序排序时前预设数量个行为类型特征集。
[0335]
在一些实施例中,更新终止条件包括经过代码行为类型的更新处理后的行为类型特征集种群中存在检测效果评价值大于预设阈值的行为类型特征集。
[0336]
在一些实施例中,更新处理包括:不同代码行为类型之间的聚合、删减代码行为类型、增加代码行为类型、拆解代码行为类型或者变更代码行为类型中至少一种。
[0337]
在一些实施例中,确定模块806,用于对样本行为记录集合中记录的至少一部分样本代码行为进行重构,获得重构样本行为类型;参考目标行为类型特征集,在重构样本行为类型中,确定属于目标行为类型特征集的样本行为类型。
[0338]
在一些实施例中,确定模块806,还用于获取行为重构文件,行为重构文件用于记录将代码行为重构至目标行为类型特征集所包括的代码行为类型时,重构所需的代码行为类型和重构处理方式;在样本行为记录集合中记录的至少一部分样本代码行为属于行为重构文件中重构所需的代码行为类型的情况下,按照行为重构文件记录的相应重构处理方式,对至少一部分样本代码行为进行重构。
[0339]
在一些实施例中,样本行为特征组具有与目标行为类型特征集中的代码行为类型一一对应的特征位;样本行为特征组中,与属于目标行为类型特征集的样本行为类型对应的特征位为第一值,样本行为特征组中除去值为第一值特征位剩余的特征位为第二值。
[0340]
在一些实施例中,检测模型和目标行为类型特征集的数量均为多个,每一检测模型均对应一个目标行为类型特征集;训练模块810,还用于通过代码样本,对每一经过训练的检测模型进行测试,获得对应的目标行为类型特征集的检测效果评价值;根据每一目标行为类型特征集的检测效果评价值,从所有经过训练的检测模型中筛选出用于恶意代码检测的检测模型。
[0341]
上述恶意代码的检测模型处理装置,通过获取代码训练样本的样本行为记录集合和目标行为类型特征集,参考目标行为类型特征集,基于样本行为记录集合所记录样本代码行为的代码行为类型,生成代码训练样本的样本行为特征组,基于样本行为特征组和样本标签,训练检测模型。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0342]
另外,由于样本行为特征组是参考目标行为类型特征集并基于样本行为记录集合所生成的,而目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,从而样本行为特征组可以尽量反映出样本行为记录集合的代码行为恶意程度,进而将样本行为特征组作为检测模型的输入项,可以提高检测模型的训练效果,以提高后续恶意代码的检测准确率。
[0343]
最后,由于使用检测模型对代码进行检测,不需要像文件特征检测那样,频繁更新恶意代码特征库而导致占用存储资源不断增长,而是仅需更新样本对检测模型再次训练即可,也即检测模型本申不需要太占用存储资源,从而可以节省存储资源。与此同时,恶意代码特征库逐渐庞大也会导致后续检测过程中查找次数逐渐增多,从而会影响检测效率,并因占用太多处理资源而影响系统性能。而使用检测模型,只需输入输出过程即可得到预测结果,从而可以提高检测效率,并可降低对系统性能的影响。
[0344]
关于对恶意代码的检测模型处理装置的具体限定可以参见上文中对于恶意代码的检测模型处理方法的限定,在此不再赘述。上述恶意代码的检测模型处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0345]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的恶意代码的检测方法的恶意代码的检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个恶意代码的检测装置实施例中的具体限定可以参见上文中对于恶意代码的检测方法的限定,在此不再赘述。
[0346]
在一些实施例中,如图9所示,提供了一种恶意代码的检测装置900,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一获取模块902、第二获取模块904、确定模块906、生成模块908和检测模块910,其中:
[0347]
第一获取模块902,用于获取目标代码的行为记录集合,行为记录集合记录有目标代码在运行后产生的代码行为;
[0348]
第二获取模块904,用于获取目标行为类型特征集,目标行为类型特征集包括经过
训练的检测模型检测恶意代码时所需的代码行为类型;
[0349]
确定模块906,用于参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,确定属于目标行为类型特征集的目标行为类型;
[0350]
生成模块908,用于基于属于目标行为类型特征集的目标行为类型,生成目标代码的行为特征组;
[0351]
检测模块910,用于通过经过训练的检测模型,基于行为特征组进行恶意代码检测,获得目标代码的恶意属性。
[0352]
在一些实施例中,确定模块906,用于对行为记录集合中记录的至少一部分代码行为进行重构,获得重构行为类型;参考目标行为类型特征集,在重构行为类型中,确定属于目标行为类型特征集的目标行为类型。
[0353]
在一些实施例中,检测模块910,还用于对外推送用于对目标代码的恶意属性进行检验的检验请求信息;获取基于检验请求信息所返回的检验结果,检验结果用于确定目标代码作为代码训练样本时的样本标签;基于目标代码所作为的代码训练样本和对应的样本标签,对检测模型进行再次训练。
[0354]
上述恶意代码的检测装置,通过获取目标代码的行为记录集合,参考目标行为类型特征集,基于行为记录集合所记录代码行为的代码行为类型,生成目标代码的行为特征组,基于行为特征组,通过检测模型对目标代码进行检测。由于通常只有恶意代码在执行过程中才会产生恶意代码行为,也即代码行为是否恶意可以直接反映产生代码行为的代码是否为恶意,从而通过将代码在运行过程中产生的代码行为用于检测模型的训练过程,并通过检测模型进行检测,不会像代码的文件特征那样被绕过,从而可以提高检测模型的训练效果,进而提高后续恶意代码的检测准确率。
[0355]
另外,由于行为特征组是参考目标行为类型特征集并基于行为记录集合所生成的,而目标行为类型特征集是基于可能具有恶意性的代码行为类型所构成的,从而行为特征组可以尽量反映出行为记录集合中代码行为的恶意程度,进而将行为特征组作为检测模型的输入项,可以提高恶意代码的检测准确率。
[0356]
最后,由于使用检测模型对代码进行检测,不需要像文件特征检测那样,频繁更新恶意代码特征库而导致占用存储资源不断增长,而是仅需更新样本对检测模型再次训练即可,也即检测模型本申不需要太占用存储资源,从而可以节省存储资源。与此同时,恶意代码特征库逐渐庞大也会导致后续检测过程中查找次数逐渐增多,从而会影响检测效率,并因占用太多处理资源而影响系统性能。而使用检测模型,只需输入输出过程即可得到预测结果,从而可以提高检测效率,并可降低对系统性能的影响。
[0357]
关于对恶意代码的检测装置的具体限定可以参见上文中对于恶意代码的检测方法的限定,在此不再赘述。上述恶意代码的检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0358]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端或服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,
通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储训练数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种恶意代码的检测模型处理方法或者恶意代码的检测方法。
[0359]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0360]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0361]
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0362]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0363]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0364]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1