Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020108357 - PROGRAM CLASSIFICATION MODEL TRAINING METHOD, PROGRAM CLASSIFICATION METHOD, AND DEVICE

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
一种程序分类模型训练方法、 程序分类方法及装置

本申请要求于 2018年 11月 26日提交中国国家知识产权局、申请号为 201811419260. 7、 申请名称为“一种程序分类模型训练方法、程序分类方法及装置”的中国专利申请的优先 权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及计算机领域,尤其涉及一种程序分类模型训练方法、程序分类方法及装置。

背景技术

对程序进行分类是计算机领域中一个很重要的需求,其目的在于对程序进行识别。例 如识别一段程序是正常程序还是恶意程序。恶意程序是指带有攻击意图的程序,它会破坏 计算机系统的正常功能,导致计算机系统无法正常运行甚至崩溃,所以恶意程序一直是信 息安全行业的重大威胁。如果能提前识别出一段程序为恶意程序,那么就可以对该程序进 行相应的处理,减少对计算机系统的影响。

目前常用的程序分类方法首先需要利用己知类别的程序对程序分类模型进行训练,然 后基于训练得到的程序分类模型对类别未知的程序进行分类,例如为恶意程序或是正常程 序。不论是训练过程还是分类过程,都需要提取程序相应的特征。常见的特征提取方法主 要包括两种,一种是提取程序的静态特征,所谓静态特征是指基于程序自身的结构特点得 到的特征;另外一种是提取程序的动态特征,所谓动态特征是指程序在运行过程中体现的 行为特征。

然而,虽然利用静态特征对程序分类模型训练可以识别出一部分程序的类别,但是一 旦程序设计者对程序进行一些形式上的改动,例如对程序进行加壳、变形或多态等,程序 的类别就无法被识别出来。而动态特征是通过在沙箱等虚拟环境中运行程序时提取出来 的,如果未知程序中设定了反虚拟环境功能,例如若检测出该程序在沙箱中运行,则不执 行某些命令,则沙箱无法准确的提取出程序的动态特征,导致程序分类模型无法对程序的 类别进行准确的识别。

所以,识别未知程序类别时,如何提高识别准确率是目前需要解决的技术问题。

发明内容

本申请实施例提供了一种程序分类模型训练方法、程序分类方法及装置,提高了识别 未知程序类别的准确率。

第一方面,本申请实施例提供了一种程序分类模型的训练方法,方法包括:首先,接 收输入的多个样本程序,样本程序是指所属的类别己被预先标定的程序,多个样本程序属 于至少两个不同类别。至少两个不同类别可以包括正常程序类别和恶意程序类别;或,至 少两个不同类别包括至少两个不同的恶意程序类别。其次,从多个样本程序中选择出一个 样本程序,执行以下处理从而得到选择出的样本程序的至少一个备选融合特征的特征值,

直到处理完多个样本程序中的每个样本程序为止:依据包括至少一个静态特征的预设静态 特征集、以及包括至少一个动态特征的预设动态特征集,获取选择出的样本程序的每个静 态特征的特征值和每个动态特征的特征值;根据选择出的样本程序的至少一个静态特征的 特征值、至少一个动态特征的特征值以及至少一个融合操作规则,获得选择出的样本程序 的至少一个备选融合特征的特征值,至少一个备选融合特征中的每个备选融合特征的特征 值是基于对应的融合操作规则得到的,融合操作规则指示对预设静态特征集中的指定静态 特征的特征值和预设动态特征集中的指定动态特征的特征值执行融合操作。再次,针对至 少一个备选融合特征中的第一备选融合特征,执行以下处理,以此类推,从而得到每个备 选融合特征的评价值:根据第一备选融合特征在每个样本程序中的特征值以及每个样本程 序的类别,确定第一备选融合特征的评价值,评价值的大小体现第一备选融合特征用于区 分样本程序所属类别的有效程度。接着,根据每个备选融合特征的评价值,从至少一个备 选融合特征中选择目标融合特征,目标融合特征的评价值体现的有效程度大于至少一个备 选融合特征中的其他备选融合特征的评价值体现的有效程度。最后,根据每个样本程序中 目标融合特征的特征值,训练得到程序分类模型。

其中,静态特征反映选择出的样本程序的结构特点,例如动态链接库文件、选择头信 息、资源家族信息、部分头家族信息、数据目录表信息、映像文件头、附加信息、异常结 构字段、入口点信息和可执行代码段等。如果选择出样本程序中针对静态特征有具体的值, 那么这些值可以作为静态特征的特征值。例如选择头信息、资源家族信息、部分头家族信 息、数据目录表信息、映像文件头等。如果样本程序中本身没有具体的值,那么根据样本 程序的实际表现确定对应的特征值。例如若链接库文件被加载,则特征值为 1 ; 否则为 0。 动态特征反映选择出的样本程序在运行过程中体现的行为,例如样本程序的参数模型和 / 或样本程序在运行过程中所调用的至少一个接口等,参数模型根据样本程序在运行过程中 所使用的参数提取得到。假设至少一个动态特征包括第三动态特征,那么选择出的样本程 序的第三动态特征的特征值可以为第三动态特征的频率,第三动态特征的频率为第三动态 特征在选择出的样本程序中出现的次数与预设动态特征集包括的动态特征的总数目之间 的比值。

本申请实施例将静态特征的特征值和动态特征的特征值进行融合,得到融合特征的特 征值,基于融合特征的特征值对程序分类模型进行训练,或者后续利用程序分类模型对程 序进行分类,即具有动态特征不限于程序形式的优点,又能在程序被设置反虚拟程序功能 的情况下,通过静态特征来弥补特征提取不足的缺点,所以相对于现有技术,根据融合特 征的特征值对程序分类模型进行训练,提高了识别程序类别的准确性。

可选的,根据第一备选融合特征在每个样本程序中的特征值以及每个样本程序的类 别,确定第一备选融合特征的评价值包括:按照样本程序所属的类别,统计每个类别的样 本程序中第一备选融合特征的特征值,从而得到第一备选融合特征在各个类别的统计值, 例如第一备选融合特征的特征值的中位数、均值、方差等。然后,根据第一备选融合特征 在各个类别的统计值,确定第一备选融合特征的评价值。该评价值可以是第一备选融合特 征在各个类别统计值之间的比值、差值或方差等。

在实际应用中,根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态 特征的特征值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特 征的特征值,可以有多种实现方式。

作为其中一种可能的实现方式,至少一个备选融合特征包括第一备选融合特征,第一 备选融合特征的特征值是基于对应的第一融合操作规则得到的。第一融合操作规则指示对 预设静态特征集中的第一静态特征的特征值和预设动态特征集中的第一动态特征的特征 值执行数学运算,例如相乘、相加、相减等。其中,第一静态特征包括一个或多个静态特 征,第一动态特征包括一个或多个动态特征。

