一种报文处理方法及装置转让专利

申请号 : CN201910482188.0

文献号 : CN110289992A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王春磊

申请人 : 新华三信息安全技术有限公司

摘要 :

本申请提供了一种报文处理方法及装置。方案如下:安全防护装置的报文分类单元接收安全防护设备的报文交换单元发送的待处理报文,待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据,将第一类特征数据以及所述第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到,向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据分类结果对待处理报文进行分类处理。通过本申请提供的技术方案,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。

权利要求 :

1.一种报文处理方法,其特征在于,应用于安全防护设备的报文分类单元,包括:接收所述安全防护设备的报文交换单元发送的待处理报文,所述待处理报文包括五元组;将所述五元组作为第一类特征数据,并对所述待处理报文所属的数据流进行流量统计,得到第二类特征数据;

将所述第一类特征数据以及所述第二类特征数据输入预设报文分类器,得到所述待处理报文的预测类别,其中,所述预设报文分类器是根据预设训练集训练得到;

向所述安全防护设备的中央处理单元CPU发送所述待处理报文的预测类别,以使所述CPU根据所述待处理报文的预测类别对所述待处理报文进行分类处理。

2.根据权利要求1所述的方法,其特征在于,所述将所述第一类特征数据以及所述第二类特征数据输入预设报文分类器,得到所述待处理报文的预测类别,包括:将所述第一类特征数据以及所述第二类特征数据输入预设报文分类器;

分别计算在所述待处理报文具有每类特征数据的情况下,所述待处理报文的类别为非法报文的概率值;

根据每类特征数据对应的概率值,计算所述待处理报文的类别为非法报文的总概率值;

若所述总概率值大于预设概率阈值,则确定所述待处理报文的预测类别为非法报文;

若所述总概率值不大于所述预设概率阈值,则确定所述待处理报文的预测类别为合法报文。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:检测是否接收到所述CPU发送的训练指令,所述训练指令包括目标报文的标识和所述目标报文的真实类别;

若是,则根据所述目标报文的标识,获取所述目标报文的第一类特征数据和第二类特征数据;

利用所述目标报文的第一特征类特征数据、第二类特征数据以及所述目标报文的真实类别,训练所述预设报文分类器。

4.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:获取训练数据,所述训练数据包括训练报文的第一类特征数据、第二类特征数据以及所述训练报文的真实类别;

将所述训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;

分别计算在所述训练报文具有每类特征数据的情况下,所述训练报文的类别为非法报文的概率值;

根据每类特征数据对应的概率值,计算所述训练报文的类别为非法报文的总概率值;

根据所述总概率值与预设概率阈值的比较结果,确定所述训练报文的预测类别;

根据所述训练报文的真实类别,获取所述训练报文的预测类别的错误率;

判断所述错误率是否小于预设错误率阈值;

若否,则调整所述朴素贝叶斯分类器的学习率,并再次将所述训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;

若是,则将当前所述朴素贝叶斯分类器确定为预设报文分类器。

5.一种报文处理方法,其特征在于,应用于安全防护设备的中央处理单元CPU,包括:接收所述安全防护设备的报文交换单元发送的待处理报文;

接收所述安全防护设备的报文分类单元发送的所述待处理报文的预测类别,所述预测类别为所述报文分类单元将根据所述待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器后得到的分类结果;

根据所述待处理报文的预测类别对所述待处理报文进行分类处理。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:统计预设时间段内接收到目标报文的数量;

若所述目标报文的数量大于预设数量阈值,则确定所述目标报文的真实类别为非法报文;

向所述报文分类单元发送训练指令,所述训练指令包括所述目标报文的标识和所述目标报文的真实类别,以使所述报文分类单元根据所述目标报文的标识,获取所述目标报文的第一类特征数据和第二类特征数据,并根据所述目标报文的第一类特征数据、第二类特征数据以及所述目标报文的真实类别,训练所述预设报文分类器。

7.一种报文处理装置,其特征在于,应用于安全防护设备的报文分类单元,包括:第一接收模块,用于接收所述安全防护设备的报文交换单元发送的待处理报文,所述待处理报文包括五元组;将所述五元组作为第一类特征数据,并对所述待处理报文所属的数据流进行流量统计,得到第二类特征数据;

第一确定模块,用于将所述第一类特征数据以及第二类特征数据输入预设报文分类器,得到所述待处理报文的预测类别,其中,所述预设报文分类器是根据预设训练集训练得到;

第一发送模块,用于向所述安全防护设备的中央处理单元CPU发送所述待处理报文的预测类别,以使所述CPU根据所述待处理报文的预测类别对所述待处理报文进行分类处理。

8.根据权利要求7所述的装置,其特征在于,所述第一确定模块,具体用于将所述第一类特征数据以及所述第二类特征数据输入预设报文分类器;分别计算在所述待处理报文具有每类特征数据的情况下,所述待处理报文的类别为非法报文的概率值;根据每类特征数据对应的概率值,计算所述待处理报文的类别为非法报文的总概率值;若所述总概率值大于预设概率阈值,则确定所述待处理报文的预测类别为非法报文;若所述总概率值不大于所述预设概率阈值,则确定所述待处理报文的预测类别为合法报文。

9.根据权利要求7所述的装置,其特征在于,所述装置还包括:检测模块,用于检测是否接收到所述CPU发送的训练指令,所述训练指令包括所述目标报文的标识和所述目标报文的真实类别;

第一获取模块,用于在所述检测模块的检测结果为是时,根据所述目标报文的标识,获取所述目标报文的第一类特征数据和第二类特征数据;

训练模块,用于利用所述目标报文的第一类特征数据、第二类特征数据以及所述目标报文的真实类别,训练所述预设报文分类器。

10.根据权利要求7或9所述的装置,其特征在于,所述装置还包括:第二获取模块,用于获取训练数据,所述训练数据包括训练报文的第一类特征数据、第二类特征数据以及所述训练报文的真实类别;

输入模块,用于将所述训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;

第一计算模块,用于分别计算在所述训练报文具有每类特征数据的情况下,所述训练报文的类别为非法报文的概率值;

第二计算模块,用于根据每类特征数据对应的概率值,计算所述训练报文的类别为非法报文的总概率值;

第二确定模块,用于根据所述总概率值与预设概率阈值的比较结果,确定所述训练报文的预测类别;

第三获取模块,用于根据所述训练报文的真实类别,获取所述训练报文的预测类别的错误率;

判断模块,用于判断所述错误率是否小于预设错误率阈值;

调整模块,用于在所述判断模块的判断结果为否时,调整所述朴素贝叶斯分类器的学习率,并再次将所述训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;

第三确定模块,用于在所述判断模块的判断结果为是时,将当前所述朴素贝叶斯分类器确定为预设报文分类器。

11.一种报文处理装置,其特征在于,应用于安全防护设备的中央处理单元CPU,包括:第二接收模块,用于接收所述安全防护设备的报文交换单元发送的待处理报文;

第三接收模块,用于接收所述安全防护设备的报文分类单元发送的所述待处理报文的预测类别,所述预测类别为所述报文分类单元将根据所述待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器得到的分类结果;

处理模块,用于根据所述待处理报文的预测类别对所述待处理报文进行分类处理。

12.根据权利要求11所述的装置,其特征在于,所述装置还包括:统计模块,用于统计预设时间段内接收到目标报文的数量;

