首页 / 专利库 / 人工智能 / 机器学习 / 深度学习 / 未知恶意代码的深度学习检测方法

未知恶意代码的深度学习检测方法

阅读:610发布:2023-12-09

专利汇可以提供未知恶意代码的深度学习检测方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了信息安全技术领域的未知恶意代码的 深度学习 检测方法。它包括下列步骤:1)利用字节级n元文法提取训练集中文件的 特征向量 ;2)构建HTM网络结构,并确定HTM结构 中底 层每个 节点 的输入数据长度;3)将特征向量作为输入,利用HTM 算法 进行序列模式学习训练和分类推导;4)利用字节级n元文法提取测试集中的文件的特征向量;5)将特征向量输入到完成训练的HTM网络进行序列识别,以确定测试集中的文件是否含有恶意代码。本发明的有益效果为:具有较强的抗噪、容错能 力 ,适应性强。同时,提高了恶意代码检测的识别能力和识别率,实现了准确检测新出现的恶意代码的目标。,下面是未知恶意代码的深度学习检测方法专利的具体信息内容。

1.未知恶意代码的深度学习检测方法,其特征在于,包括下列步骤:
1)利用字节级n元文法提取训练集中文件的特征向量
2)构建一个多层的HTM网络模型,并通过截取文件特征向量方法确定HTM结构中底层每个节点的输入数据长度;
3)以截取的文件特征向量作为HTM网络的输入,底层所有节点学习后,经过推导阶段的逐层输出连接,完成HTM网络所有层节点的学习训练;
4)利用字节级n元文法提取测试集中的文件的特征向量;
5)将特征向量输入到完成训练的HTM网络进行序列识别,以确定测试集中的文件是否含有恶意代码。
2.根据权利要求1所述的未知恶意代码的深度学习检测方法,其特征在于,所述步骤
2)具体包括下列步骤:
21)选择一个F层的HTM网络模型,定义除底层外每个节点有M个子节点
22)利用公式l=L/M(F-1)截取文件特征向量,并将截取的文件特征向量依次作为HTM网络底层每一个节点的输入样本,其中F为HTM网络结构的层数,M为除底层外节点的子节点的数量,L为利用字节级n元文法方法提取的文件特征向量长度,l为HTM网络底层的各节点的输入样本长度。
3.根据权利要求1所述的未知恶意代码的深度学习检测方法,其特征在于,所述步骤
3)具体包括下列步骤:
31)以截取的文件特征向量作为HTM网络的输入,底层节点进入学习阶段,直到底层所有节点的空间池都完成空间模式的学习、暂态池都完成时间分组的学习;
32)底层节点在经步骤31)中学习阶段结束后,底层节点进入推导阶段,新的样本输入经底层节点推导后,输出给其位于HTM网络下一层的父节点,具有相同父节点的下层节点的输出经连接后,成为下一层节点学习阶段的输入,下一层节点进入学习阶段重复步骤31)中节点的学习过程;
33)重复步骤32)的过程,直到HTM网络所有层的节点都完成了序列模式的学习训练。
4.根据权利要求3所述的未知恶意代码的深度学习检测方法,其特征在于,所述步骤
31)具体包括下列步骤:
311)输入到节点的二进制序列输入到空间池,空间池使用最大距离D来学习这些序列的聚类;空间池使用最大距离D的方法储存了输入模式的子集,称为聚类中心;随着时间的增加,空间池在单位时间内产生的新序列模式的数量会减少,当每个时间周期的新聚类中心的数量低于设定好的阈值时,聚类过程将停止;
312)空间池对已经学习的序列模式输出给暂态池,暂态池根据序列模式的时间邻接性对序列模式进行分组,直到所有的序列模式都被分组后,分组计算结束。
5.根据权利要求3所述的未知恶意代码的深度学习检测方法,其特征在于,所述步骤
32)具体包括下列步骤:
-
321)利用公式 计算输入序列e 基于节点空间池的空间模式ci
的概率分布,经正则化处理后作为空间池的输出,其中 代表非零的
-
空间模式,M是此节点的子节点的数量,e 为来自底层的待识别的输入序列;
322)基于空间池的输出y,利用公式 计算暂态池的输出,其中,Nc
为y的向量长度和空间池空间模式个数,λ长度为Ng。

说明书全文

未知恶意代码的深度学习检测方法

技术领域

[0001] 本发明属于信息安全技术领域,尤其涉及未知恶意代码的深度学习检测方法。

背景技术