作为另一种可能的实现方式,至少一个备选融合特征包括第二备选融合特征,第二备 选融合特征的特征值是基于对应的第二融合操作规则得到的。第二融合操作规则指示对预 设静态特征集中的第二静态特征的特征值和预设动态特征集中的第二动态特征的特征值 执行逻辑操作,例如与操作、或操作、与非操作等。其中,第二静态特征包括一个或多个 静态特征,第二动态特征包括一个或多个动态特征。

作为再一种可能的实现方式,至少一个备选融合特征包括第三备选融合特征,第三备 选融合特征的特征值是基于对应的第三融合操作规则得到的。第三融合操作指示从预设静 态特征集和预设动态特征集中确定特征本身相同、且特征值相同的特征,并根据特征本身 相同且特征值相同的特征的总数目计算第三备选融合特征的特征值。

可选的,根据特征本身相同且特征值相同的特征的总数目计算第三备选融合特征的特 征值包括:首先,确定第一数值和第二数值中的最大值,第一数值为预设静态特征集中包 含的静态特征的总数目,第二数值为预设动态特征集中包含的动态特征的总数目;计算特 征本身相同且特征值相同的特征的总数目与最大值之间的比值,将比值作为第三备选融合 特征的特征值。当然,可以理解的是,计算特征本身相同且特征值相同的特征的总数目与 最大值之间的比值并不是对计算第三备选融合特征的特征值的限定,本领域技术人员还可 以根据具体情况自行设计。

另外,上述三种实现方式并不构成对本申请技术方案的限定,本领域技术人员可以根 据实际情况自行设计。

可选的,为了使程序分类模型对类别未知程序分类更加准确,根据每个样本程序中目 标融合特征的特征值,训练得到程序分类模型包括:根据每个样本程序中目标融合特征的 特征值、每个样本程序的至少一个静态特征的特征值以及每个样本程序的至少一个动态特 征的特征值,训练得到程序分类模型。

第二方面,本申请实施例提供了一种程序分类方法,方法包括:首先,获取目标程序。 其次,依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的预设 动态特征集,获取目标程序的每个静态特征的特征值和每个动态特征的特征值。再次,获 取目标程序的至少一个目标融合特征的特征值,目标程序的至少一个目标融合特征的特征 值是基于对应的融合操作规则得到的,融合操作规则指示对预设静态特征集中指定静态特 征的特征值和预设动态特征集中指定动态特征的特征值执行融合操作。最后,将目标程序 的至少一个目标融合特征的特征值输入程序分类模型,得到对目标程序的分类结果。例如 对目标程序为正常程序或恶意程序的分类结果;或,对目标程序为多个恶意程序类别中其 中一个类别的分类结果。

其中,静态特征为体现目标程序的结构特点的特征,例如动态链接库文件、选择头信 息、资源家族信息、部分头家族信息、数据目录家族信息、映像文件头、附加信息、异常 结构字段、入口点信息和可执行代码段等。静态特征的特征值可以从目标程序中提取或根 据表现得到。动态特征为目标程序在运行过程中体现的行为特征,例如参数模型和预设接 口等。若目标程序的至少一个动态特征包括参数模型和预设接口,则获取目标程序的动态 特征的特征值包括:获取目标程序在运行过程中所调用的预设接口以及所使用的参数;根 据所使用的参数提取参数的参数模型;从目标程序的至少一个动态特征中选择出第三动态 特征,将第三动态特征的频率作为第三动态特征的特征值,以此类推,从而得到目标程序 的所有动态特征的特征值,第三动态特征的频率为第三动态特征在选择出的样本程序中出 现的次数与所有预设动态特征集包括的动态特征的总数目之间的比值。

由于本申请实施例是将目标程序的指定静态特征的特征值和指定动态特征的特征值 执行融合操作而得到的目标融合特征的特征值输入到程序分类模型,而不仅仅是静态特征 的特征值或仅仅是动态特征的特征值,所以结合了利用动态特征能够对改变了形式的程序 进行识别,同时能够在程序设置了反虚拟环境功能时,利用反映程序结构特点的静态特征 来对程序进行识别的双重优点,有效提高了程序分类模型对目标程序进行分类的准确性。

在实际应用中,基于对应的融合操作规则得到目标程序的至少一个目标融合特征的特 征值可以有多种实现方式。

作为其中一种可能的实现方式,至少一个目标融合特征包括第一目标融合特征,第一 目标融合特征的特征值是基于对应的第一融合操作规则得到的。第一融合操作规则指示对 预设静态特征集中的第一静态特征的特征值和预设动态特征集中的第一动态特征的特征 值执行数学运算,例如相乘、相加、相减等。其中,第一静态特征包括一个或多个静态特 征,第一动态特征包括一个或多个动态特征。

作为另一种可能的实现方式,至少一个目标融合特征包括第二目标融合特征,第二目 标融合特征的特征值是基于对应的第二融合操作规则得到的。第二融合操作规则指示对预 设静态特征集中的第二静态特征的特征值和预设动态特征集中的第二动态特征的特征值 执行逻辑操作,例如与操作、或操作、与非操作等。其中,第二静态特征包括一个或多个 静态特征,第二动态特征包括一个或多个动态特征。

作为再一种可能的实现方式,至少一个目标融合特征包括第三目标融合特征,第三目 标融合特征的特征值是基于对应的第三融合操作规则得到的。第三融合操作指示从预设静 态特征集和预设动态特征集中确定特征本身相同且特征值相同的特征,并根据特征本身相 同且特征值相同的特征的总数目计算第三目标融合特征的特征值。

可选的,根据特征本身相同且特征值相同的特征的总数目计算第三目标融合特征的特 征值包括:确定第一数值和第二数值中的最大值,第一数值为预设静态特征集中包含的静 态特征的总数目,第二数值为预设动态特征集中包含的动态特征的总数目;计算特征本身 相同且特征值相同的特征的总数目与最大值之间的比值,将比值作为第三目标融合特征的 特征值。当然,可以理解的是,计算特征本身相同且特征值相同的特征的总数目与最大值 之间的比值并不是对计算第三备选融合特征的特征值的限定,本领域技术人员还可以根据 具体情况自行设计。

另外,上述三种实现方式并不构成对本申请技术方案的限定,本领域技术人员可以根 据实际情况自行设计。

可选的,目标程序为多个。如果无法通过程序分类模型识别出目标程序的类别,则方 法还包括:根据多个目标程序中每个目标程序的至少一个目标融合特征的特征值,对多个 目标程序进行聚类,得到每个目标程序的类别。

第三方面,本申请实施例还提供了一种程序分类模型的训练装置,装置包括:

接收单元,用于接收输入的多个样本程序,样本程序是指所属的类别己被预先标定的 程序,多个样本程序属于至少两个不同类别;

第一处理单元,用于从多个样本程序中选择出一个样本程序,执行以下处理从而得到 选择出的样本程序的至少一个备选融合特征的特征值,直到处理完多个样本程序中的每个 样本程序为止:

依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的预 设动态特征集,获取选择出的样本程序的每个静态特征的特征值和每个动态特征的特征 值,静态特征反映选择出的样本程序的结构特点,动态特征反映选择出的样本程序在运行 过程中体现的行为;

