本发明涉及计算机技术领域,具体涉及一种软件定义网络的攻应用检测方法和装置。
背景技术:
网络早已经成为支撑人们生活、娱乐、工作、学习等各个方面的基础性设施之一。然而,传统互联网的架构越来越难以满足运营商、企业和用户的需求。因此,软件定义网络(softwaredefinednetwork,sdn)应运而生,sdn的核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。
sdn结合网络虚拟化技术在网络的发展中发挥越来越大的作用,但是各类针对软件定义网络控制器的攻击应用也逐渐增多。当前软件定义网络的攻击检测系统通常根据相关应用的应用程序编程接口(applicationprogramminginterface,api)调用情况判断其是否为攻击应用。但是,对于含有定向威胁攻击(advancedpersistentthreat,apt)的应用,仅仅只根据“api调用情况”一项应用行为特征很难判断该应用是否为攻击应用,导致软件定义网络对攻击应用的检测准确性较低。
技术实现要素:
为此,本发明提供一种攻击应用检测方法,以解决现有技术中仅根据api调用情况很难检测应用是否为攻击应用而导致的软件定义网络对攻击应用的检测准确性较低的问题。
为了实现上述目的,本发明第一方面提供一种网络攻击应用检测方法,该方法包括:
采集全量样本包含的全部特征;
生成多个特征组;该特征组缺省全部特征中任意一项特征;
根据上述特征组构建第一决策树;每棵第一决策树对应一个缺省特征;
根据上述第一决策树的预测正确率确定多个有效特征;
根据多个上述有效特征训练攻击应用检测模型;
将当前应用的多个有效特征对应的样本数据输入上述攻击应用检测模型,以确定当前应用是否为攻击应用。
优选地,根据第一决策树的预测正确率确定多个有效特征步骤,包括:
按照第一决策树的预测正确率由高到低对多颗第一决策树进行排序;
选取排名后j颗第一决策树对应的缺省特征作为有效特征,j为大于1的正整数。
优选地,根据多个有效特征训练攻击应用检测模型步骤,包括:
生成有效样本集;该有效样本集是多个历史应用的有效特征对应的样本数据的集合;该有效样本集按照预设比例分为训练样本集和验证样本集;
根据该训练样本集生成多个随机森林;
根据该验证样本集确定随机森林的验证错误率;
选取验证错误率最低的随机森林构建攻击应用检测模型。
优选地,根据训练样本集生成多个随机森林步骤,包括:
步骤s1,从训练样本集中随机有放回地选取多个历史应用的样本数据;
步骤s2,根据上述样本数据生成第二决策树;
步骤s3,重复上述步骤s1和s2,生成随机森林;该随机森林包括多棵第二决策树;
步骤s4,重复步骤s1、s2和s3,获得多棵随机森林。
而上述根据验证样本集确定随机森林的验证错误率步骤,包括:
提取验证样本集中历史应用的有效特征对应的样本数据;该历史应用包括多个攻击应用和多个正常应用;
将样本数据输入随机森林生成历史应用的预测类型;如果预测类型与历史应用对应的实际类型不一致,则预测错误;
确定上述随机森林的验证错误率;该验证错误率为预测错误的个数占验证样本集中历史应用数目的比率。
本发明第二方面提供一种网络攻击应用检测系统,该系统包括:
采集装置,用于采集全量样本包含的全部特征;
第一生成装置,用于生成多个特征组;该特征组缺省全部特征中任意一项特征;
第二生成装置,用于根据特征组构建第一决策树;每棵第一决策树对应一个缺省特征;
有效特征获取装置,用于根据第一决策树的预测正确率确定多个有效特征;
训练装置,用于根据多个有效特征训练攻击应用检测模型;
预测装置,用于将当前应用的多个有效特征对应的样本数据输入攻击应用检测模型,以确定当前应用是否为攻击应用。
优选地,上述有效特征获取装置,包括:
排序模块,用于按照第一决策树的预测正确率由高到低对多颗第一决策树进行排序;
选取模块,用于选取排名后j颗第一决策树对应的缺省特征作为有效特征,j为大于1的正整数。
优选地,上述训练装置,包括:
有效样本生成模块,用于生成有效样本集;该有效样本集是多个历史应用的有效特征对应的样本数据的集合;该有效样本集按照预设比例分为训练样本集和验证样本集;
随机森林生成模块,根据训练样本集生成多个随机森林;
计算模块,根据验证样本集确定随机森林的验证错误率;
模型构建模块,选取验证错误率最低的随机森林构建攻击应用检测模型。
优选地,上述训练装置,还包括:
训练获取模块,用于从上述训练样本集中随机有放回地选取多个历史应用的样本数据;
决策树生成模块,用于根据样本数据生成第二决策树;
上述随机森林生成模块,用于生成随机森林;该随机森林包括多棵第二决策树。
优选地,训练装置,还包括:
训练提取模块,用于提取验证样本集中历史应用的有效特征对应的样本数据;该历史应用包括多个攻击应用和多个正常应用;
训练预测模块,用于将上述样本数据输入随机森林生成历史应用的预测类型;如果预测类型与历史应用对应的实际类型不一致,则预测错误;
上述计算模块,用于确定随机森林的验证错误率;该验证错误率为预测错误的个数占验证样本集中历史应用数目的比率。
本发明具有如下优点:
本发明提供一种网络攻击应用检测方法,在采集全量样本包含的全部特征后生成多个特征组,该特征组缺省全部特征中任意一项特征;然后根据该特征组构建第一决策树,根据该第一决策树的预测正确率确定多个有效特征,需要说明的是,通过上述步骤确定的有效特征均与判断应用是否为攻击应用密切相关,因此可以根据多个有效特征训练攻击应用检测模型,最后将当前应用的多个有效特征对应的样本数据输入攻击应用检测模型,以确定当前应用是否为攻击应用,提高了对网络攻击应用进行检测的检测准确率。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
图1为本发明实施例提供的一种网络攻击应用检测方法的流程图;
图2为本发明实施例提供的一种网络攻击应用检测系统的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
当前软件定义网络的攻击检测系统通常只根据应用的api调用序列特征判断其是否为攻击应用。但是,对于含有定向威胁攻击(advancedpersistentthreat,apt)的应用,仅仅只根据api调用序列特征很难判断该应用是否为攻击应用,因此需要选择多个与判断应用是否为攻击应用密切相关特征参与判断该应用是否为攻击应用。
本实施例提供一种网络攻击应用检测方法,如图1所示,该方法包括:
步骤s101,采集全量样本包含的全部特征。
其中全量样本是已知应用类型的多个历史应用的样本数据的集合,即全量样本包含多个攻击应用和多个正常应用的样本数据,这些样本数据中包含历史应用的全部特征,例如调用sdn控制器的消息分类(packet_in)模块的次数、有效载荷清除频率、单位时间产生openflow流表数、单位时间内存调用操作数、网络连接次数、应用程序编程接口(applicationprogramminginterface,api)调用序列特征、应用函数数量、环路复杂度、重叠指令数、最长序列字节、程序头表的条目大小、程序头表条目数、节头表的条目大小、节头表偏移量和/或节头表索引节点数等。
步骤s102,生成多个特征组。
其中,每个特征组缺省全部特征中任意一项特征,且每个特征组的缺省特征各不相同。
步骤s103,根据特征组构建第一决策树。
需要说明的是,每个特征组中包含多个特征;每棵第一决策树包含一个根节点、多个内部节点和多个叶节点。在本实施例中,以特征组中包含的特征作为第一决策树的根节点和内部节点、以历史应用的类型为叶节点构建该第一决策树,即该第一决策树中的叶节点表示为攻击应用或者正常应用。
还需要说明的是,由于每个特征组缺省全部特征中任意一项特征且每个特征组的缺省特征各不相同,因此根据特征组构建的每棵第一决策树对应一个缺省特征。
在一个实施方式中,采集全量样本包含的全部k(k为大于1的整数)项特征,生成k个由(k-1)项特征组成的特征组,每个特征组的缺省特征均不相同;在生成k个特征组后,根据每个特征组构建一棵第一决策树,得到k棵第一决策树,其中每棵第一决策树对应一个缺省特征。
步骤s104,根据第一决策树的预测正确率确定多个有效特征。
在构建完成第一决策树之后,选取部分攻击应用和正常应用作为检测样本,使多棵第一决策树分别预测检测样本的应用类型,如果第一决策树预测的应用类型与检测样本实际的应用类型一致,则认为第一决策树预测正确;统计每棵第一决策树的预测正确率,其中预测正确率=(预测正确的检测样本的数目/总检测样本的数目)×100%。在统计完成每棵第一决策树的预测正确率后,按照第一决策树的预测正确率由高到低对多棵第一决策树进行排序,选取排名后j(j为大于1的正整数)颗第一决策树对应的缺省特征作为有效特征。
需要说明的是,当前只根据api调用序列特征很难判断应用是否为攻击应用,因此需要选择多个特征参与判断应用是否为攻击应用,而通过预测准确率对多棵第一决策树进行排序后的排序结果可知,由于缺省了相应的特征,排名后j颗第一决策树的预测准确率较低,即排名后j颗第一决策树对应的缺省特征对判断应用是否为攻击应用影响较大。因此,排名后j颗第一决策树对应的缺省特征即为参与判断该应用是否为攻击应用的特征。
步骤s105,根据多个有效特征训练攻击应用检测模型。
其中,训练攻击应用检测模型的步骤包括:
选取出多个有效特征后,根据有效特征生成有效样本集。其中,有效样本集是多个历史应用的有效特征对应的样本数据的集合,有效样本集中的历史应用包含攻击应用和正常应用。在一个实施方式中,将有效样本集按照预设比例分为训练样本集和验证样本集,例如,可以按照80%:20%的比例将有效样本集分为训练样本集和验证样本集。
在获得训练样本集和验证样本集之后,根据训练样本集生成多个随机森林。在一个实施方式中,生成多个随机森林的步骤包括:
步骤s1,从训练样本集中随机有放回地选取多个历史应用的样本数据;
步骤s2,根据样本数据生成第二决策树;每棵第二决策树包含一个根节点、多个内部节点和多个叶节点。在本实施例中,以训练样本集包含的历史应用的有效特征作为第二决策树的根节点和内部节点、以历史应用的类型为叶节点构建该第二决策树,即该第二决策树中的叶节点表示为攻击应用或者正常应用;另外,由不同的样本数据构成从根节点到每个叶节点的判断路径。
步骤s3,重复上述步骤s1和s2,生成随机森林,该随机森林包括多棵第二决策树;需要说明的是,由于不同的第二决策树有不同的预测正确率,在重复步骤s1时,每次选取的历史应用的数量应相同,即生成不同第二决策树时所用到的样本数据的数量应相同,以减小因为样本数据的数量不同产生的对第二决策树预测正确率的影响;
步骤s4,重复步骤s1、s2和s3,获得多棵随机森林,每棵随机森林所包含的第二决策树的数量相同。
在生成多颗随机森林之后,根据验证样本集确定随机森林的验证错误率,具体步骤包括:提取验证样本集中历史应用的有效特征对应的样本数据,将样本数据输入获得的随机森林生成历史应用的预测类型,在一个实施方式中,将样本数据输入随机森林后,由随机森林中包含的第二决策树根据该样本数据判断历史应用的类型,历史应用的类型为攻击应用或正常应用,选择占比较多的第二决策树判断的历史应用的类型作为该随机森林生成的历史应用的预测类型,即如果一半以上的第二决策树根据该样本数据判断历史应用的类型为攻击应用或正常应用,则该随机森林生成的历史应用的预测类型对应为攻击应用或正常应用。如果预测类型与历史应用对应的实际类型不一致,则认为该随机森林预测错误;确定每个随机森林的验证错误率,该验证错误率为预测错误的个数占验证样本集中历史应用数目的比率。在确定每个随机森林的验证错误率后,选取验证错误率最低的随机森林构建攻击应用检测模型。
步骤s106,将当前应用的多个有效特征输入应用检测模型,以确定当前应用是否为攻击应用。
其中,当前应用是新上线的应用,为了保障网络的安全性,需要检测新上线的应用是否为攻击应用。提取当前应用的多个有效特征对应的样本数据,将该样本数据输入训练好的攻击应用检测模型,以确定该当前应用是否为攻击应用。
本实施例提供一种网络攻击应用检测方法,在采集全量样本包含的全部特征后生成多个特征组,该特征组缺省全部特征中任意一项特征;然后根据该特征组构建第一决策树,根据该第一决策树的预测正确率确定多个有效特征,需要说明的是,通过上述步骤确定的有效特征均与判断应用是否为攻击应用密切相关,因此可以根据多个有效特征训练攻击应用检测模型,最后将当前应用的多个有效特征对应的样本数据输入攻击应用检测模型,以确定当前应用是否为攻击应用,提高了对网络攻击应用进行检测的检测准确率。
本实施例提供一种网络攻击应用检测系统,如图2所示,该系统包括:采集装置21、第一生成装置22、第二生成装置23、有效特征获取装置24、训练装置25和/或预测装置26。
其中,采集装置21用于采集全量样本包含的全部特征。其中全量样本是已知应用类型的多个历史应用的样本数据的集合,即全量样本包含多个攻击应用和多个正常应用的样本数据,这些样本数据中包含历史应用的全部特征,例如调用sdn控制器的消息分类(packet_in)模块的次数、有效载荷清除频率、单位时间产生openflow流表数、单位时间内存调用操作数、网络连接次数、应用程序编程接口(applicationprogramminginterface,api)调用序列特征、应用函数数量、环路复杂度、重叠指令数、最长序列字节、程序头表的条目大小、程序头表条目数、节头表的条目大小、节头表偏移量和/或节头表索引节点数等。
第一生成装置22,用于生成多个特征组。其中,每个特征组缺省全部特征中任意一项特征,且每个特征组的缺省特征各不相同。
第二生成装置23,用于根据特征组构建第一决策树。需要说明的是,每个特征组中包含多个特征;每棵第一决策树包含一个根节点、多个内部节点和多个叶节点。在本实施例中,以特征组中包含的特征作为第一决策树的根节点和内部节点、以历史应用的类型为叶节点构建该第一决策树,即该第一决策树中的叶节点表示为攻击应用或者正常应用。还需要说明的是,由于每个特征组缺省全部特征中任意一项特征且每个特征组的缺省特征各不相同,因此根据特征组构建的每棵第一决策树对应一个缺省特征。
在一个实施方式中,采集全量样本包含的全部k(k为大于1的整数)项特征,生成k个由(k-1)项特征组成的特征组,每个特征组的缺省特征均不相同;在生成k个特征组后,根据每个特征组构建一棵第一决策树,得到k棵第一决策树,其中每棵第一决策树对应一个缺省特征。
有效特征获取装置24,用于根据第一决策树的预测正确率确定多个有效特征。有效特征获取装置24还包括预测模块、统计模块、排序模块和/或选取模块。
在构建完成第一决策树之后,预测模块选取部分攻击应用和正常应用作为检测样本,使多棵第一决策树分别预测检测样本的应用类型,如果第一决策树预测的应用类型与检测样本实际的应用类型一致,则认为第一决策树预测正确;统计模块统计每棵第一决策树的预测正确率,其中预测正确率=(预测正确的检测样本的数目/总检测样本的数目)×100%。在统计模块统计完成每棵第一决策树的预测正确率后,排序模块按照第一决策树的预测正确率由高到低对多棵第一决策树进行排序,选取模块选取排名后j(j为大于1的正整数)颗第一决策树对应的缺省特征作为有效特征。
需要说明的是,当前只根据api调用序列特征很难判断应用是否为攻击应用,因此需要选择多个特征参与判断应用是否为攻击应用,而通过预测准确率对多棵第一决策树进行排序后的排序结果可知,由于缺省了相应的特征,排名后j颗第一决策树的预测准确率较低,即排名后j颗第一决策树对应的缺省特征对判断应用是否为攻击应用影响较大。因此,排名后j颗第一决策树对应的缺省特征即为参与判断该应用是否为攻击应用的特征。
该系统还包括训练装置25,用于根据多个有效特征训练攻击应用检测模型。其中,训练装置25包括:有效样本生成模块、随机森林生成模块、训练获取模块、决策树生成模块、计算模块、训练提取模块、训练预测模块和/或模型构建模块。
选取出多个有效特征后,有效样本生成模块根据有效特征生成有效样本集。其中,有效样本集是多个历史应用的有效特征对应的样本数据的集合,有效样本集中的历史应用包含攻击应用和正常应用。在一个实施方式中,将有效样本集按照预设比例分为训练样本集和验证样本集,例如,可以按照80%:20%的比例将有效样本集分为训练样本集和验证样本集。
在获得训练样本集和验证样本集之后,随机森林生成模块根据训练样本集生成多个随机森林。在一个实施方式中,训练装置205还包括:
训练获取模块,用于从训练样本集中随机有放回地选取多个历史应用的样本数据;
决策树生成模块,用于根据样本数据生成第二决策树;每棵第二决策树包含一个根节点、多个内部节点和多个叶节点。在本实施例中,以训练样本集包含的历史应用的有效特征作为第二决策树的根节点和内部节点、以历史应用的类型为叶节点构建该第二决策树,即该第二决策树中的叶节点表示为攻击应用或者正常应用;另外,由不同的样本数据构成从根节点到每个叶节点的判断路径。
决策树生成模块生成第二决策树之后,随机森林生成模块生成随机森林,该随机森林包括多棵第二决策树;需要说明的是,由于不同的第二决策树有不同的预测正确率,在训练获取模块随机有放回地选取多个历史应用的样本数据时,每次选取的历史应用的数量应相同,即生成不同第二决策树时所用到的样本数据的数量应相同,以减小因为样本数据的数量不同产生的对第二决策树预测正确率的影响;
在随机森林生成模块生成多颗随机森林之后,计算模块根据验证样本集确定随机森林的验证错误率,具体的:训练提取模块提取验证样本集中历史应用的有效特征对应的样本数据,训练预测模块将样本数据输入获得的随机森林生成历史应用的预测类型,在一个实施方式中,将样本数据输入随机森林后,由随机森林中包含的第二决策树根据该样本数据判断历史应用的类型,历史应用的类型为攻击应用或正常应用,选择占比较多的第二决策树判断的历史应用的类型作为该随机森林生成的历史应用的预测类型,即如果一半以上的第二决策树根据该样本数据判断历史应用的类型为攻击应用或正常应用,则该随机森林生成的历史应用的预测类型对应为攻击应用或正常应用。如果预测类型与历史应用对应的实际类型不一致,则认为该随机森林预测错误。计算模块还用于确定每个随机森林的验证错误率,该验证错误率为预测错误的个数占验证样本集中历史应用数目的比率。在确定每个随机森林的验证错误率后,模型构建模块选取验证错误率最低的随机森林构建攻击应用检测模型。
预测装置26,将当前应用的多个有效特征输入应用检测模型,以确定当前应用是否为攻击应用。
其中,当前应用是新上线的应用,为了保障网络的安全性,需要检测新上线的应用是否为攻击应用。预测装置26提取当前应用的多个有效特征对应的样本数据,并将该样本数据输入训练好的攻击应用检测模型,以确定该当前应用是否为攻击应用。
本实施例提供一种网络攻击应用检测装置,采集装置21在采集全量样本包含的全部特征后生第一生成装置22成多个特征组,该特征组缺省全部特征中任意一项特征;然后第二生成装置23根据该特征组构建第一决策树,有效特征获取装置24根据该第一决策树的预测正确率确定多个有效特征,需要说明的是,上述确定的有效特征均与判断应用是否为攻击应用密切相关,因此训练装置25可以根据多个有效特征训练攻击应用检测模型,最后预测装置26将当前应用的多个有效特征对应的样本数据输入攻击应用检测模型,以确定当前应用是否为攻击应用,提高了对网络攻击应用进行检测的检测准确率。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。