第四确定模块,用于在所述统计模块统计得到的目标报文的数量大于预设数量阈值时,确定所述目标报文的真实类别为非法报文;

第二发送模块,向所述报文分类单元发送训练指令,所述训练指令包括所述目标报文的标识和所述目标报文的真实类别,以使所述报文分类单元根据所述目标报文的标识,获取所述待处理报文的第一类特征数据和第二类特征数据,并根据所述目标报文的第一类特征数据、第二类特征数据以及所述目标报文的真实类别,训练所述预设报文分类器。

说明书 :

一种报文处理方法及装置

技术领域

[0001] 本申请涉及网络安全技术领域,特别是涉及一种报文处理的方法及装置。

背景技术

[0002] 随着网络技术的不断发展,网络中的攻击手段也日益多样化和复杂化,这使得对网络进行安全防护显得尤为重要。
[0003] 目前,在传统的安全防护过程中,通过安全防护设备的中央处理单元(英文:Central Processing Unit,简称:CPU)对网络报文进行特征提取,并根据提取到的特征数据判断网络报文是否合法,从而将网络报文分为合法报文和非法报文,也就是CPU根据提取到的特征数据判断网络报文是否为具有攻击性的报文,从而将网络报文分为常规报文和攻击报文。CPU根据对网络报文的分类结果,采用不同的处理方式处理网络报文,实现网络安全防护。
[0004] 基于上述可知,在传统的安全防护过程中,网络报文的特征提取以及特征分析均由CPU完成,这需要消耗大量的CPU资源,使得CPU负载较大,设备运行缓慢,甚至可能导致网络报文丢失以及网络不稳定的问题。

发明内容

[0005] 有鉴于此,本申请提供了一种报文处理方法及装置,以减少CPU的负载,降低报文丢失的概率,提高设备的运行速率以及网络的稳定性。具体技术方案如下:
[0006] 第一方面,本申请提供了一种报文处理方法,应用于安全防护设备的报文分类单元,包括:
[0007] 接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据;
[0008] 将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到;
[0009] 向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0010] 结合第一方面,在第一种可能的实施方式中,上述将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,包括:
[0011] 将第一类特征数据以及第二类特征数据输入预设报文分类器;
[0012] 分别计算在待处理报文具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值;
[0013] 根据每类特征数据对应的概率值,计算待处理报文的类别为非法报文的总概率值;
[0014] 若总概率值大于预设概率阈值,则确定待处理报文的预测类别为非法报文;
[0015] 若总概率值不大于预设概率阈值,则确定待处理报文的预测类别为合法报文。
[0016] 结合第一方面,在第二种可能的实施方式中,该方法还包括:
[0017] 检测是否接收到CPU发送的训练指令,该训练指令包括目标报文的标识和目标报文的真实类别;
[0018] 若是,则根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据;
[0019] 利用目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0020] 结合第一方面或第一方面的第二种可能的实施方式,在第三种可能的实施方式中,该方法还包括:
[0021] 获取预设训练集,训练数据包括训练报文的第一类特征数据、第二类特征数据以及训练报文的真实类别;
[0022] 将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;
[0023] 分别计算在训练报文具有每类特征数据的情况下,训练报文的类别为非法报文的概率值;
[0024] 根据每类特征数据对应的概率值,计算训练报文的类别为非法报文的总概率值;
[0025] 根据总概率值与预设概率阈值的比较结果,确定训练报文的预测类别;
[0026] 根据训练报文的真实类别,获取训练报文的预测类别的错误率;
[0027] 判断错误率是否小于预设错误率阈值;
[0028] 若否,则调整朴素贝叶斯分类器的学习率,并再次将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;
[0029] 若是,则将当前朴素贝叶斯分类器确定为预设报文分类器。
[0030] 第二方面,本申请提供了一种报文处理方法,应用于安全防护设备的CPU,包括:
[0031] 接收安全防护设备的报文交换单元发送的待处理报文;
[0032] 接收安全防护设备的报文分类单元发送的待处理报文的预测类别,该预测类别为报文分类单元将根据待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器后得到的分类结果;
[0033] 根据待处理报文的预测类别对待处理报文进行分类处理。
[0034] 结合第二方面,在第一种可能的实施方式中,该方法还包括:
[0035] 统计预设时间段内接收到目标报文的数量;
[0036] 若目标报文的数量大于预设数量阈值,则确定目标报文的真实类别为非法报文;
[0037] 向报文分类单元发送训练指令,该训练指令包括目标报文的标识和目标报文的真实类别,以使报文分类单元根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据,并根据目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0038] 第三方面,本申请提供了一种报文处理装置,应用于安全防护设备的报文分类单元,包括:
[0039] 第一接收模块,用于接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据;
[0040] 第一确定模块,用于第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到;
[0041] 第一发送模块,用于向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0042] 结合第三方面,在第一种可能的实施方式中,上述第一确定模块,具体用于将第一类特征数据以及第二类特征数据输入预设报文分类器;分别计算在待处理报文具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值;根据每类特征数据对应的概率值,计算待处理报文的类别为非法报文的总概率值;若总概率值大于预设概率阈值,则确定待处理报文的预测类别为非法报文;若总概率值不大于预设概率阈值,则确定待处理报文的预测类别为合法报文。
[0043] 结合第三方面,在第二种可能的实施方式中,该装置还包括:
[0044] 检测模块,用于检测是否接收到CPU发送的训练指令,训练指令包括目标报文的标识和目标报文的真实类别;
[0045] 第一获取模块,用于在检测模块的检测结果为是时,根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据;
[0046] 训练模块,用于利用目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0047] 结合第三方面或第三方面的第二种可能的实施方式,在第三种可能的实施方式中,该装置还包括:
[0048] 第二获取模块,用于获取训练数据,训练数据包括训练报文的第一类特征数据、第二类特征数据以及训练报文的真实类别;
[0049] 输入模块,用于将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;
[0050] 第一计算模块,用于分别计算在训练报文具有每类特征数据的情况下,训练报文的类别为非法报文的概率值;
[0051] 第二计算模块,用于根据每类特征数据对应的概率值,计算训练报文的类别为非法报文的总概率值;
[0052] 第二确定模块,用于根据总概率值与预设概率阈值的比较结果,确定训练报文的预测类别;
[0053] 第三获取模块,用于根据训练报文的真实类别,获取训练报文的预测类别的错误率;
[0054] 判断模块,用于判断错误率是否小于预设错误率阈值;
[0055] 调整模块,用于在判断模块的判断结果为否时,调整朴素贝叶斯分类器的学习率,并再次将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器;
[0056] 第三确定模块,用于在判断模块的判断结果为是时,将当前朴素贝叶斯分类器确定为预设报文分类器。
[0057] 第四方面,本申请提供了一种报文处理装置,应用于安全防护设备的CPU,包括:
[0058] 第二接收模块,用于接收安全防护设备的报文交换单元发送的待处理报文;
[0059] 第三接收模块,用于接收安全防护设备的报文分类单元发送的待处理报文的预测类别,该预测类别为报文分类单元接收报文交换单元将根据待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器得到的分类结果;
[0060] 处理模块,用于根据待处理报文的预测类别对待处理报文进行处理。
[0061] 结合第四方面,在第一种可能的实施方式中,该装置还包括:
[0062] 统计模块,用于统计预设时间段内接收到目标报文的数量;
[0063] 第四确定模块,用于在统计模块统计得到的目标报文的数量大于预设数量阈值时,确定目标报文的真实类别为非法报文;
[0064] 第二发送模块,向报文分类单元发送训练指令,训练指令包括目标报文的标识和目标报文的真实类别,以使报文分类单元根据目标报文的标识,获取待处理报文的第一类特征数据和第二类特征数据,并根据目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0065] 第五方面,本申请提供了一种安全防护设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:实现上述任一报文处理方法步骤。
[0066] 第六方面,本申请提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一方法步骤。
[0067] 因此,通过应用本申请提供的一种报文处理方法及装置,在安全防护设备中设置了报文分类单元。利用报文分类单元对待处理报文进行特征提取以及特征分析,确定待处理报文的预测类别。CPU只需要根据待处理报文的预测类别处理待处理报文,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0068] 当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