根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态特征的特征 值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特征的特征 值,至少一个备选融合特征中的每个备选融合特征的特征值是基于对应的融合操作规则得 到的,融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特征集 中的指定动态特征的特征值执行融合操作;

第二处理单元,用于针对至少一个备选融合特征中的第一备选融合特征,执行以 下处理,以此类推,从而得到每个备选融合特征的评价值:根据第一备选融合特征在每个 样本程序中的特征值以及每个样本程序的类别,确定第一备选融合特征的评价值,评价值 的大小体现第一备选融合特征用于区分样本程序所属类别的有效程度;

选择单元,用于根据每个备选融合特征的评价值,从至少一个备选融合特征中选择目 标融合特征,目标融合特征的评价值体现的有效程度大于至少一个备选融合特征中的其他 备选融合特征的评价值体现的有效程度;

训练单元,用于根据每个样本程序中目标融合特征的特征值,训练得到程序分类模型。 可选的,根据第一备选融合特征在每个样本程序中的特征值以及每个样本程序的类 别,确定第一备选融合特征的评价值包括:

按照样本程序所属的类别,统计每个类别的样本程序中第一备选融合特征的特征值, 从而得到第一备选融合特征在各个类别的统计值;根据第一备选融合特征在各个类别的统 计值,确定第一备选融合特征的评价值。

可选的,第一备选融合特征的特征值是基于对应的第一融合操作规则得到的; 每个融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特 征集中的指定动态特征的特征值执行融合操作包括:

第一融合操作规则指示对预设静态特征集中的第一静态特征的特征值和预设动态特 征集中的第一动态特征的特征值执行数学运算。

可选的,至少一个备选融合特征包括第二备选融合特征,第二备选融合特征的特征值 是基于对应的第二融合操作规则得到的;

每个融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特 征集中的指定动态特征的特征值执行融合操作包括:

第二融合操作规则指示对预设静态特征集中的第二静态特征的特征值和预设动态特 征集中的第二动态特征的特征值执行逻辑操作。

可选的,至少一个备选融合特征包括第三备选融合特征,第三备选融合特征的特征值 是基于对应的第三融合操作规则得到的;

每个融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特 征集中的指定动态特征的特征值执行融合操作包括:

第三融合操作指示从预设静态特征集和预设动态特征集中确定特征本身相同、且特征 值相同的特征,并根据特征本身相同且特征值相同的特征的总数目计算第三备选融合特征 的特征值。

第四方面,本申请实施例还提供了一种程序分类装置,装置包括:

程序获取单元,用于获取目标程序;

第一特征值获取单元,用于依据包括至少一个静态特征的预设静态特征集、以及包括 至少一个动态特征的预设动态特征集,获取目标程序的每个静态特征的特征值和每个动态 特征的特征值;静态特征为体现目标程序的结构特点的特征,动态特征为目标程序在运行 过程中体现的行为特征;

第二特征值获取单元,用于获取目标程序的至少一个目标融合特征的特征值,目标程 序的至少一个目标融合特征的特征值是基于对应的融合操作规则得到的,融合操作规则指 示对预设静态特征集中指定静态特征的特征值和预设动态特征集中指定动态特征的特征 值执行融合操作;

分类单元,用于将目标程序的至少一个目标融合特征的特征值输入程序分类模型,得 到对目标程序的分类结果。

可选的,至少一个目标融合特征包括第一目标融合特征,第一目标融合特征的特征值 是基于对应的第一融合操作规则得到的;

融合操作规则指示对预设静态特征集中指定静态特征的特征值和预设动态特征集中 指定动态特征的特征值执行融合操作包括:

第一融合操作规则指示对预设静态特征集中的第一静态特征的特征值和预设动态特 征集中的第一动态特征的特征值执行数学运算。

可选的,至少一个目标融合特征包括第二目标融合特征,第二目标融合特征的特征值 是基于对应的第二融合操作规则得到的;

融合操作规则指示对预设静态特征集中指定静态特征的特征值和预设动态特征集中 指定动态特征的特征值执行融合操作包括:

第二融合操作规则指示对预设静态特征集中的第二静态特征的特征值和预设动态特 征集中的第二动态特征的特征值执行逻辑操作。

可选的,至少一个目标融合特征包括第三目标融合特征,第三目标融合特征的特征值 是基于对应的第三融合操作规则得到的;

融合操作规则指示对预设静态特征集中指定静态特征的特征值和预设动态特征集中 指定动态特征的特征值执行融合操作包括:

第三融合操作指示从预设静态特征集和预设动态特征集中确定特征本身相同且特征 值相同的特征,并根据特征本身相同且特征值相同的特征的总数目计算第三目标融合特征 的特征值。

附图说明

图 1为本申请实施例提供的企业网网络架构示意图;

图 2为本申请实施例提供的云端网络架构示意图;

图 3为本申请实施例提供的一种程序分类模型训练方法的流程示意图;

图 4为本申请实施例提供的一种程序分类方法的流程图;

图 5为本申请实施例提供的一种程序分类模型训练装置的结构框图;

图 6为本申请实施例提供的一种程序分类装置的结构框图;

图 7为本申请实施例提供的一种程序分类模型训练设备的硬件架构图;

图 8为本申请实施例提供的一种程序分类设备的硬件架构图。

具体实施方式

为了提高识别未知程序类别的准确性,本申请实施例提供了一种程序分类模型训练方 法及装置、程序分类方法及装置。

本申请实施例提供的程序分类训练方法及装置、程序分类方法及装置可以例如应用于 如图 1和图 2所示的应用场景。

图 1为企业网网络架构示意图。在图 1中,企业网网络架构包括安全设备 101、以防 火墙或安全网关为例的网络接入设备 102、与网络接入设备 102连接的交换机 103以及与 交换机连接的多个主机 104。其中,安全设备 101与网络接入设备 102连接。安全设备 101 可以例如是入侵防御系统 ( intrusion prevention system, IPS ) 设备或统一威胁管理 (unified threat management , UTM) 设备等。安全设备 101用于训练程序分类模型,以 及接收设备 102中防火墙或安全网关发送的测试样本,或接收安装在内网主机 104上的客 户端软件发送的测试样本,并输出测试样本的所属类别。

图 2为云端网络架构示意图。在图 2中,云端网络架构可以包括位于核心网侧的安全 设备 201,以及接入网中的多个防火墙设备 202。其中安全设备 201 中可以包括云沙箱等 模块,用于训练程序分类模型,以及接收来自部署了防火墙的设备 202的测试样本,并输 出测试样本的所属类别。