[0002] 随着计算机技术和网络技术的不断发展,计算机已经成为人们日常生活中不可或缺的工具,为了获取经济、政治利益或进行个人报复,大量组织或个人使用各种恶意代码进行非法活动,随之而来的是各类恶意代码层出不穷,恶意代码所采用的技术也越来越先进,其传播、危害、隐藏等能不断增强。虽然各种恶意代码的检测技术也在不断的发展,但目前恶意代码的检测技术和检测能力仍然滞后于恶意代码的发展,特别是对未知恶意代码的检测能力对恶意代码检测技术提出了巨大的挑战。
[0003] 目前计算机恶意代码检测技术主要有两种,一种是基于特征码的模式匹配技术,另一种是基于恶意代码行为规则的检测技术。
[0004] 基于特征码的模式匹配技术是将被检测文件的特征代码与特征数据库中的恶意代码特征字符串进行匹配,当匹配成功时代表被检测文件中含恶意代码,否则认为被检测文件不含恶意代码。该技术需要技术人员第一时间发现并获取恶意代码样本,并能够提取出恶意代码的唯一标识特征码。此外还需及时将特征码更新到恶意代码特征码库中,以便在该恶意代码大规模传播和爆发前检测出来。该检测技术不适用于对引入多态和变形技术的恶意代码检测,以及传播迅速、破坏力强、针对性强的恶意代码的检测。基于恶意代码行为规则的检测技术,是依据专家预先定义的恶意代码常见行为规则来检测恶意代码。该技术主要原理是,恶意代码的运行行为经常伴随用户权限变更、注册表修改、网络端口开放、异常网络通信等行为,或者某种特定系统操作序列。该技术存在严重的滞后性缺陷,特别是随着计算机运行速度的大幅度提升,等到检测到恶意代码行为时,往往已经给系统带来了无法弥补的损失。上述两种检测技术都是一种事后检测技术,只能检测到已知恶意代码,或者在恶意代码被执行后才能被检测到,然而在此期间恶意代码已经造成了破坏。

发明内容

[0005] 本发明针对上述缺陷公开了未知恶意代码的深度学习检测方法,它包括下列步骤:
[0006] 1)利用字节级n元文法提取训练集中文件的特征向量
[0007] 2)构建一个多层的HTM网络模型,并通过截取文件特征向量方法确定HTM结构中底层每个节点的输入数据长度;
[0008] 3)以截取的文件特征向量作为HTM网络的输入,底层所有节点学习后,经过推导阶段的逐层输出连接,完成HTM网络所有层节点的学习训练;
[0009] 4)利用字节级n元文法提取测试集中的文件的特征向量;
[0010] 5)将特征向量输入到完成训练的HTM网络进行序列识别,以确定测试集中的文件是否含有恶意代码。
[0011] 所述步骤2)具体包括下列步骤:
[0012] 21)选择一个F层的HTM网络模型,定义除底层外每个节点有M个子节点
[0013] 22)利用公式l=L/M(F-1)截取文件特征向量,并将截取的文件特征向量依次作为HTM网络底层每一个节点的输入样本,其中F为HTM网络结构的层数,M为除底层外节点的子节点的数量,L为利用字节级n元文法方法提取的文件特征向量长度,l为HTM网络底层的各节点的输入样本长度。
[0014] 所述步骤3)具体包括下列步骤:
[0015] 31)以截取的文件特征向量作为HTM网络的输入,底层节点进入学习阶段,直到底层所有节点的空间池都完成空间模式的学习、暂态池都完成时间分组的学习;
[0016] 32)底层节点在经步骤31)中学习阶段结束后,底层节点进入推导阶段,新的样本输入经底层节点推导后,输出给其位于HTM网络下一层的父节点,具有相同父节点的下层节点的输出经连接后,成为下一层节点学习阶段的输入,下一层节点进入学习阶段重复步骤31)中节点的学习过程;
[0017] 步骤33)重复步骤32)的过程,直到HTM网络所有层的节点都完成了序列模式的学习训练。
[0018] 所述步骤31)具体包括下列步骤:
[0019] 311)输入到节点的二进制序列输入到空间池,空间池使用最大距离参数D来学习这些序列的聚类;空间池使用最大距离D的方法储存了输入模式的子集,称为聚类中心;随着时间的增加,空间池在单位时间内产生的新序列模式的数量会减少,当每个时间周期的新聚类中心的数量低于设定好的阈值时,聚类过程将停止;
[0020] 312)空间池对已经学习的序列模式输出给暂态池,暂态池根据序列模式的时间邻接性对序列模式进行分组,直到所有的序列模式都被分组后,分组计算结束。
[0021] 所述步骤32)具体包括下列步骤:
[0022] 321)利用公式 计算输入序列e-基于节点空间池的空间模式ci的概率分布,经正则化处理后作为空间池的输出,其中 代表非
零的空间模式,M是此节点的子节点的数量,e-为来自底层的待识别的输入序列;
[0023] 322)基于空间池的输出y,利用公式 计算暂态池的输出,其中,Nc为y的向量长度和空间池空间模式个数,λ长度为Ng。
[0024] 本发明的有益效果为:引入HTM算法,模仿人类新大脑皮层的结构和工作原理的新型人工智能深度学习算法,采用分层树状网络结构并应用贝叶斯网络中节点间信息持续共享原理和信任度传递原理,将复杂问题转化为模式匹配与预测。而且,对输入数据不需要进行复杂预处理,具有较强的抗噪、容错能力,适应性强。同时,在对旧模式进行推导的过程中能对新的输入模式进行学习,提高了恶意代码检测的识别能力和识别率,实现了准确检测新出现的恶意代码的目标。附图说明
[0025] 图1是未知恶意代码的检测方法的过程示意图;
[0026] 图2a是HTM分层树状结构模型示意图;
[0027] 图2b是节点K的空间池和暂态池示意图;
[0028] 图3是HTM算法训练过程的一个节点的学习过程示意图;
[0029] 图4是HTM算法推导过程中节点k的信任度传递计算细节示意图。