[0069] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0070] 图1为现有安全防护设备的硬件架构的一种结构示意图;
[0071] 图2为本申请实施例提供的安全防护设备的硬件架构的一种结构示意图;
[0072] 图3为本申请实施例提供的报文分类器训练方法的一种流程示意图;
[0073] 图4为本申请实施例提供的报文处理方法的第一种流程示意图;
[0074] 图5为本申请实施例提供的报文处理方法的第二种流程示意图;
[0075] 图6为本申请实施例提供的报文处理方法的第三种流程示意图;
[0076] 图7为本申请实施例提供的报文处理方法的第四种流程示意图;
[0077] 图8为本申请实施例提供的报文处理方法的第五种流程示意图;
[0078] 图9为本申请实施例提供的报文处理过程的一种信令图;
[0079] 图10为本申请实施例提供的报文处理装置的第一种结构示意图;
[0080] 图11为本申请实施例提供的报文处理装置的第二种结构示意图;
[0081] 图12为本申请实施例提供的安全防护设备的一种结构示意图。

具体实施方式

[0082] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0083] 如图1所示,图1为现有安全防护设备的硬件架构的一种结构示意图。在图1中,报文交换单元101是集成在CPU102上的。当安全防护设备接收到需要分类的网络报文时,也就是报文交换单元101接收到网络报文时,报文交换单元101可以将接收到的网络报文通过驱动应用程序编程接口(英文:Application Programming Interface,简称:API)103发送给CPU102。CPU102在接收到网络报文后,将对接收到的网络报文进行特征提取,并对提取到的特征进行分析,从而确定该网络报文的类别是合法报文,还是非法报文。若CPU102确定接收到的网络报文的类别为合法报文,则转发该网络报文。若CPU102确定接收到的网络报文的类别为非法报文,则丢弃该网络报文,至此,CPU102完成安全防护设备对网络报文的安全防护过程。
[0084] 在安全防护过程中,由于网络报文的特征提取以及特征分析都需要CPU102完成,这将占用大量的CPU资源,导致CPU102负载较大,使得安全防护设备运行缓慢。一旦安全防护设备接收到大量的网络报文,将会造成CPU102的工作异常,甚至可能导致网络报文丢失以及网络不稳定的问题。
[0085] 为了解决上述CPU负载较大,运行速度缓慢,网络报文丢失以及网络不稳定的问题,本申请实施例提供了一种报文处理方法。该方法应用于安全防护设备。该安全防护设备包括但不限于独立的安全防护设备和集成了安全防护功能的电子设备。
[0086] 如图2所示,图2为本申请实施例提供的安全防护设备的硬件架构的一种结构示意图。安全防护设备包括报文交换单元201、CPU202和报文分类单元203。其中,报文分类单元203可以为一独立的人工智能单元(英文:Artificial Intelligence Unit,简称:AI-Unit),也可以集成在CPU202上一人工智能单元,该人工智能单元为支持高性能计算的芯片,例如,支持人工智能(英文:Artificial Intelligence,简称:AI)算法的型号为BM1880,Hi1213芯片。报文交换单元201接收来自外界的待处理报文,并将待处理报文发送给报文分类单元203,该报文交换单元201为已知的交换芯片,例如,型号为BCM56547的交换芯片。在此,对报文交换单元201和报文分类单元203不作具体限定。
[0087] 在本申请实施例提供的报文处理方法中,报文分类单元203接收报文交换单元201发送的待处理报文,该待处理报文包括五元组,报文分类单元203将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据。报文分类单元203将第一类特征数据和第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到。报文分类单元203将待处理报文的预测类别发送给CPU202。CPU202根据待处理报文的预测类别对待处理报文进行分类处理。
[0088] 通过本申请实施例提供的方法,在安全防护设备中设置了报文分类单元。利用报文分类单元对待处理报文进行特征提取以及特征分析,确定待处理报文的预测类别。CPU只需要根据待处理报文的预测类别处理待处理报文,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0089] 下面通过具体的实施例,对本申请实施例进行说明。
[0090] 如图3所示,图3为本申请实施例提供的报文分类器训练方法的一种流程示意图。该方法应用于安全防护设备的报文分类单元,该方法包括以下步骤。
[0091] 步骤S301,获取训练数据。
[0092] 在本步骤中,安全防护设备的报文分类单元可以获取训练报文的第一类特征数据、第二类特征数据以及训练报文的真实类别,作为训练数据。其中,训练报文的真实类别可以包括合法报文和非法报文。
[0093] 上述训练数据可以为多个样本报文对应的第一类特征数据、第二类特征数据以及每一样本报文的真实类别构成的预设训练集。训练数据也可以为目标报文对应的第一类特征数据、第二类特征数据和目标报文的真实类别构成。上述训练报文可以为样本报文,也可以为目标报文。上述样本报文可以为真实类别为合法报文的网络报文,可以为真实类别为非法报文的网络报文。上述目标报文可以为CPU在预设时间段内接收到的数量大于预设数量阈值的网络报文。
[0094] 上述第一类特征数据可以为网络报文的五元组,该五元组包括网络报文的源互联网协议(英文:Internet Protocol Address,简称:IP)地址、目的IP地址、源端口、目的端口、协议类型。上述第二类特征数据为对网络报文所属的数据流进行流量统计得到的,该第二类特征数据包括但不限于连接持续的时间、从源主机到目标主机的数据的字节数、从目标主机到源主机的数据的字节数、错误分段的数量、加急包的个数。
[0095] 下面以训练报文为样本报文为例对上述训练数据的获取进行说明。
[0096] 一个实施例中,安全防护设备的CPU可以将已经确定真实类别的多个样本报文发送给报文分类单元。报文分类单元在接收到CPU发送的多个样本报文后,可以对接收到的样本报文中的五元组进行提取,得到第一类特征数据,并对样本报文所属的数据流进行流量统计,得到第二类特征数据。报文分类单元根据提取到的样本报文的第一类特征数据和第二类特征数据,以及每一样本报文的真实类别生成训练数据。
[0097] 一个可选的实施例中,报文分类单元在接收到多个样本报文后,可以对多个样本报文进行数据清洗,也就是对多个样本报文进行审查和校验处理。例如,删除重复的样本报文,纠正存在错误的样本报文等。在此,对数据清洗过程不作具体说明。
[0098] 另一个实施例中,上述训练数据可以是预先存储在安全防护设备的存储空间中的多个样本报文对应的第一类特征数据、第二类特征数据和真实类别。报文分类单元可以从存储空间中获取得到训练数据。
[0099] 上述安全防护设备可以用于防入侵系统(英文:Intrusion Prevention System,简称:IPS)、防分布式拒绝服务(英文:Distributed Denial of Service,简称:DDOS)攻击系统、防病毒系统等。当上述安全防护设备的使用场景不同时,类别为合法报文和非法报文的网络报文也是不同的。例如,上述安全防护设备应用于防病毒系统,上述非法报文可以为各种携带病毒的网络报文,合法报文为未携带病毒的网络报文。再例如,上述安全防护设备应用于敏感信息防护系统,上述非法报文可以为涉及敏感信息的网络报文,如涉及用户的个人信息或交易信息等的网络报文,合法报文为未涉及敏感信息的网络报文。
[0100] 一个可选的实施例中,为了提高预设报文分类器的训练速度以及训练得到的预设报文分类器的准确度,在上述获取上述训练数据时,除了可以获取上述训练报文的第一类特征数据、第二类特征数据和真实类别以外,报文分类单元还可以获取预设特征库中的第一类特征数据、第二类特征数据,该预设特征库用于存储类别为合法报文的网络报文的第一类特征数据、第二类特征数据,或非法报文的网络报文的第一类特征数据、第二类特征数据。也就是上述预设训练集包括预设特征库中的第一类特征数据、第二类特征数据,多个样本报文的特征数据以及每一样本报文的真实类别。
[0101] 一般而言,在模型或分类器训练过程中,样本数据越多,训练好的模型或分类器的准确度越高,但是训练过程中数据计算量越大,训练速度越慢。因此,在本申请实施例中,可以获取预设数量的样本报文的第一类特征数据、第二类特征数据,每一样本报文的真实类别,以及预设特征库中的第一类特征数据、第二类特征数据作为预设训练集,在没有改变样本报文的数量的同时,增加了训练时特征数据的数量,使得预设报文分类器输出的分类结果的数量并未发生改变,在提高预设报文分类器的准确度的同时,适当的提高了预设报文分类器的训练速度。
[0102] 上述预设特征库可以用于存储类别为合法报文的网络报文的特征数据,也可以用于存储类别为非法报文的网络报文的特征数据。另外,根据预设报文分类器的应用场景的不同,预设特征库中的特征数据也可以是不同的。在本申请实施例中,对上述预设特征库不作具体限定。
[0103] 步骤S302,将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器。
[0104] 在本步骤中,报文分类单元可以将训练数据中的第一类特征数据和第二类特征数据作为输入数据,输入到预设的朴素贝叶斯分类器中。
[0105] 步骤S303,分别计算在训练报文具有每类特征数据的情况下,训练报文的类别为非法报文的概率值。
[0106] 在本步骤中,分别计算在训练报文具有每类特征数据的情况下,训练报文的类别为非法报文的概率值。也就是在训练报文具有上述第一类特征数据的情况下,计算该训练报文的类别为非法报文的第一概率值,以及在训练报文的具有第二类特征数据的情况下,计算训练报文的类别为非法报文的第二概率值。在此,对概率值的计算过程不作具体说明。
[0107] 步骤S304,根据每类特征数据对应的概率值,计算训练报文的类别为非法报文的总概率值。
[0108] 在本步骤中,根据每类特征数据对应的概率值,计算训练报文的类别为非法报文的总概率值。也就在根据上述第一概率值和第二概率值,计算训练报文的类别为非法报文的总概率值。
[0109] 一个实施例中,将上述第一概率值和第二概率值的平均数,确定为训练报文的类别为非法报文的总概率值。
[0110] 另一个实施例中,根据第一概率值的第一权值和第二概率值的第二权值,将第一概率值和第二概率值的加权平均数,确定为训练报文的类别为非法报文的总概率值。其中,第一权值和第二权值的取值范围可以在0到1之间,例如,第一权值为0.2,第二权值为0.3。第一权值可以大于第二权值,第一权值也可以小于第二权值,第一权值还可以等于第二权值。
[0111] 步骤S305,根据总概率值与预设概率阈值的比较结果,确定训练报文的预测类别。
[0112] 在本步骤中,将上述总概率值与预设概率阈值进行比较。根据比较结果,确定训练报文的预测类别。
[0113] 具体的,若上述总概率值大于预设概率阈值,则确定训练报文的预测类别为非法报文。若上述总概率值不大于预设概率阈值,也就是上述总概率值小于或等于预设概率阈值,则确定训练报文的预测类别为合法报文。
[0114] 步骤S306,根据训练报文的真实类别,获取训练报文的预测类别的错误率。
[0115] 在本步骤中,针对每一训练报文,报文分类单元可以将该样本报文在该训练报文的真实类别与朴素贝叶斯分类器输出的预测类别进行比较。根据比较结果,获取训练报文的预测类别的错误率。
[0116] 一个实施例,在根据训练报文的真实类别,获取训练报文的预测类别的错误率时,若训练报文的真实类别与上述预测类别相同,则报文分类单元可以确定朴素贝叶斯分类器正确的识别出训练报文的类别,也就是报文分类单元确定的预测类别是正确的。若训练报文的真实类别与上述预测类别不相同,则报文分类单元可以确定朴素贝叶斯分类器未正确的识别出训练报文的类别,也就是报文分类单元确定的预测类别是错误的。统计朴素贝叶斯分类器的对训练报文的类别进行识别的错误率。根据统计得到的错误率,确定训练报文的预测类别的错误率。
[0117] 一个可选的实施例中,上述错误率为朴素贝叶斯分类器的对训练报文的类别进行识别的损失值一种表示方式。朴素贝叶斯分类器的损失值的还可以采用其他形式表示。例如,可以将统计得到的正确率的倒数或相反数作为报文类别识别的损失值。再例如,在根据训练报文的真实类别,获取训练报文的预测类别的损失值时,若训练报文的真实类别与上述预测类别相同,则记为0,若训练报文的真实类别与上述预测类别不相同,则记为1,计算每一训练报文的真实类别与预测类别之间的平方误差和(英文:Sum of Squares for Error,简称:SSE),并将计算得到的SSE作为朴素贝叶斯分类器的损失值。在此,对SSE的计算过程不作具体说明了。
[0118] 步骤S307,判断错误率是否小于预设错误率阈值。若否,则执行步骤S308。若是,则执行步骤S309。
[0119] 在本步骤中,报文分类单元将上述错误率与预设错误率阈值进行比较,确定错误率是否小于预设错误率阈值。若错误率不小于预设错误率阈值,也就是错误率大于或等于预设错误率阈值,则报文分类单元可以确定朴素贝叶斯分类器未收敛,执行步骤S308。若错误率小于预设错误率阈值,则报文分类单元可以确定朴素贝叶斯分类器收敛,执行步骤S309。
[0120] 以预设错误率阈值为1%为例进行说明。在某一次训练过程中,确定的错误率为5%,5%>1%,此时,报文分类单元可以确定朴素贝叶斯分类器未收敛。在另一次训练过程中,确定的错误率为0.9%,0.9%<0.1%,此时,报文分类单元可以确定朴素贝叶斯分类器收敛。
[0121] 步骤S308,调整朴素贝叶斯分类器的学习率,并再次执行步骤S302。
[0122] 在本步骤中,当上述错误率不小于预设错误率阈值,也就是确定上述朴素贝叶斯分类器的未收敛时,报文分类单元可以调整朴素贝叶斯分类器的学习率,并再次执行上述步骤S302,也就是返回执行上述将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器的步骤。
[0123] 一个实施例中,报文分类单元可以利用梯度下降法或反向调节的方式,调节朴素贝叶斯分类器的学习率。在此,对学习率的调节方式不作具体限定。
[0124] 朴素贝叶斯分类器是否收敛,取决于朴素贝叶斯分类器的损失值是否趋近于局部最小值,也就是上述错误率小于预设错误率阈值时,可以认为损失值是否趋近于局部最小值,从而确定朴素贝叶斯分类器收敛。上述学习率对朴素贝叶斯分类器能否收敛到局部最小值有着重要作用。以预设损失值阈值为0.1%为例进行说明。
[0125] 当学习率较小时,上述损失值变化的幅度较小,例如,学习率为0.0001时,每一次训练完成后损失值可能只变化0.5%-0.8%,导致朴素贝叶斯分类器收敛较慢。当学习率较大时,上述损失值变换幅度较大,例如,学习率为0.1时,每一次训练完成后损失值可能变换3%-5%,导致损失值始终在局部最小值附近震荡,也就是导致损失值始终大于局部最小值,此时,朴素贝叶斯分类器无法收敛。因此,在朴素贝叶斯分类器的训练初期,可以选择较大的学习率。在训练过程中不断调节朴素贝叶斯分类器的学习率,使得损失值逐渐趋近于局部最小值,直至朴素贝叶斯分类器收敛。
[0126] 步骤S309,将当前朴素贝叶斯分类器确定为预设报文分类器。
[0127] 在本步骤中,当上述错误率小于预设错误率阈值时,也就是确定朴素贝叶斯分类器收敛时,报文分类单元可以将当前朴素贝叶斯分类器确定为预设报文分类器。
[0128] 一个可选的实施例中,除了对上述朴素贝叶斯分类器训练得到预设报文分类器以外,还可以对基于朴素贝叶斯分类器衍生的分类器进行训练得到预设报文分类器。例如,对拉普拉斯修正的朴素贝叶斯分类器进行训练,得到的预设报文分类器。在本申请实施例中,对上述预设报文分类器不作具体限定。
[0129] 在图3所示的实施例中是以训练报文的真实类别为非法报文为例进行说明的,上述训练报文的真实类别也可以为合法报文。在此,对训练报文的真实类别为合法报文的训练过程不作具体说明。
[0130] 根据图3训练得到的预设报文分类器,本申请实施例提供了一种报文处理方法。如图4所示,图4为本申请实施例提供的报文处理方法的第一种流程示意图。该方法应用于上述安全防护设备的报文分类单元,具体包括以下步骤。
[0131] 步骤S401,接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据。
[0132] 在本步骤中,报文交换单元接收来自外界的待处理报文,并将待处理报文发送给报文分类单元。报文分类单元接收该待处理报文。该待处理报文中包括五元组,也就是待处理报文的源IP地址、目的IP地址、源端口、目的端口、协议类型。
[0133] 报文分类单元将待处理报文的五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据。该待处理报文的第二类特征数据包括但不限于待处理报文中的连接持续的时间、从源主机到目标主机的数据的字节数、从目标主机到源主机的数据的字节数、错误分段的数量和加急包的个数。
[0134] 一个实施例中,上述安全防护设备可以与用户端和服务端通信连接,报文交换单元可以接收来自用户端或服务端发送的网络报文,作为待处理报文。报文交换单元将接收到的待处理报文转发给报文分类单元。
[0135] 一个可选的实施例中,对于上述第二类特征数据,报文分类单元可以基于时间的流量统计特征,对待处理报文进行特征提取,得到第二类特征数据。也就是报文分类单元按照接收到的多个待处理报文的时间特性,提取待处理报文中的第二类特征数据。具体的,由于非法报文往往满足一定的时间特征,例如,在一时间段内,安全防护设备接收到大量的获取用户隐私信息的请求报文,因此,按照基于时间的流量统计特征,可以准确的提取到该时间段内接收到的多个待处理报文中的第二类特征数据,从而更好的发现待处理报文的第二类特征数据之间的联系,使得提取到的第二类特征数据更加准确,进而根据第一类特征数据和第二类特征数据识别待处理报文的类别,提高对待处理报文的类别进行识别的准确性。
[0136] 在基于时间的流量统计特征,对待处理报文进行特征提取时,例如,报文分类单元可以提取预设时间段内,如10分钟内接收到的待处理报文中的第二类特征数据。报文分类单元也可以为间歇的提取多个时间段内接收到的待处理报文的第二类特征数据,例如,在10分钟内,提取每间隔1分钟所接收到的待处理报文中的第二类特征数据,也就是可以提取第一分钟、第三分钟、第五分钟、第七分钟以及第九分钟内接收到的待处理报文中的第二类特征数据。
[0137] 在本申请实施例中,可以根据用户的需求以及安全防护设备的使用场景等选择第二类特征数据的提取方法。在此,对第二类特征数据的提取方法不作具体限定。
[0138] 上述训练数据中训练报文的第二类特征数据的提取可以参照上述待处理报文中第二类特征数据的提取方法,在此不作具体说明了。
[0139] 步骤S402,将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别。
[0140] 在本步骤中,报文分类单元将第一类特征数据和第二类特征数据输入上述图3中训练好的预设报文分类器中,获取该报文分类器的输出结果,作为待处理报文的预测类别。也就是报文分类单元将第一类特征数据和第二类特征数据输入预设报文分类器,确定待处理报文的类别是合法报文,还是非法报文,作为待处理报文的预测类别。其中,预设报文分类器是根据预设训练集训练得到,预设训练集包括多个样本报文的第一类特征数据、第二类特征数据和每一样本报文的真实类别,该真实类别包括合法报文和非法报文。
[0141] 步骤S403,向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0142] 在本步骤中,报文分类单元在确定对待处理报文的预测类别后,可以将确定的预测类别发送给安全防护设备的CPU。CPU可以根据接收到的待处理报文的预测类别,对待处理报文进行分类处理。
[0143] 例如,当待处理报文的预测类别为非法报文时,CPU在接收到该待处理报文的预测类别后,可以丢弃该待处理报文。当待处理报文的预测类别为合法报文时,CPU在接收到待处理报文的预测类别后,可以正常转发该待处理报文。
[0144] 一个可选的实施例中,针对上述步骤S402,将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,具体可以包括以下步骤。
[0145] 步骤S4021,将第一类特征数据以及第二类特征数据输入预设报文分类器。
[0146] 在本步骤中,报文分类单元可以将待处理报文的第一类特征数据和第二类特征数据输入到训练好的预设报文分类器中,也就是上述图3中确定的预设报文分类器中。
[0147] 步骤S4022,分别计算在待处理报文具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值。
[0148] 在本步骤中,报文分类单元计算在待处理报文具有第一类特征数据的情况下,待处理报文的类别为非法报文的概率值,以及待处理报文在具有第二类特征数据的情况下,待处理报文的类别为非法报文的概率值。
[0149] 一个可选的实施例中,可以利用贝叶斯定理,分别计算在待处理报文具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值。
[0150] 具体的,上述贝叶斯定理可以表示为:
[0151]
[0152] 其中,P(A|B)为在事件B的条件下,随机事件A发生的概率,P(B|A)为在已知事件A的情况下,事件B出现的概率,P(A)为随机事件A发生的概率,P(B)为事件B发生的概率。
[0153] 为方便理解,以样本报文的真实类别为非法报文,特征数据为第一类特征数据为例进行说明。A用于指示待处理报文,B用于指示样本报文,P(A|B)可以为在样本报文的第一类特征数据的情况下,待处理报文的类别为非法报文的概率。P(A)可以为接收到包含待处理报文的第一类特征数据的报文的概率,P(B)可以为接收到包含样本报文的第一特征数据的报文的概率。P(B|A)可以为接收到的报文中包含样本报文的特征数据的情况下,包含第一类特征数据的概率。
[0154] 在本申请实施例中,上述贝叶斯定理中的各参数的物理意义根据应用场景的不同,各参数的物理意义也将发生改变,在此,不作具体说明了。
[0155] 步骤S4023,根据每类特征数据对应的概率值,计算待处理报文的类别为非法报文的总概率值。
[0156] 在本步骤中,报文分类器根据待处理报文在具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值,计算待处理报文的类别为非法报文的总概率值。该总概率值的计算方法可以参照上述训练报文的类别为非法报文的总概率值的计算方法,在此,不作具体说明。
[0157] 步骤S4024,判断总概率值是否大于预设概率阈值。若是,则执行步骤S4025。若否,则执行步骤S4026。
[0158] 在本步骤中,报文分类单元可以将计算得到总概率值与预设概率阈值进行比较。根据比较结果,确定待处理报文的预测类别是否为非法报文
[0159] 步骤S4025,确定待处理报文的预测类别为非法报文。
[0160] 在本步骤中,当计算得到的总概率值大于预设概率阈值时,报文分类单元可以确定该待处理报文的预测类别为非法报文。
[0161] 步骤S4026,确定待处理报文的预测类别为合法报文。
[0162] 在本步骤中,当计算得到的总概率值小于或等于预设概率阈值时,可以确定该待处理报文的预测类别为合法报文。
[0163] 通过本申请实施例提供的方法,在安全防护设备中设置了报文分类单元。利用报文分类单元对待处理报文进行特征提取以及特征分析,得到待处理报文的预测类型,将该预测类型发送给CPU。CPU只需要根据待处理报文的预测类别处理待处理报文,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0164] 一个可选的实施例中,根据图4提供的报文处理方法,本申请实施例还提供了一种报文处理方法。如图5所示,图5为本申请实施例提供的报文处理方法的第二种流程示意图。该方法应用于安全防护设备的报文分类单元,具体包括以下步骤。
[0165] 步骤S501,接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据。
[0166] 步骤S502,将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别。
[0167] 步骤S503,向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0168] 上述步骤S501-步骤S503与上述步骤S401-步骤S403相同。
[0169] 步骤S504,检测是否接收到CPU发送的训练指令,该训练指令包括目标报文的标识和目标报文的真实类别。若是,则执行步骤S505。
[0170] 在本步骤中,当CPU接收到的目标报文的数量大于预设数量阈值时,CPU可以向报文分类单元发送训练指令。其中,该训练指令包括该目标报文的标识和目标报文的真实类别。报文分类单元可以检测是否接收到CPU发送的训练指令。若接收到该训练指令,则执行步骤S503。
[0171] 上述目标报文可以为上述待处理报文,也可以为其他网络报文,如新出现的类别为非法报文的网络报文。上述目标报文的数量至少为一个。当目标报文为多个网络报文时,目标报文的报文信息中的源IP地址、目的IP地址、源端口、目的端口、协议类型至少有一个是相同的。
[0172] 步骤S505,根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据。
[0173] 在本步骤中,当接收到CPU发送的针对待处理报文的训练指令后,报文分类单元可以根据该训练指令中的目标报文的标识,获取该目标报文。根据获取的目标报文,提取目标报文的五元组作为第一类特征数据,并对该目标报文所属的数据流进行流量统计,得到第二类特征数据。
[0174] 一个实施例中,当目标报文为上述待处理报文时,报文分类单元可以直接获取该目标报文的第一类特征数据和第二类特征数据。
[0175] 另一个实施例中,当目标报文为上述其他网络报文,报文分类单元可以根据训练指令中的目标报文的标识,从CPU或报文交换单元中获取目标报文,并获取该目标报文的第一类特征数据和第二类特征数据。
[0176] 步骤S506,利用目标报文的第一特征类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0177] 在本步骤中,报文分类单元可以将待处理报文的第一特征类特征数据、第二类特征数据和真实类别作为训练数据,利用该训练数据训练上述预设报文分类器,从而提高预设报文分类器对报文进行分类的准确性。上述预设报文分类器的训练过程可参考图3所示的训练过程。
[0178] 在本申请实施例中,对上述步骤S501和步骤S504的执行顺序不作具体限定。
[0179] 根据CPU发送的训练指令,利用目标报文的第一类特征数据和第二类特征数据以及目标报文的真实类别,可以使得训练后的预设报文分类器确定的待处理报文的预测类别更加准确。
[0180] 根据图4所示的报文处理方法,本申请实施例还提供了一种报文处理方法。如图6所示,图6为本申请实施例提供的报文处理方法的第三种流程示意图。该方法应用于上述安全防护设备的CPU,具体包括以下步骤。
[0181] 步骤S601,接收安全防护设备的报文交换单元发送的待处理报文。
[0182] 在本步骤中,报文交换单元接收来自外界的待处理报文,并将该待处理报文发送给CPU。CPU接收报文交换单元发送的待处理报文。
[0183] 步骤S602,接收安全防护设备的报文分类单元发送的待处理报文的预测类别。
[0184] 在本步骤中,报文分类单元可以将根据待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器后得到的分类结果,作为预测类别,并将该预测类型发送给CPU。CPU接收该待处理报文的预测类别。
[0185] 一个实施例中,报文分类单元接收到的待处理报文可以是上述报文交换单元发送的待处理报文。
[0186] 另一个实施例中,报文分类单元接收到的待处理报文可以为上述报文交换单元发送给CPU,CPU将接收到的待处理报文发送给报文分类单元的报文。
[0187] 步骤S603,根据待处理报文的预测类别对待处理报文进行分类处理。
[0188] 在本步骤中,CPU根据接收到的待处理报文的预测类别,对待处理报文进行分类处理。例如,若CPU接收到待处理报文的预测类别为非法报文,则CPU认为该待处理报文的真实类别为非法报文,CPU可以丢弃该待处理报文。若CPU接收到待处理报文的预测类别为合法报文,则CPU认为该待处理报文的真实类别为合法报文,CPU可以转发该待处理报文。
[0189] CPU通过接收报文分类单元发送的针对待处理报文的预测类别,直接根据该预测类别对待处理报文进行分类处理,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性
[0190] 一个可选的实施例中,根据图6所示的报文处理方法,本申请实施例还提供了一种报文处理方法。如图7所示,图7为本申请实施例提供的报文处理方法的第四种流程示意图。该方法应用于安全防护设备的CPU,具体包括以下步骤。
[0191] 步骤S701,接收安全防护设备的报文交换单元发送的待处理报文。
[0192] 步骤S702,接收安全防护设备的报文分类单元发送的待处理报文的预测类别。
[0193] 步骤S703,根据待处理报文的预测类别对待处理报文进行分类处理。
[0194] 上述步骤S701-步骤S703与上述步骤S601-步骤S603相同。
[0195] 步骤S704,统计预设时间段内接收到目标报文的数量。
[0196] 在本步骤中,CPU接收报文交换单元发送的目标报文,并统计预设时间段内接收到目标报文的数量。
[0197] 步骤S705,检测目标报文的数量是否大于预设数量阈值。若是,则执行步骤S706。
[0198] 步骤S706,确定目标报文的真实类别为非法报文。
[0199] 在本步骤中,当CPU接收到的目标报文的数量大于预设数量阈值时,CPU可以确定目标报文的真实类别为非法报文。
[0200] 步骤S707,向报文分类单元发送训练指令,训练指令包括目标报文的标识和目标报文的真实类别,以使报文分类单元根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据,并根据目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0201] 在本步骤中,CPU在确定目标报文的真实类别为非法报文后,可以向报文分类单元发送训练指令,该训练指令包括目标报文的标识和目标报文的真实类别。报文分类单元在接收到该训练指令后,可以根据训练指令中目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据,并根据目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。具体训练过程可以参考图3所示的训练过程。
[0202] 上述对步骤S701和步骤S704的执行顺序不作具体限定。
[0203] 一个可选的实施例中,CPU在向报文分类单元发送针对目标报文的训练指令的同时,可以丢弃该目标报文,提高网络的安全性。
[0204] 一个可选的实施例中,CPU在向报文分类单元发送针对目标报文的训练指令的同时,可以将该目报文发送给报文分类单元。
[0205] 一个可选的实施例中,对于上述训练指令的发送,CPU可以按照预设时间间隔发送,如以一天或一周的时间间隔发送训练指令,利用预设时间段内报文分类单元确定的预测类别的待处理报文,训练上述预设报文分类器。在此,对训练过程不作具体说明。
[0206] 由于网络中的攻击手段也日益多样化和复杂化,使得非法报文也日益多样化和复杂化,通过判断预设时间段内接收到的目标报文的数量,当该数量大于预设数量阈值时,可以确定该待处理报文的真实类别为非法报文,可以及时识别出全新的非法报文,如新型的网络病毒等。利用该待处理报文中的特征数据和真实类别训练上述预设报文分类器,可以及时更新完善预设报文分类器的参数,使得利用训练后的预设报文分类器确定的待处理报文的预测类别更加准确,提高了安全防护设备的安全性。
[0207] 一个可选的实施例中,若上述目标报文为上述待处理报文,则根据图7所示的报文处理方法,本申请实施例还提供了一种报文处理方法。如图8所示,图8为本申请实施例提供的报文处理方法的第五种流程示意图。该方法应用于安全防护设备的CPU,具体包括以下步骤。
[0208] 步骤S801,接收安全防护设备的报文交换单元发送的待处理报文。
[0209] 步骤S802,接收安全防护设备的报文分类单元发送的待处理报文的预测类别。
[0210] 上述步骤S801-步骤S802与上述步骤S701-步骤S702相同。
[0211] 步骤S803,检测待处理报文的预测类别是否为非法报文。若否,则执行步骤S804。若是,则执行步骤S807。
[0212] 在本步骤中,CPU可以根据接收到的待处理报文的预测类别,确定待处理报文的类别是否为非法报文。
[0213] 步骤S804,统计预设时间段内接收到目标报文的数量。
[0214] 在本步骤中,当确定待处理报文的预测类别不是非法报文,即预测类别为合法报文时,也就是目标报文的预测类别为合法报文时,CPU可以统计预设时间段内接收到的目标报文的数量,即待处理报文的数量。
[0215] 步骤S805,检测目标报文的数量是否大于预设数量阈值。若否,则执行步骤S806。若是,则执行步骤S807。
[0216] 在本步骤中,CPU可以根据统计的预设时间段内接收到目标报文的数量,检测该数量是否大于预设数量阈值。若该数量小于或等于预设数量阈值,则执行步骤S806。若该数量大于预设数量阈值,则执行步骤S807。
[0217] 步骤S806,转发待处理报文。
[0218] 在本步骤中,当检测到待处理报文的预测类别为合法报文,且预设时间段内接收到目标报文的数量小于或等于预设数量阈值时,CPU认为待处理报文的真实类别为合法报文,CPU可以转发上述待处理报文。
[0219] 步骤S807,丢弃待处理报文。
[0220] 在本步骤中,当检测到待处理报文的预测类别为非法报文时,CPU认为待处理报文的真实类别为非法报文,CPU可以丢弃该待处理报文。或者,当检测到待处理报文的预测类别为合法报文,且预设时间段内接收到目标报文的数量大于预设数量阈值时,CPU认为待处理报文的真实类别为非法报文,CPU可以丢弃待处理报文。
[0221] 在本申请实施例中,对上述步骤S803与步骤S805的执行顺序不作具体限定。因此,在执行上述步骤S803和步骤S805时,至少可以出现以下情况。
[0222] 情况一,待处理报文的预测类别为非法报文,且预设时间段内接收到的目标报文的数量小于或等于预设数量阈值。
[0223] 情况二,待处理报文的预测类别为非法报文,且预设时间段内接收到的目标报文的数量大于预设数量阈值。
[0224] 情况三,待处理报文的预测类别为合法报文,且预设时间段内接收到的目标报文的数量大于预设数量阈值。
[0225] 情况四,待处理报文的预测类别为合法报文,且预设时间段内接收到的目标报文的数量小于或等于预设数量阈值。
[0226] 一个可选的实施例中,当出现上述情况一、情况二或情况三中的任意一种情况时,CPU认为待处理报文的真实类别为非法报文,可以丢弃待处理报文。当出现上述情况四时,CPU认为待处理报文的真实类别为合法报文,CPU可以转发待处理报文。
[0227] 另一个可选的实施例中,当出现上述情况一或情况二中的任意一种情况时,CPU认为待处理报文的真实类别为非法报文,可以丢弃上述待处理报文。当出现上述情况三时,CPU认为待处理报文的真实类别为合法报文,可以转发上述待处理报文,并发送针对该待处理报文的告警报文。当出现上述情况四时,CPU可以认为待处理报文的真实类别为合法报文,转发上述待处理报文。
[0228] 根据报文分类单元发送的待处理报文的预测类别,以及预设时间段内接收到的目标报文的数量,处理待处理报文,优化了CPU处理待处理报文的流程,提高了安全防护设备的安全性。
[0229] 为方便理解,下面以上述图2和图9为例进行说明上述报文处理过程。报文交换单元201在接收到待处理报文后,如接收到的待处理报文为报文1,报文交换单元201可以通过CPU201上的驱动API204,以及报文分类单元203中的驱动API205将接收到的报文1转发给CPU202和报文分类单元203。
[0230] CPU202在接收到报文1后,CPU202可以判断预设时间段内接收到报文1数量是否大于预设数量阈值。
[0231] 当接收到的报文1的数量大于预设数量阈值时,CPU202可以确定报文1的真实类别为非法报文,CPU202可以丢弃报文1,并向报文分类单元203发送针对报文1的训练指令。也就是该训练指令中包含报文1的标识和真实类别。报文分类单元203根据接收到的训练指令后,利用报文1的第一类特征数据、第二类特征数据和报文1的真实类别对预设报文分类器进行训练。
[0232] 当接收到的目标报文的数量小于或等于预设数量阈值时,或者报文分类单元203未接收到CPU202针对报文1的训练指令时,报文分类单元203可以获取接收到的报文1的第一类特征数据、第二类特征数据,并将报文1的第一类特征数据、第二类特征数据输入预设报文分类器,得到报文1的预测类别。报文分类单元203通过驱动API206和驱动API207将报文1的预测类别发送给CPU202。CPU202接收到报文1的预测类别后,可以根据该预测类别对报文1进行分类处理,如预测类别为合法报文,则转发报文1,预测类别为非法报文,则丢弃报文1。
[0233] 在本申请实施例提供的安全防护设备中,上述报文分类单元对待处理报文进行识别的过程可以是在CPU出现异常时,如,CPU运行缓慢时,报文交换单元或CPU将接收到的报文转发给报文分类单元,由报文分类单元对接收到的报文的类别进行分类,得到预测类别,并将该预测类别反馈给CPU,使得CPU可以直接根据接收到的预测类别处理报文,从而有效的降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0234] 基于同一种发明构思,根据上述本申请实施例提供的报文处理方法,本申请实施例还提供了一种报文处理装置。该装置应用于安全防护设备的报文分类单元,如图10所示,图10为本申请实施例提供的报文处理装置的第一种结构示意图。该装置包括以下模块。
[0235] 第一接收模块1001,用于接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据。
[0236] 第一确定模块1002,用于将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到的分类器。
[0237] 第一发送模块1003,用于向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0238] 可选的,上述第一确定模块,具体可以用于将第一类特征数据以及第二类特征数据输入预设报文分类器;分别计算在待处理报文具有每类特征数据的情况下,待处理报文的类别为非法报文的概率值;根据每类特征数据对应的概率值,计算待处理报文的类别为非法报文的总概率值;若总概率值大于预设概率阈值,则确定待处理报文的预测类别为非法报文;若总概率值不大于预设概率阈值,则确定待处理报文的预测类别为合法报文。
[0239] 可选的,上述报文处理装置还可以包括:
[0240] 检测模块,用于检测是否接收到CPU发送的训练指令,训练指令包括目标报文的标识和目标报文的真实类别。
[0241] 第一获取模块,用于在检测模块的检测结果为是时,根据目标报文的标识,获取目标报文的第一类特征数据和第二类特征数据。
[0242] 训练模块,用于利用目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0243] 可选的,上述报文处理装置还可以包括:
[0244] 第二获取模块,用于获取训练数据,训练数据包括训练报文的第一类特征数据、第二类特征数据以及训练报文的真实类别。
[0245] 输入模块,用于将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器。
[0246] 第一计算模块,用于分别计算在训练报文具有每类特征数据的情况下,训练报文的类别为非法报文的概率值。
[0247] 第二计算模块,用于根据每类特征数据对应的概率值,计算训练报文的类别为非法报文的总概率值。
[0248] 第二确定模块,用于根据总概率值与预设概率阈值的比较结果,确定训练报文的预测类别。
[0249] 第三获取模块,用于根据训练报文的真实类别,获取训练报文的预测类别的错误率。
[0250] 判断模块,用于判断错误率是否小于预设错误率阈值。
[0251] 调整模块,用于在判断模块的判断结果为否时,调整朴素贝叶斯分类器的学习率,并再次将训练报文的第一类特征数据和第二类特征数据输入预设的朴素贝叶斯分类器。
[0252] 第三确定模块,用于在判断模块的判断结果为是时,将当前朴素贝叶斯分类器确定为预设报文分类器。
[0253] 基于同一种发明构思,根据上述本申请实施例提供的报文处理方法,本申请实施例还提供了一种报文处理装置。该装置应用于安全防护设备的CPU,如图11所示,图11为本申请实施例提供的报文处理装置的第二种结构示意图。该装置包括以下模块。
[0254] 第二接收模块1101,用于接收安全防护设备的报文交换单元发送的待处理报文。
[0255] 第三接收模块1102,用于接收安全防护设备的报文分类单元发送的待处理报文的预测类别,预测类别为报文分类单元将根据待处理报文得到的第一类特征数据和第二类特征数据输入预设报文分类器得到的分类结果。
[0256] 处理模块1103,用于根据待处理报文的预测类别对待处理报文进行分类处理。
[0257] 可选的,上述报文处理装置还可以包括:
[0258] 统计模块,用于统计预设时间段内接收到目标报文的数量。
[0259] 第四确定模块,用于在统计模块统计得到的目标报文的数量大于预设数量阈值时,确定目标报文的真实类别为非法报文。
[0260] 第二发送模块,向报文分类单元发送训练指令,训练指令包括目标报文的标识和目标报文的真实类别,以使报文分类单元根据目标报文的标识,获取待处理报文的第一类特征数据和第二类特征数据,并根据目标报文的第一类特征数据、第二类特征数据以及目标报文的真实类别,训练预设报文分类器。
[0261] 通过本申请实施例提供的装置,在安全防护设备中设置了报文分类单元。利用报文分类单元对待处理报文进行特征提取以及特征分析,确定待处理报文的预测类别。CPU只需要根据待处理报文的预测类别处理待处理报文,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0262] 基于同一种发明构思,根据上述本申请实施例提供的报文处理方法,本申请实施例还提供了一种安全防护设备,如图12所示,包括处理器1201和机器可读存储介质1202,机器可读存储介质1202存储有能够被处理器1201执行的机器可执行指令。
[0263] 另外,如图12所示,安全防护设备还可以包括:通信接口1203和通信总线1204;其中,处理器1201、机器可读存储介质1202、通信接口1203通过通信总线1204完成相互间的通信,通信接口1203用于上述安全防护设备与其他设备之间的通信。
[0264] 处理器1201被机器可执行指令促使实现如下步骤:
[0265] 接收安全防护设备的报文交换单元发送的待处理报文,该待处理报文包括五元组;将五元组作为第一类特征数据,并对待处理报文所属的数据流进行流量统计,得到第二类特征数据;
[0266] 将第一类特征数据以及第二类特征数据输入预设报文分类器,得到待处理报文的预测类别,其中,预设报文分类器是根据预设训练集训练得到;
[0267] 向安全防护设备的CPU发送待处理报文的预测类别,以使CPU根据待处理报文的预测类别对待处理报文进行分类处理。
[0268] 通过本申请实施例提供的安全防护设备,在安全防护设备中设置了报文分类单元。利用报文分类单元对待处理报文进行特征提取以及特征分析,确定待处理报文的预测类别。CPU只需要根据待处理报文的预测类别处理待处理报文,有效降低了CPU的负载,降低了报文丢失的概率,提高了设备的运行速率以及网络的稳定性。
[0269] 上述通信总线1204可以是外设部件互连标准(英文:Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry Standard Architecture,简称:EISA)总线等。该通信总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0270] 机器可读存储介质1202可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。另外,机器可读存储介质1202还可以是至少一个位于远离前述处理器的存储装置。
[0271] 上述处理器1201可以是通用处理器,包括CPU、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0272] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0273] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、安全防护设备及机器可读存储介质等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0274] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。