下面结合附图详细介绍本申请实施例提供的程序分类模型训练方法。该训练方法的执 行主体可以为图 1中的安全设备 101或图 2中的安全设备 201。安全设备 101和安全设备 201的工作流程主要包括训练阶段和测试阶段。在训练阶段,安全设备 101和安全设备 201 的输入为训练集,输出为生成的程序分类模型。其中训练集中包括多个训练样本,训练样 本是指所属类别己被预先标定的样本程序。安全设备 101和安全设备 201根据训练集和预 定机器学习算法,生成程序分类模型。在测试阶段,安全设备 101和安全设备 201的输入 为测试样本,输出为该测试样本所属的类别,其中测试样本是指所属类别未知的样本程序。 在测试阶段,安全设备 101和安全设备 201根据生成的程序分类模型对测试样本进行分类。

参见图 3, 该图为本申请实施例提供的程序分类模型训练方法的流程示意图。

本申请实施例提供的程序分类模型训练方法可以包括如下步骤:

S101:接收输入的多个训练样本。

在本申请实施例中,样本程序是指所属的类别己被预先标定的程序,多个样本程序属 于至少两个不同类别。例如,至少两个不同类别可以包括正常程序和恶意程序两个类别。 又例如,至少两个不同类别包括至少两个不同的恶意程序的类别,例如蠕虫 (worm)、特 洛伊 ( trojan) 木马、下载器 ( downloader) , 后门等。恶意程序例如可以是可移植的执 行体 (portable exectable, PE)。

S102:从多个样本程序中选择出一个样本程序,执行 S1021和 S1022从而得到选择出 的样本程序的至少一个备选融合特征的特征值,直到处理完多个样本程序中的每个样本程 序为止。

也就是说,多个样本程序中的每个样本程序都分别具有至少一个备选融合特征,备选 融合特征的特征值的计算方法可以参见 S1021和 S1022。

S1021:依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征 的预设动态特征集,获取选择出的样本程序的每个静态特征的特征值和每个动态特征的特 征值。

在本申请实施例中,预先确定预设静态特征集和预设动态特征集,预设静态特征集中 包括至少一个静态特征,预设动态特征集中包括至少一个动态特征。然后通过对选择出的 样本程序进行分析,得到选择出的样本程序与预设静态特征集中各个静态特征分别对应的 特征值,以及预设动态特征集中各个动态特征分别对应的特征值。也就是说,每个样本程 序对应的预设静态特征集都是相同的,不同的只是预设静态特征集中各个静态特征的特征 值。同理,每个样本程序对应的预设动态特征集都是相同的,不同的只是预设动态特征集 中动态特征的特征值。

其中,静态特征反映样本程序的结构特点。例如,静态特征包括以下其中一种或多种 特征:动态链接库文件 ( dynamic link library, DLL)、映像选择头 ( image optional header) 信息、资源家族 (resource family) 信息、部分头家族 ( section header famliy) 信息、 数据目录表 ( data directory family) 信息、映像文件头 ( image file header)、附加 (overlay) 信息、异常结构字段、入口点 ( entry point ) 信息和可执行代码段等。

其中,上述每种静态特征可以包括一个或多个静态特征。例如动态链接库文件可以包 括 ADVAPI32. DLL、 AWFAXP32. DLL、 AWFXAB32. DLL等。异常结构字段是指可能发生异常的 字段,例如包括弃用 ( deprecated) 字段、默认 ( default ) 字段、保留 (reserved) 字 段、结构 ( structure) 字段等。

如果选择出样本程序中针对静态特征有具体的值,那么这些值可以作为静态特征的特 征值。例如选择头信息、资源家族信息、部分头家族信息、数据目录表信息、映像文件头 等。如果样本程序中本身没有具体的值,那么根据样本程序的实际表现确定对应的特征值。 例如若链接库文件被加载,则特征值为 1 ; 否则为 0。例如,入口点信息是否在可执行代 码段,如果是,则特征值为 0; 否则为 1。再例如,附加信息是否存在,如果是,则特征 值为 1 ; 否则为 0。

可选的,为了提高静态特征区分类别的有效程度,可以将一些具体特征的 N-gram特 征也作为静态特征。 N-gram是一种基于统计语言模型的算法,它的基本思想是将文本里面 的内容按照字节进行大小为 N的窗口滑动窗口操作,形成长度为 N的字节片段序列,每个 字节片段称为 gram。在本申请实施例中, N大于或等于 2。

例如,对可执行代码段提取 N-gram特征,按照可执行代码段的字节进行大小为 4滑 动窗口操作,形成长度为 4的字节片段序列,每个字节片段序列可以视为一个静态特征。

如果选择出样本程序中可以提取出 N-gram特征,则该 N-gram特征的特征值可以为 1 ; 否则为 0。

上面介绍了静态特征以及选择出样本程序的静态特征的特征值,下面介绍动态特征以

及选择出样本程序的动态特征的特征值。

动态特征反映样本程序在运行过程中体现的行为,这些行为例如包括进程操作、文件 操作、网络操作、注册表操作等。为了获取选择出样本程序的动态特征的特征值,可以将 选择出样本程序放在沙箱中运行,在获取动态特征特征值的同时,也避免当样本程序为恶 意程序时对系统造成影响。

在本申请实施例中,动态特征可以包括样本程序在运行过程中所调用的应用程序编程 接口 (application programming interface, API ) 和 /或所使用的参数。其中, API用于 指示样本程序运行行为的类型,例如创建文件、修改注册表等,而参数表示运行行为的对 象,例如文件路径、注册表路径等。每个运行行为对应一个 API和至少一个参数。

为了提高训练分类模型的泛化能力,防止过拟合,本申请实施例对参数抽象出参数模 型。

例如,文件参数路径“c : \\users\\zhangsan\\appdata\\ [local\\temp\\” (用户 zhangsan 的临时目录 ) 可以被抽象为参数模型“c : \\ users\\*\\appdata\\ [roaming | local] \\ [te | t]mp\\”,其中的
代表该处可以有任何内容; [roaming | local]代表该处出现 roaming和 local 中的任意一个都算是被命中, roaming 和 local 在操作系统中有基本相同的意义,用来存放应用程序释放内容; [te | t]mp]代表 该处出现 tmp和 temp中的任意一个都算是被命中,不同的操作系统对于临时文件的命名 可能不同。

再例如,注册表路径

‘‘hklm\so tware\microsoft\windows\currentversion\runonce’,可以被抽象为参 数模型“hk [cu
lm] \\software\\microsoft\\windows\\currentversion\\runonce’,,其 中 hk [cu\lm]代表该处出现 hkcu和 hklm中的任意一个都算是命中,可以匹配不同注册表 根键值。

由于无论是 API还是参数模型都不是数字,所以为了描述简便,可以为 API和参数模 型赋予相应的代号。例如,若选择的样本程序有 150个 API,那么可以用代号 1-150来表 示这 150个 API,每个 API对应一个代号。若选择的样本有 400个参数模型,那么可以用 代号 1-400来表示这 400个参数模型,每个参数模型对应一个代号。

在本申请实施例中,动态特征可以是 API,或者是参数模型,或者是 API和参数模型 的组合。