具体实施方式

[0030] 下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
[0031] 本发明解决问题的思路是:以含有恶意代码的文件集为训练样本,采用字节级n元文法对训练集文件进行特征选择,从而每个文件对应一个特征向量,特征向量作为HTM算法的输入来训练HTM网络。最后对未知文件进行特征选择产生对应的特征向量,作为完成训练的HTM网络的输入对其进行模式识别,从而分辨出其是否为包含恶意代码的文件。
[0032] 如图1所示,未知恶意代码的智能检测方法包括如下步骤:
[0033] 1)利用字节级n元文法提取训练集中文件的特征向量。
[0034] 在网上能够下载到专用来进行恶意代码检测的标准数据集,以根据特定规则从标准数据集中选择文件来构造训练集,比如可以根据恶意代码种类选择文件构造训练集。
[0035] 字节级n元文法是对二进制字节流或文本采用一个n字节大小的滑动窗口进行取词,每个词都是n个字节大小。比如一个文本文件的内容为“abcdef”,那么它的2-grams序列为:ab、bc、cd、de、ef,它的3-grams序列为:abc、bcd、cde、def。
[0036] 以一个文件的内容是“abcd”为例,对该文件提取2-grams序列为:ab、bc、cd,这样就说这个文件具有三个属性,可以利用这三个属性组成的向量来表示这个文件,向量为:{ab,bc,cd}。
[0037] 对每个属性进行量化,可以得到该文件的特征向量。以上述向量{ab,bc,cd}为例,a在字母表中位置为1,b为2,c为3,d为4,以位置和的规则进行量化,那么,ab的量化结果为3,bc的量化结果5,cd的量化结果为7,而向量{3,5,7}即为该文件的特征向量。
[0038] 2)构建一个多层的HTM网络模型,并通过截取文件特征向量方法确定HTM结构中底层每个节点的输入数据长度。如图2a所示是一个3层树状结构模型,除底层节点外,每个节点都有两个子节点。如图2b所示是HTM结构中单个节点k的内部结构图,它有空间池和暂态池构成。步骤2)具体包括以下步骤:
[0039] 21)选择一个F层的HTM网络结构,定义除底层外每个节点有M个子节点。
[0040] 如图2a所示,选择F=3,M=2,则该HTM网络L3层、L2层、L1层分别有1、2、4个节点。
[0041] 22)利用公式l=L/M(F-1)截取文件特征向量,并将截取的文件特征向量依次作为HTM网络底层每一个节点的输入样本,其中F为HTM网络结构的层数,M为除底层外节点的子节点的数量,L为利用字节级n元文法方法提取的文件特征向量长度,l为HTM网络底层的各节点的输入样本长度。
[0042] 假设文件特征向量为{1,2,3,4,5,6,7,8}的长度L为8,则l=2,即HTM网络底层的各节点的输入样本分别为{1,2}、{3,4}、{5,6}、{7,8}。
[0043] 3)以截取的文件特征向量作为HTM网络的输入,底层所有节点学习后,经过推导阶段的逐层输出连接,完成HTM网络所有层节点的学习训练。
[0044] 该阶段的学习训练过程为逐层完成的,即底层的学习完成后,新的输入到来时,底层的节点进入推导阶段,推导的输出结果作为下一层节点学习阶段的输入;对于单个节点来说,也是在节点空间池序列模式训练完成后,暂态池才开始进行时间分组。
[0045] 步骤3)具体包括以下步骤:
[0046] 31)如图3所示,以截取的文件特征向量作为HTM网络的输入,底层节点进入学习阶段,直到底层所有节点的空间池都完成空间模式的学习、暂态池都完成时间分组的学习。
[0047] 具体来说,步骤31)具体又包括下列步骤:
[0048] 311)将截取的文件特征向量的二进制序列模式输入到最底层节点的空间池中,空间池使用最大距离D来学习这些序列的聚类。空间池使用最大距离D的方法储存了输入的二进制序列模式的子集,称为聚类中心。随着时间的增加,空间池在单位时间内产生的新序列模式的数量会减少,当一个单位时间周期T的新聚类中心的数量低于设定好的阈值时,聚类过程将停止。时间周期T可选不为0的任意值,阈值为非0的整数。为了提高学习效率,时间周期T和阈值一般取一个较小的值(比如时间周期T取5s、阈值取1)。
[0049] D的含义是认定一个二进制序列模式不同于已存在的聚类中心的最小欧式距离。对于每个输入二进制序列模式,都要检查是否存在欧式距离D之内的聚类中心(分为两种情况:如果存在,则维持现状;如果不存在,把此新的二进制序列模式加入聚类中心列表中)。
[0050] 欧氏距离算法如下:设x,y∈RN,则x,y的欧氏距离为:
[0051]
[0052] 312)空间池对已经学习的二进制序列模式输出给暂态池,暂态池根据序列模式的时间邻接性对序列模式进行分组,直到所有的序列模式都被分组后,分组计算结束。
[0053] 步骤312)具体包括以下步骤:
[0054] 3121)当暂态池接受空间池的输入时,二进制序列模式按时间关联生成时间邻接矩阵,在时间邻接矩阵形成后,必须分割成组。在HTM中采用Greedy算法来实现时间分组。
[0055] 3122)找到没有包含在分组中的最大连接聚类点。最大连接聚类点仅仅是它在时间连接矩阵中对应行有最大的和值的聚类。
[0056] 3123)选择步骤3122)中最大连接聚类点的前Ntop(Ntop是指定参数)个最大连接邻居聚类点,暂态池把选出的这些聚类点加入当前分组中。
[0057] 3124)对每一个新加入分组的聚类点X,重复步骤3123)。当X的所有最接近的Ntop个邻居聚类点像X一样加入到分组后,这个分组过程将自动停止。当分组数接近某一值(最大分组数),而分组过程仍然没有自动停止时,分组过程将被终止。
[0058] 3125)聚类点的结果集将作为一个新的分组加入到暂态池。然后返回步骤3122)直到所有的聚类点被分组。
[0059] 32)底层节点在经步骤31)中学习阶段结束后,底层节点进入推导阶段,新的样本(二进制序列模式)输入经底层节点推导后,输出给其位于HTM网络下一层的父节点(相对于子节点而言),具有相同父节点的子节点的输出经连接后,成为父节点学习阶段的输入,父节点进入学习阶段重复步骤31)中节点的学习过程。
[0060] 如图4所示为输入的二进制序列模式在节点进行的推导阶段示意图,步骤32)具体包括下列步骤:
[0061] 321)计算输入的二进制序列模式基于空间池的空间模式的概率分布P(e-|ci),经正则化处理后作为空间池的输出向量y。
[0062] 学习阶段输入二进制序列模式在空间池生成的空间模式为ith聚类中心ci,推导- th -节点底层输入序列e 基于i 聚类中心的概率分布P(e|ci)是可变的,可以通过下式计算:
[0063]
[0064] 式(1)中,γ为比例常数,第i聚类中心表示为 , 代表不为零-的空间模式,M是此节点的子节点的数量,e 为来自底层的待识别的输入序列。
代表输入,如果该节点是最底层节点,则 为该节点的输入二进制序列模式;如果该节点不是最底层节点,则 为来自该节点的子节点的暂态池输出概率分布,即(对P(e-|gi)的计算公式见公式(4))。所有ith聚类中心ci的概率分
- - -
布都可通过P(e|ci)计算,然后将P(e|ci)正则化为向量y(i),因此有y(i)和P(e|ci)-
成比例,可记为y(i)∝P(e|ci),所有的y(i)组成了该节点空间池的输出向量y,记为-
y=[y(1),y(2),...,y(Nc)](Nc为空间池空间池空间模式个数),所有的P(e|ci)构成了- - - - -
P(e|C)记为P(e|C)=[P(e|c1),P(e|c2),..., ,因此有y与P(e|C)成比例,记-
为y∝P(e|C)。
[0065] 322)基于空间池的输出向量y,计算暂态池的输出。
[0066] 暂态池应用Belief Propagation原理进行推理。如图4所示,空间池的输出为向量y,此向量长度为N(c 亦为空间池空间模式个数),向量中第i个元素对应于第i聚类中心ci ,这些聚类中心作为向量[ (长度为M),其中r表示这些聚类中心的子分组索引。y的第i个元素计算公式为:
[0067]
[0068] 式(2)中,α1为一个随意的缩放比例常数,为了避免信息的下溢,它通常设置为固定值,M为子节点个数, 表示来自子节点mi的二进制序列模式, 表示第i聚类中心的来自子节点mi的子分组索引。
[0069] 根据公式(1)及步骤321过程说明,在节点k有yk与P(e-|Ck)成比例,即k - k k - k |y ∝P(e|C),y 与P(e|C)分别为y与P(e-C)在节点k处的实例。
[0070] 暂态池基于空间池的输入来计算输出。输出为λ,其长度为Ng(暂态池时间分组数),λ=[λ(1),λ(2),...,λ(Nc)]的第i个元素计算公式如下:
[0071]
[0072] 式(3)中,P(cj|gi)代表空间模式cj对于暂态池中分组gi的条件概率分布,y(j)-代表来自空间池的y的第j个元素,j的取值为1-Nc。由于y(j)∝P(e|cj),并且[0073]
[0074] 其中P(e-|gi)代表底层输入序列e-基于暂态池分组gi的概率分布,P(e-|Gk)为节点k上所有的P(e-|gi)的构成的向量。
[0075] 因此λ(i)∝P(e-|gi)对于所有i成立,在节点k上有λk与P(e-|Gk)成比例,即λk∝P(e-|Gk)。暂态池的输出就是该节点的输出。
[0076] 33)重复步骤32)的过程,直到HTM网络所有层的节点都完成了二进制序列模式的学习训练。
[0077] 如步骤32)那样,一层训练完成后,该层节点转入推导阶段,下一层节点(父节点)利用上一层节点(子节点)的输出作为输入进行序列模式的学习。
[0078] 4)利用字节级n元文法提取测试集中的文件的特征向量。
[0079] 如步骤1)那样,利用字节级n元文法提取测试集中文件的特征向量。测试集可以从网络上提供的恶意代码测试数据集中进行选取。
[0080] 5)将特征向量输入到完成训练的HTM网络进行序列识别,以确定测试集中的文件是否含有恶意代码。
[0081] 如步骤322)的推导过程那样,整个HTM结构中所有层节点都处于推导阶段,利用空间池序列模式推导和暂态池分组推导对步骤4)提取的特征向量进行模式推导,顶层节点的输出向量λ即为整个HTM网络的输出模式向量,顶层节点暂态池的输出概率P(e-|Gk)即为恶意代码匹配率。当顶层节点暂态池的输出概率P(e-|Gk)足够大时,比如我们设定为大于85%,那么我们就可认为输入文件含恶意代码,否则认为没有恶意代码。
[0082] 本发明以恶意文件的样本集作为训练集,利用HTM模式识别算法训练HTM网络,然后利用HTM网络对未知文件进行模式识别和分类推导,以确定其是否为恶意文件。在对文件进行特征提取的过程中采用字节级n元文法算法,对大量的文件特征属性特征提取。在模式识别和分类学习算法中引入HTM算法,该算法是模仿人类新大脑皮层的结构和工作原理的新型人工智能算法,它应用贝叶斯网络中节点间信息持续共享原理和信任度传递原理,将复杂问题转化为模式匹配与预测,经过训练提取样本的空间序列模式和时间模式分组,并利用Belief Propagation方法把各层局部模式组汇总归类,最终得到整体模式组,在识别阶段,根据各层学习的序列模式,经过匹配完成恶意代码样本识别。HTM算法因其良好的抗噪、容错、适应性、自学习能力,可有效提高识别率。
[0083] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