如果动态特征是 API,那么可以将选出的样本程序的该 API 出现的频率,作为选出的 样本程序的该 API的特征值。其中该 API出现的频率,等于选出的样本程序中该 API出现 的次数与预设动态特征集中所有 API的总数的比值。例如,预设动态特征集中包括的 150 个 API中代号为 1的 API在选出的样本程序运行过程中出现 30次,那么该代号为 1的 API 对应的特征值为 0. 2 ( 30/150 )。

如果动态特征是参数模型,那么可以将选出的样本程序的该参数模型出现的频率,作 为选出的样本程序的该参数模型的特征值。其中,选出的样本程序的该参数模型出现的频 率,等于选出的样本程序中该参数模型出现的次数与预设动态特征集中所有参数模型的总 数的比值。例如预设动态特征集中包括的 400个参数模型中代号为 3的参数模型在选出的 样本程序运行过程出现 40次,那么该代号为 3的参数模型对应的特征值为 0. 1 ( 40/400 )。

如果动态特征是 API和参数模型的组合,那么可以将每个 API与每个参数模型进行组

合,即一个组合包括一个 API和一个参数模型。该组合可以例如表示为: API的代码 _参数 模型的代码。例如,一个标识为“2_5”的动态特征表示该动态特征为代码为 2的 API和 代码为 5的参数模型的组合。若动态特征为 API和参数模型的组合,那么动态特征的特征 值为对应的 API和参数模型的组合在预设动态特征集所有组合中出现的频率 (为描述简便, 下文简称动态特征的频率)。一个 API 和参数模型的组合在预设动态特征集所有组合中出 现的频率,等于 API和参数模型的组合在所有组合中出现的次数与所有组合的总数的比值。 例如,假设预设动态特征集中所有 API和参数模型的组合有 1000个,标识为“2_5”的组 合出现的次数是 10 次,则标识为“2_5”的组合的频率为 0. 01 ( 10/1000 ),即动态特征 “2_5”的特征值为 0. 01。

当然,动态特征的特征值还可以是除了动态特征的频率以外的其他值,例如若根据选 择出的样本程序可以得到某个动态特征,则该动态特征的特征值为 1 ; 如果得不到,则该 动态特征的特征值为 0。

在获取到选择出的样本程序的静态特征的特征值和动态特征的特征值之后,可以执行 S1022。

S1022:根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态特 征的特征值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特征 的特征值。

传统技术输入程序分类模型的特征要么是静态特征,要么是动态特征。而如前文 所提,静态特征虽然能够反映出程序的结构特点,但是一旦程序的设计人员改变程序的形 式,那么程序分类模型就无法识别出程序的类别。动态特征能够反映程序在运行过程中的 行为特征,即便程序在形式上有改动,其行为特征也是相同的,从而能够克服静态特征的 问题。但是动态特征的提取需要通过在沙箱等虚拟环境中运行程序才可以,如果程序中设 定了反虚拟程序功能,比如说检测到程序在沙箱中运行,则不执行某些命令,这样沙箱就 无法提取出全部的动态特征。所以,仅通过动态特征仍然无法准确的确定程序的类别。

为了克服上述技术问题,在本申请实施例中,将静态特征的特征值和动态特征的特征 值进行融合,得到融合特征的特征值,基于融合特征的特征值对程序分类模型进行训练, 或者后续利用程序分类模型对程序进行分类,即具有动态特征不限于程序形式的优点,又 能在程序被设置反虚拟程序功能的情况下,通过静态特征来弥补特征提取不足的缺点,所 以相对于现有技术,根据融合特征的特征值对程序分类模型进行训练,提高了识别程序类 别的准确性。

在具体实现时,在获取到选择出的样本程序的静态特征的特征值和动态特征的特征值 之后,根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态特征的特征值 以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特征的特征值, 然后从至少一个备选融合特征中选择出区分样本程序所属类别的有效程度较高的备选融 合特征作为最终输入到程序分类模型的目标融合特征。

在实际应用中,根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态 特征的特征值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特 征的特征值,可以有多种实现方式。

作为其中一种可能的实现方式,至少一个备选融合特征包括第一备选融合特征,第一 备选融合特征的特征值是基于对应的第一融合操作规则得到的。第一融合操作规则指示对

预设静态特征集中的第一静态特征的特征值和预设动态特征集中的第一动态特征的特征 值执行数学运算,例如相乘、相加、相减等。其中,第一静态特征包括一个或多个静态特 征,第一动态特征包括一个或多个动态特征。

例如,假设样本程序的第一静态特征为可执行代码段,可执行代码段的特征值为可执 行代码段的二进制熵值。样本程序的第一动态特征为读取应用程序目录文件,读取应用程 序目录文件的特征值为对应 API和参数模型组合的频率,为了简便,也可以称为读取应用 程序目录文件的频率。那么,由可执行代码段和读取应用程序目录文件进行融合操作得到 的第一备选融合特征,其特征值可以是可执行代码段的二进制熵值与读取应用程序目录文 件的频率的乘积。

作为另一种可能的实现方式,至少一个备选融合特征包括第二备选融合特征,第二备 选融合特征的特征值是基于对应的第二融合操作规则得到的。第二融合操作规则指示对预 设静态特征集中的第二静态特征的特征值和预设动态特征集中的第二动态特征的特征值 执行逻辑操作,例如与操作、或操作、与非操作等。其中,第二静态特征包括一个或多个 静态特征,第二动态特征包括一个或多个动态特征。

例如,样本程序的第二静态特征为附加信息,根据样本程序中是否存在附加信息可以 确定附加信息的特征值。如果存在附加信息,则该第二静态特征的特征值为 1 ; 否则为 0。 样本程序的第二动态特征为联网操作,如果样本程序具有联网操作,则该第二动态特征的 特征值为 1 ; 否则为 0。那么,融合操作可以是第二将静态特征的特征值和第二动态特征 的特征值执行与操作,即如果样本程序同时存在附加信息和联网操作,则该第二备选融合 特征的特征值为 1,否则为 0。

作为再一种可能的实现方式,至少一个备选融合特征包括第三备选融合特征,第三备 选融合特征的特征值是基于对应的第三融合操作规则得到的。第三融合操作指示从预设静 态特征集和预设动态特征集中确定特征本身相同、且特征值相同的特征,并根据特征本身 相同且特征值相同的特征的总数目计算第三备选融合特征的特征值。

例如,假设样本程序的静态特征集中包括 150个 API,样本程序的动态特征集中涵盖 50个 API,其中获得样本程序对应的静态特征的特征值、对应的动态特征的特征值之后, 二者之间特征本身相同且特征值相同的 API有 40个,那么可以根据特征本身相同且特征 值相同的 API的总数目,即 40个,得到第三备选融合特征的特征值。

可选的,根据特征本身相同且特征值相同的特征的总数目计算第三备选融合特征的特 征值可以包括:首先,确定第一数值和第二数值中的最大值,第一数值为预设静态特征集 中包含的静态特征的总数目,第二数值为预设动态特征集中包含的动态特征的总数目。其 次,计算特征本身相同且特征值相同的特征的总数目与最大值之间的比值,将比值作为第 三备选融合特征的特征值。

例如,在上述例子中,由于静态特征集包括的 API的总数目大于动态特征集包括的 API 总数目,所以第一数值和第二数值中的最大值为 150, 该第三备选融合特征的特征值约等 于 0. 27 ( 40/150 )。

当然,可以理解的是,计算特征本身相同且特征值相同的特征的总数目与最大值之间 的比值并不是对计算第三备选融合特征的特征值的限定,本领域技术人员还可以根据具体 情况自行设计。

另外,上述三种实现方式并不构成对本申请技术方案的限定,本领域技术人员可以根 据实际情况自行设计。

本申请实施例在获取到至少一个备选融合特征的特征值之后,可以执行 S103。

S103:针对至少一个备选融合特征中的第一备选融合特征,执行以下处理,以此 类推,从而得到每个备选融合特征的评价值:根据第一备选融合特征在每个样本程序中的 特征值以及每个样本程序的类别,确定第一备选融合特征的评价值。

由于并不是每个备选融合特征都能够对样本程序的类别进行有效的区分,所以为了提 高程序分类模型的训练效率,本申请实施例自动的从至少一个备选融合特征中选择出目标 融合特征,依据为至少一个备选融合特征的评价值,评价值的大小体现第一备选融合特征 用于区分样本程序所属类别的有效程度。基于至少一个备选融合特征的评价值,可以从中 选择出能够有效区分样本程序所属类别的目标融合特征。

具体的,可以按照样本程序所属的类别,统计每个类别的样本程序中第一备选融合特 征的特征值,从而得到第一备选融合特征在各个类别的统计值,例如第一备选融合特征的 特征值的中位数、均值、方差等。然后,根据第一备选融合特征在各个类别的统计值,确 定第一备选融合特征的评价值。该评价值可以是第一备选融合特征在各个类别统计值之间 的比值、差值或方差等。

例如,假设至少两个类别包括正常程序和恶意程序,样本程序的静态特征包括可执行 代码段,动态特征包括读取应用程序目录文件、写系统文件、删除系统文件、注册表读取 应用程序版本信息和注册表添加自启动项。那么,将每个样本程序的可执行代码段的二进 制熵值与上述五个动态特征的特征值分别相乘,得到该样本程序的五个备选融合特征的特 征值。将多个样本程序的特征值按照正常程序和恶意程序两种类别分别进行统计,得到多 个样本程序在这两种类别的统计值,例如中位数。然后,可以根据五个备选融合特征值分 别在这两种类别的统计值,得到每个备选融合特征的评价值。其中,每个备选融合特征的 评价值可以是正常程序统计值和恶意程序统计值之间的差值,与正常程序统计值和恶意程 序统计值中较大值之间的比值。参见表 1,该表体现了样本程序包括正常程序和恶意程序 两个类别的场景下,上述五个备选融合特征的评价值的计算方法。

表 1


表示相乘。

假设至少两个类别包括恶意程序的三个类别,例如特洛伊木马、下载器和蠕虫,样本 程序的静态特征以及动态特征以上述例子为例,五个备选融合特征中的每个备选融合特征 的评价值可以是这三个类别的统计值的方差。参见表 2, 该表为样本程序包括特洛伊木马、 下载器和蠕虫三个类别的场景下,上述五个备选融合特征的评价值的计算方法。

表 2


再例如,假设至少两个类别包括正常程序和恶意程序,样本程序的静态特征包括附加 信息,静态特征的特征值为附加信息大小与整个文件大小的比例;动态特征包括网络操作 行为、注册表自启动项操作行为、写执行文件操作行为和读取加载系统 DLL行为。那么, 将每个样本程序的附加信息大小与整个文件大小的比例与上述四个动态特征的特征值分 别相乘,得到该样本程序的四个备选融合特征的特征值。将多个样本程序的特征值按照正 常程序和恶意程序两种类别分别进行统计,得到多个样本程序在这两种类别的统计值,例 如中位数。然后,可以根据四个备选融合特征值分别在这两种类别的统计值,得到每个备 选融合特征的评价值。其中,每个备选融合特征的评价值可以是正常程序统计值和恶意程 序统计值之间的差值。参见表 3, 该表体现了样本程序包括正常程序和恶意程序两个类别 的场景下,上述四个备选融合特征的评价值的计算方法。

表 3



假设至少两个类别包括恶意程序的三个类别,例如特洛伊木马、下载器和蠕虫,样本 程序的静态特征以及动态特征以上述例子为例,四个备选融合特征中的每个备选融合特征 的评价值可以是这三个类别的统计值的方差。参见表 4, 该表为样本程序包括特洛伊木马、 下载器和蠕虫三个类别的场景下,上述四个备选融合特征的评价值的计算方法。

表 4


S104:根据每个备选融合特征的评价值,从至少一个备选融合特征中选择目标融合特 征。

在本申请实施例中,选择得到的目标融合特征,其评价值体现的有效程度,大于至少 一个备选融合特征中除了目标融合特征以外的其他备选融合特征的评价值体现的有效程 度。目标融合特征的个数可以是一个,也可以是多个。

在二分类场景下,即样本程序包括正常程序和恶意程序两个类别时,以表 1为例,备 选融合特征的评价值为正常程序的中位数与恶意程序的中位数的之间的差值,与正常程序 中位数和恶意程序中位数中较大值之间的比值。根据经验,正常程序的可执行代码段比恶 意程序的可执行代码段更为均匀,所以正常程序的可执行代码段的二进制熵值,比恶意程 序的可执行代码段的二进制熵值更大,而且正常程序读取应用程序目录文件的频率和注册 表读取应用程序版本信息的频率均相对于恶意程序更高,因此,在表 1的场景下,一个备 选融合特征的该比值越高,表示该备选融合特征区分样本程序所属类别的有效程度越高; 相反,该比值越低,则表示该备选融合特征区分样本程序所属类别的有效程度越低。

所以,在实际应用中,可以设计一个阈值,将评价值大于或等于该阈值的备选融合特 征作为目标融合特征。

例如,该阈值为 0. 6。在表 1中,第一个备选融合特征、第四个备选融合特征与第五 个备选融合特征,其对应的评价值分别为 0. 888、 0. 8864和 0. 6418, 均大于 0. 6, 所以这 三个备选融合特征可以作为目标融合特征。

再以表 3为例,每个备选融合特征的评价值是正常程序统计值和恶意程序统计值之间 的差值,差值越大表示备选融合特征区分样本程序所属类别的有效程度越高。根据经验, 恶意程序可能会在附加信息处添加可执行代码,从而导致附加信息的大小与整体文件大小 之间的比例较高,同时恶意程序有较高的可能性会有网络操作。所以在表 3的场景下,第 一个备选融合特征的评价值较高,高达 0. 145。假设阈值为 0. 05, 那么表 3中大于该阈值 的备选融合特征只有第一个备选融合特征,所以可以将该备选融合特征作为目标融合特 征。

在多分类场景下,即样本程序包括多个类别的恶意程序时,以表 2为例,每个备选融 合特征的评价值可以是多个类别的统计值的方差。方差越大,表示备选融合特征区分样本 程序所属类别的有效程度越高。所以,若阈值为 20, 由于表 2中的第二个备选融合特征的 特征值 ( 51. 014) 和第五个备选融合特征的特征值 ( 38. 592 ) 均高于该阈值,所以可以将 这两个备选融合特征作为目标融合特征。第二个备选融合特征的特征值和第五个备选融合 特征的特征值之所以较高,其原因是蠕虫写系统文件频率和注册表添加自启动项的频率相 对于正常程序而言更高。

由于表 4和表 2类似,所以选择目标融合特征的过程此处不再赘述。

在得到目标融合特征之后,可以执行 S105。

S105:根据每个样本程序中目标融合特征的特征值,训练得到程序分类模型。

在本申请实施例中,训练分类模型是用于对类别未知的程序进行分类的模型。 S101至 S105描述的是对程序分类模型进行训练的过程,当程序分类模型工作时,可以输入类别未 知的程序的目标融合特征的特征值,输出该程序的所属类别。具体步骤将在下文详细阐述。

训练程序分类模型的方式可以采用机器学习的方式,例如采用随机森林 ( random forest, RF) 算法、人工神经网络 (artificial neural network, ANN) 算法等。

如前文所提,由于目标融合特征集静态特征的优点和动态特征的优点于一身,所以根 据样本程序中目标融合特征的特征值对程序分类模型进行训练,相比于传统技术中仅根据 静态特征或仅根据动态特征对程序分类模型进行训练效果更好,即程序分类模型对类别未 知的程序进行分类的准确性更高。

此外,为了使程序分类模型对类别未知程序分类更加准确,可以根据每个样本程序中 目标融合特征的特征值、每个样本程序的静态特征的特征值以及每个样本程序的动态特征 的特征值,训练得到程序分类模型。

参见图 4, 该图为本申请实施例提供的程序分类方法的流程图。

本申请实施例提供的程序分类方法包括如下步骤:

S201:获取目标程序。

在本申请实施例中,目标程序为类别未知的程序。获取目标程序的方式可以有多种, 例如从开源网站上下载等。

S202:依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的 预设动态特征集,获取目标程序的每个静态特征的特征值和每个动态特征的特征值。

在本申请实施例中,可以预先确定预设静态特征集和预设动态特征集,预设静态特征 集包括至少一个静态特征,预设动态特征集包括至少一个动态特征。静态特征为体现目标 程序的结构特点的特征,动态特征为目标程序在运行过程中体现的行为特征。这里的预设 静态特征集可以是上文所提的预设静态特征集,这里的预设动态特征集可以是上文所提的 预设动态特征集。静态特征和动态特征的种类和获取方式可以参见上文附图 3中对样本程 序静态特征和动态特征的描述,此处不再赘述。

S203:获取目标程序的至少一个目标融合特征的特征值,目标程序的至少一个目标融 合特征的特征值是基于对应的融合操作规则得到的,融合操作规则指示对预设静态特征集 中指定静态特征的特征值和预设动态特征集中指定动态特征的特征值执行融合操作。

本申请实施例中,目标融合特征的特征值根据预设静态特征集中指定静态特征的特征 值和预设动态特征集中指定动态特征的特征值执行融合操作得到。具体的融合操作请参见 上文附图 3中对样本程序指定静态特征的特征值和指定动态特征的特征值执行融合操作的 相关描述,此处不再赘述。

S204:将目标程序的至少一个目标融合特征的特征值输入程序分类模型,得到对目标 程序的分类结果。

由于本申请实施例是将目标程序的指定静态特征的特征值和指定动态特征的特征值 执行融合操作而得到的目标融合特征的特征值输入到程序分类模型,而不仅仅是静态特征 的特征值或仅仅是动态特征的特征值,所以结合了利用动态特征能够对改变了形式的程序 进行识别,同时能够在程序设置了反虚拟环境功能时,利用反映程序结构特点的静态特征 来对程序进行识别的双重优点,有效提高了程序分类模型对目标程序进行分类的准确性。

下面以一个应用场景为例,完整的从程序分类模型的训练到对目标程序进行分类的过 程,介绍本申请实施例提供的技术方案。

本申请实施例提供的程序分类方法包括如下步骤:

S301:获取预先标定类别的多个样本程序,多个样本程序包括正常程序和恶意程序。

S302:对多个样本程序执行 S102至 S105, 得到第一程序分类模型。

第一程序分类模型为二分类模型,其可以将目标程序分类为正常程序或恶意程序。

S303:对多个样本程序中的恶意程序执行 S102至 S105,得到第二程序分类模型。 多个样本程序中的恶意程序包括多个恶意程序类别,所以第二程序分类模型为多分类 模型,其可以将目标程序确定为多个恶意程序类别中的某一个。

S304:获取类别未知的目标程序。

S305:对该目标程序执行 S202和 S203,得到目标程序的目标融合特征的特征值。

S306:将目标程序的目标融合特征的特征值输入第一程序分类模型,得到目标程序为 恶意程序或正常程序的分类结果。

S307:当目标程序的分类结果是恶意程序时,将目标程序的目标融合特征的特征值输 入第二程序分类模型,得到目标程序为多个恶意程序类别中具体某个类别的分类结果。

S308:如果第二程序分类模型无法确定出目标程序所属的类别,即该目标程序不属于 第二程序分类模型中的多个恶意程序类别,则可以根据多个目标程序中每个目标程序的至 少一个目标融合特征的特征值,对多个这样的目标程序进行聚类,通过聚类的方式得到多 个目标程序各自的类别。

聚类的算法有多种,例如具有噪声的基于密度的应用空间聚类 ( density-based spatial clustering of applications with noise, DBSCAN ) 算法等,本申请不做具体 限定。

S309:若通过聚类得到目标程序的类别,则可以将目标程序进行类别标注,并再次对 第二程序分类模型进行训练,以使新的第二程序分类模型能够识别新类别的程序。

相应的,参见图 5, 本申请实施例还提供了一种程序分类模型的训练装置,装置包括: 接收单元 501,用于接收输入的多个样本程序,样本程序是指所属的类别己被预先标 定的程序,多个样本程序属于至少两个不同类别;

第一处理单元 502, 用于从多个样本程序中选择出一个样本程序,执行以下处理从而 得到选择出的样本程序的至少一个备选融合特征的特征值,直到处理完多个样本程序中的 每个样本程序为止:

依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的预 设动态特征集,获取选择出的样本程序的每个静态特征的特征值和每个动态特征的特征 值,静态特征反映选择出的样本程序的结构特点,动态特征反映选择出的样本程序在运行 过程中体现的行为;

根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态特征的特征 值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特征的特征 值,至少一个备选融合特征中的每个备选融合特征的特征值是基于对应的融合操作规则得 到的,融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特征集 中的指定动态特征的特征值执行融合操作;

第二处理单元 503, 用于针对至少一个备选融合特征中的第一备选融合特征,执行 以下处理,以此类推,从而得到每个备选融合特征的评价值:根据第一备选融合特征在每 个样本程序中的特征值以及每个样本程序的类别,确定第一备选融合特征的评价值,评价 值的大小体现第一备选融合特征用于区分样本程序所属类别的有效程度;

选择单元 504, 用于根据每个备选融合特征的评价值,从至少一个备选融合特征中选 择目标融合特征,目标融合特征的评价值体现的有效程度大于至少一个备选融合特征中的 其他备选融合特征的评价值体现的有效程度;

训练单元 505, 用于根据每个样本程序中目标融合特征的特征值,训练得到程序分类 模型。

图 5所示装置的具体工作流程可以参见前面程序分类模型训练方法实施例中的相关描 述。

参见图 6, 本申请实施例还提供了一种程序分类装置,装置包括:

程序获取单元 601,用于获取目标程序;

第一特征值获取单元 602, 用于依据包括至少一个静态特征的预设静态特征集、以及 包括至少一个动态特征的预设动态特征集,获取目标程序的每个静态特征的特征值和每个 动态特征的特征值;静态特征为体现目标程序的结构特点的特征,动态特征为目标程序在 运行过程中体现的行为特征;

第二特征值获取单元 603, 用于获取目标程序的至少一个目标融合特征的特征值,目 标程序的至少一个目标融合特征的特征值是基于对应的融合操作规则得到的,融合操作规 则指示对预设静态特征集中指定静态特征的特征值和预设动态特征集中指定动态特征的 特征值执行融合操作;

分类单元 604,用于将目标程序的至少一个目标融合特征的特征值输入程序分类模型, 得到对目标程序的分类结果。

图 6所示装置的具体工作流程可以参见前面程序分类方法实施例中的相关描述。

参见图 7, 本申请实施例还提供一种程序分类模型训练设备,包括:

处理器 710、存储器 720和网络接口 730, 处理器 710、存储器 720和网络接口 730通 过总线 740相互连接。

存储器 720包括但不限于是随机存取存储器 (RAM)、只读存储器 (R0M)、可擦除可编 程只读存储器 (EPROM或者快闪存储器)、或便携式只读存储器 (CD-ROM)。

处理器 710可以是一个或多个中央处理器 (Central Processing Unit, 简称 CPU), 在处理器 710是一个 CPU的情况下,该 CPU可以是单核 CPU,也可以是多核 CPU。

网络接口 730可以是有线接口,例如光纤分布式数据接口 (Fiber Distributed Data Interface, 简称 FDDI )、千兆以太网 (Gigabit Ethernet, 简称 GE) 接口;网络接口 730 也可以是无线接口。

网络接口 730, 用于接收输入的多个样本程序,样本程序是指所属的类别己被预先标 定的程序,多个样本程序属于至少两个不同类别。

存储器 720, 用于存储程序代码;

处理器 710, 用于读取存储器 720中存储的程序代码,执行以下操作:

从多个样本程序中选择出一个样本程序,执行以下处理从而得到选择出的样本程序的 至少一个备选融合特征的特征值,直到处理完多个样本程序中的每个样本程序为止:

依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的预 设动态特征集,获取选择出的样本程序的每个静态特征的特征值和每个动态特征的特征 值,静态特征反映选择出的样本程序的结构特点,动态特征反映选择出的样本程序在运行 过程中体现的行为;

根据选择出的样本程序的至少一个静态特征的特征值、至少一个动态特征的特征 值以及至少一个融合操作规则,获得选择出的样本程序的至少一个备选融合特征的特征 值,至少一个备选融合特征中的每个备选融合特征的特征值是基于对应的融合操作规则得 到的,融合操作规则指示对预设静态特征集中的指定静态特征的特征值和预设动态特征集 中的指定动态特征的特征值执行融合操作;

针对至少一个备选融合特征中的第一备选融合特征,执行以下处理,以此类推, 从而得到每个备选融合特征的评价值:根据第一备选融合特征在每个样本程序中的特征值

以及每个样本程序的类别,确定第一备选融合特征的评价值,评价值的大小体现第一备选 融合特征用于区分样本程序所属类别的有效程度;

根据每个备选融合特征的评价值,从至少一个备选融合特征中选择目标融合特征,目 标融合特征的评价值体现的有效程度大于至少一个备选融合特征中的其他备选融合特征 的评价值体现的有效程度;

根据每个样本程序中目标融合特征的特征值,训练得到程序分类模型。

图 7所示设备的实现可以参见图 3中的相关描述。

参见图 8, 本申请实施例还提供一种程序分类设备,包括:

处理器 810、存储器 820和网络接口 830, 处理器 810、存储器 820和网络接口 830通 过总线 840相互连接。

存储器 820包括但不限于是随机存取存储器 (RAM)、只读存储器 (R0M)、可擦除可编 程只读存储器 (EPROM或者快闪存储器)、或便携式只读存储器 (CD-ROM)。

处理器 810可以是一个或多个中央处理器 (Central Processing Unit, 简称 CPU), 在处理器 810是一个 CPU的情况下,该 CPU可以是单核 CPU,也可以是多核 CPU。

网络接口 830可以是有线接口,例如光纤分布式数据接口 (Fiber Distributed Data Interface, 简称 FDDI )、千兆以太网 (Gigabit Ethernet, 简称 GE) 接口;网络接口 830 也可以是无线接口。

网络接口 830,用于获取目标程序;

存储器 820, 用于存储程序代码;

处理器 810, 用于读取存储器 820中存储的程序代码,执行以下操作:

依据包括至少一个静态特征的预设静态特征集、以及包括至少一个动态特征的预设动 态特征集,获取目标程序的每个静态特征的特征值和每个动态特征的特征值;静态特征为 体现目标程序的结构特点的特征,动态特征为目标程序在运行过程中体现的行为特征; 获取目标程序的至少一个目标融合特征的特征值,目标程序的至少一个目标融合特征 的特征值是基于对应的融合操作规则得到的,融合操作规则指示对预设静态特征集中指定 静态特征的特征值和预设动态特征集中指定动态特征的特征值执行融合操作;

将目标程序的至少一个目标融合特征的特征值输入程序分类模型,得到对目标程序的 分类结果。

图 8所示设备的实现可以参见图 4中的相关描述。

本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时, 使得计算机执行以上程序分类模型的训练方法。

本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时, 使得计算机执行以上程序分类方法。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、 “第四”等 (如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。 应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这 里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变

形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、 产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于 这些过程、方法、产品或设备固有的其它步骤或单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组 件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间 接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既 可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可 以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者 说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现 出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等) 执行本申请各个实施例所述方法的全部 或部分步骤。而前述的存储介质包括: U盘、移动硬盘、只读存储器 (ROM, Read-Only Memory)、 随机存取存储器 (RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码 的介质。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可 以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存 储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计 算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一 个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可 用介质。