首页> 中国专利> 一种用于识别OSPF协议异常行为的方法及系统

一种用于识别OSPF协议异常行为的方法及系统

摘要

本发明提供一种用于识别网络中OSPF协议异常行为的方法,包括:在待检测的网络环境中,实时获取OSPF协议报文;按照预设的报文特征集合,提取所获取的OSPF协议报文对应的特征向量,其中,所述预设的报文特征集合包括规模特征组、LSU特征组、LSAck特征组、LSR特征组、He l l o特征组;用预先训练的机器学习模型基于OSPF协议报文的特征向量判断报文是否异常,其中,所述机器学习模型是以报文特征向量为输入、报文是否异常为输出的以历史OSPF协议报文为样本数据经过训练生成。本发明通过预设的特征集合和由嗅探器、特征提取模块、训练好的机器学习模型组成的系统可以有效提高OSPF协议报文异常行为检测的准确率。

著录项

  • 公开/公告号CN114785879A

    专利类型发明专利

  • 公开/公告日2022-07-22

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN202210487066.2

  • 发明设计人 蓝胡晟;孟绪颖;王淼;张玉军;

    申请日2022-05-06

  • 分类号H04L69/22;H04L9/40;H04L43/045;H04L43/08;

  • 代理机构北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 100190 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-06-19 16:06:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-22

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及网络安全领域,具体来说,涉及网络安全领域中的网关协议领域,更具体地说,涉及一种用于识别OSPF(Open Shortest Path First,开放式最短路径优先)协议异常行为的方法

背景技术

OSPF(Open Shortest Path First,开放式最短路径优先)协议是运营商在骨干网中广泛使用的一种内部网关协议。

OSPF协议定义了5种报文类型,分别为Hello(探测)报文、LSU(Link StateUpdate,链路状态更新)报文、LSR(Link State Request,链路状态请求)报文、DD(DatabaseDescription,数据库描述)报文和LSAck(Link State Acknowledgement,链路状态确认)报文。其中LSU报文包含完整的LSA(Link State Advertisement,链路状态通告)消息,LSAck报文包含只有头部的不完整LSA消息。(下文均以“LSA”指代“链路状态通告”消息,而以“LSAck”指代“链路状态确认”报文)

由于此协议容易受到网络攻击以及容易产生邻接关系故障的特征,研究人员为了提高网络的安全性及稳定性提出了用于OSPF协议异常节点的检测方法。其中常用的有两种,一种是通过路由器管理接口获得路由表,进而推测出链路的状态;另一种是通过网络管理工具收集网络节点在线时长和接口流量等信息,进而推测路由系统运行的状态。在实际应用的过程中,当域内含有多个协议同时运行时,上述两种方法都无法将OSPF协议与域内其他路由协议区分开。例如自治域内同时运行OSPF和IS-IS路由协议,某节点的OSPF协议因遭受攻击而无法正常运行,但IS-IS协议正常运行,此时该节点的路由功能仍然表现为正常。在这种情况下,如果观察节点的在线时长和流量信息等,则无法发现OSPF协议出现异常。即上述方法无法将OSPF协议与其他路由协议区分开来。

最新的一种方法是利用机器学习来检测OSPF协议异常的节点。机器学习方法需要对链路状态进行特征工程,但行业相关工程师未能对建立特征的数据类型、特征的涵盖范围、特征的计算规则、特征的表示等问题达成共识,这就导致了特征设计不合理的问题:如果特征的设计没有充分考虑协议的特点,针对性不强、区分度低、扩展性差,那么检测的准确率就难以提高。

发明内容

因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的基于机器学习的识别OSPF协议异常行为的方法。

本发明的目的是通过以下技术方案实现的:

根据本发明的第一方面,提供一种用于识别网络中OSPF协议异常行为的方法,包括如下步骤:S1、在待检测的网络环境中,实时获取OSPF协议报文;S2、按照预设的报文特征集合,提取步骤S1中获取的OSPF协议报文对应的特征向量,其中,所述预设的报文特征集合包括规模特征组、LSU特征组、LSAck特征组、LSR特征组、Hello特征组;S3、用预先训练的机器学习模型基于OSPF协议报文的特征向量判断报文是否异常,其中,所述机器学习模型是以报文特征向量为输入、报文是否异常为输出的以历史OSPF协议报文为样本数据经过训练生成。

在本发明的一些实施例中,所述规模特征组的特征包括:路由器总数、链路总数;所述LSU特征组的特征包括:LSU报文中的LSA消息的序列号方差、序列号极差、序列号最大值个数、年龄最大值个数、不同序列号个数以及LSU报文个数、LSU报文校验和相同但内容不同的LSA消息对个数;所述LSAck特征组的特征包括:LSAck报文个数、LSAck报文中的LSA消息个数以及序列号为最大值的LSAck报文中年龄为最大值的LSA消息个数;所述LSR特征组中的特征包括:LSR报文个数、LSR报文的不同发送者个数以及LSR报文重复请求的个数;所述Hello特征组的特征包括:Hello报文中区域号字段不相等的报文对个数、探测时间间隔字段不相等的报文对个数、消亡时间间隔字段不相等的报文对个数、网段号不相等的报文对个数、身份认证类型字段不相等的报文对个数、骨干区域标志位字段不相等的报文对个数、区域号字段非众数的个数、探测时间间隔字段非众数的个数、消亡时间间隔字段非众数的个数、网段号非众数的个数、身份认证类型字段非众数的个数、骨干区域标志位字段非众数的个数以及Hello报文个数、Hello报文的不同发送者的个数。

在本发明的一些实施例中,所述机器学习模型通过如下方式进行预先训练:S21、获取多个历史OSPF协议报文,其中,所述每个历史OSPF协议报文对应的状态为正常或异常;S22、基于所述特征集合提取每个历史OSPF协议报文对应的特征向量;S23、将每个历史OSPF协议报文对应的状态作为标签并与报文对应的特征向量进行融合形成样本,组成数据集;S24、采用所获得的数据集训练机器学习模型至收敛。

在本发明的一些实施例中,在所述步骤S22中,按照特征集合中的特征,提取每个历史OSPF协议报文中每种特征对应的信息组成特征向量,其中,在对历史OSPF协议报文中的LSA消息进行统计数值类特征处理时,针对每一个特征按照如下方式进行处理:将LSA消息根据源路由器字段进行分组,以使同一组别内的LSA消息来自于同一个路由器;对每个分组内的所有LSA消息进行当前特征的数值统计以产生每个分组对应的当前特征的统计数值;汇总所有分组的当前特征统计数值,取最大统计数值作为LSA消息当前特征的特征值。

在本发明的一些实施例中,所述OSPF协议报文的状态异常是指该OSPF协议报文为异常行为产生的报文,其中,所述异常行为包括:攻击异常行为和配置异常行为。在本发明的一些实施例中,所述攻击异常行为包括:基于LSR报文的洪水攻击异常行为、基于LSU报文的最大年龄攻击异常行为、基于LSU报文的序列号加一攻击异常行为、基于LSU报文的最大序列号攻击异常行为、基于LSU报文的伪装攻击异常行为。在本发明的一些实施例中,所述配置异常行为包括:OSPF协议中节点的区域号配置错误异常行为、探测时间间隔配置错误异常行为、消亡时间间隔配置错误异常行为、网段号配置错误异常行为、身份认证类型配置错误异常行为以及骨干区域标志位配置错误异常行为。

在本发明的一些实施例中,在所述步骤S23中,将对应的状态为异常的OSPF协议报文的具体异常行为作为其标签与其对应的特征向量进行融合形成样本。

根据本发明的第二方面,提供一种用于识别网络中OSPF协议异常行为的系统,所述系统包括:嗅探器,用于实时获取OSPF报文;特征提取模块,用于按照预设的特征集合提取所获OSPF协议报文对应的特征向量;机器学习模型,用于基于OSPF协议报文的特征向量判断报文是否异常,其中,所述机器学习模型是以报文特征向量为输入、报文是否异常为输出的以历史OSPF协议报文为样本数据经过训练后生成。

与现有技术相比,本发明的优点在于:

1、本发明针对OSPF协议的报文特征以及异常报文的特性,按照报文类别分别设计了不同的特征集合,利用所设计的特征集合,本发明增强了OSPF协议报文中各类异常行为的区分度,提高了异常行为检测的准确率。

2、本发明设计了一种由嗅探器、特征提取模块、训练好的机器学习模型组成的系统,通过将此系统部署在路由系统中的某节点处能够避开路由器的敏感权限并直接获取OSPF协议报文中的网络规模信息。

3、本发明将OSPF协议报文中配置异常行为的特征和攻击异常行为的特征拼接成一种新的特征向量,作为机器学习模型的输入,实现了异常行为的统一检测和处理,拓展了攻击的概念,简化了系统的集成。

此外,相对于现有方法难以在不同的系统上推广,本发明具有适应性,可在不经修改的情况下应用于不同规模和不同拓扑结构的网络,提高域内路由系统的稳定性和安全性。

附图说明

以下参照附图对本发明实施例作进一步说明,其中:

图1为根据本发明实施例的训练机器学习模型的方法流程图;

图2为根据本发明实施例的识别网络中OSPF协议异常行为的系统结构图;

图3为根据本发明实施例的采用本发明方法识别OSPF报文是否异常的示例网络结构示意图。

具体实施方式

为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如背景技术中提到的,现有技术的传统方法在检测网络节点的状态时,存在暴露节点关键信息和引入额外探测流量的风险,且具有难以分析链路的真实状态,而机器学习方法则由于特征设计不合理的问题,导致OSPF协议报文的异常行为检测不够精准。

针对现有方法的缺陷,本发明提出了一种新的基于机器学习模型的识别OSPF协议异常行为的方法,其通过进行合理的特征设计,训练具有精准检测能力的机器学习模型以用于检测OSPF协议报文是否异常。

为了更好的理解本发明,首先介绍一下OSPF协议报文中可能存在的异常类型,其中异常类型主要包括:攻击异常行为和配置异常行为。

根据本发明的一个实施例,攻击异常行为包括:

1)基于LSR报文的洪水攻击异常行为,其中,所述洪水攻击是指攻击者会不断发送重复的LSR报文到目标路由器,这样将导致相应时间窗口内相关路由器获取的OSPF协议报文中的LSR报文个数、LSR报文不同发送者个数、LSR报文重复请求个数这三个特征值会远大于待检测网络中正常状态对应的特征值;

2)基于LSU报文的最大年龄攻击异常行为,其中,所述最大年龄攻击是指攻击者会将LSU报文中的LSA消息的年龄字段篡改为最大值3600并在网络中不断发送,这样将导致相应时间窗口内相关路由器获取的OSPF协议报文中的LSU报文个数、LSU报文中的LSA消息的年龄最大值个数这两个特征值会远大于待检测网络中正常状态对应的特征值;

3)基于LSU报文的序列号加一攻击异常行为,其中,所述序列号加一攻击是指攻击者会将LSU报文中的LSA消息的序列号加一或更多并在网络中不断发送,这样将导致相应时间窗口内相关路由器获取的OSPF协议报文中的LSU报文个数、LSU报文中的LSA消息的序列号方差、LSU报文中的LSA消息的不同序列号个数这三个特征值会远大于待检测网络中正常状态对应的特征值;

4)基于LSU报文的最大序列号攻击异常行为,其中,所述最大序列号攻击是指攻击者会将LSU报文中的LSA消息的序列号篡改为最大值0x7FFFFFFF并在网络中不断发送,这样将导致相应时间窗口内相关路由器获取的OSPF协议报文中的LSU报文中的LSA消息的序列号最大值个数、LSU报文中的LSA消息的序列号极差这两个特征值会远大于待检测网络中正常状态对应的特征值;

5)基于LSU报文的伪装攻击异常行为,其中,所述伪装攻击是指攻击者会在网络中发送LSU报文校验和相等但内容不同的多种LSA消息,这样将导致相应时间窗口内相关路由器获取的OSPF协议报文中的LSU报文校验和相同但内容不同的LSA消息对个数这个特征值会远大于待检测网络中正常状态对应的特征值。

根据本发明的一个实施例,配置异常行为包括:

1)基于Hello报文的区域号配置错误异常行为,当OSPF协议中某个节点的区域号配置错误时将导致相应时间窗口内相关路由器获取的OSPF协议报文中的Hello报文区域号字段不相等的报文对个数、Hello报文关键字段非众数个数的特征值会远大于待检测网络中正常状态对应的特征值;

2)基于Hello报文的探测时间间隔配置错误异常行为,当OSPF协议中某个节点的探测时间间隔配置错误时将导致相应时间窗口内相关路由器获取的OSPF协议报文中的Hello报文中探测时间间隔字段不相等的报文对个数、Hello报文中探测时间间隔字段非众数个数这两个特征值会远大于待检测网络中正常状态对应的特征值;

3)基于Hello报文的消亡时间间隔配置错误异常行为,当OSPF协议中某个节点的消亡时间间隔配置错误时将导致相应时间窗口内相关路由器获取的OSPF协议报文中的Hello报文消亡时间间隔字段不相等的报文对个数、Hello报文消亡时间间隔字段非众数个数这两个特征值会远大于待检测网络中正常状态对应的特征值;

4)基于Hello报文的网段号配置错误异常行为,当OSPF协议中某个节点的网段号配置错误时将导致相应时间窗口内相关路由器获取的OSPF协议报文中的Hello报文网段号不相等的报文对个数、Hello报文网段号非众数个数这两个特征值会远大于待检测网络中正常状态对应的特征值;

5)基于Hello报文的身份认证类型配置错误异常行为,当OSPF协议中某个节点的身份认证类型配置错误时将导致相应时间窗口内相关路由器获取的OSPF协议报文中的Hello报文身份认证类型字段不相等的报文对个数、Hello报文身份认证类型字段非众数个数这两个特征值会远大于待检测网络中正常状态对应的特征值;

6)基于Hello报文的骨干区域标志位配置错误异常行为,当OSPF协议中某个节点的骨干区域标志位配置错误时会导致相应时间窗口内相关路由器获取的Hello报文骨干区域标志位字段不相等的报文对个数、Hello报文骨干区域标志位字段非众数计数这两个特征值会远大于待检测网络中正常状态对应的特征值。

针对OSPF协议的报文特征以及异常报文的特性,本发明按照报文类别分别设计了不同的特征集合,根据本发明的一个实施例,如表1所示,本发明设计的OSPF报文特征集合包括规模特征组、LSU特征组、LSAck特征组、LSR特征组、Hello特征组。

其中,规模特征组的特征包括:路由器总数、链路总数;LSU特征组的特征包括:LSU报文中的LSA消息的序列号方差、序列号极差、序列号最大值个数、年龄最大值个数、不同序列号个数以及LSU报文个数、LSU报文校验和相同但内容不同的LSA消息对个数;LSAck特征组的特征包括:LSAck报文个数、LSAck报文中的LSA消息个数以及序列号为最大值的LSAck报文中的年龄为最大值的LSA消息个数;LSR特征组中的特征包括:LSR报文个数、LSR报文的不同发送者个数以及LSR报文重复请求的个数;Hello特征组的特征包括:Hello报文中区域号字段不相等的报文对个数、探测时间间隔字段不相等的报文对个数、消亡时间间隔字段不相等的报文对个数、网段号不相等的报文对个数、身份认证类型字段不相等的报文对个数、骨干区域标志位字段不相等的报文对个数、区域号字段非众数的个数、探测时间间隔字段非众数的个数、消亡时间间隔字段非众数的个数、网段号非众数的个数、身份认证类型字段非众数的个数、骨干区域标志位字段非众数的个数以及Hello报文个数、Hello报文的不同发送者的个数。

表1

构建的特征集合基本囊括了OSPF协议不同报文的特征,本发明基于构建的特征集合提取OSPF历史报文中的特征向量,并以报文特征向量为输入、报文是否异常为输出、以历史OSPF协议报文为样本数据训练机器学习模型。根据本发明的一个实施例,本发明采用嗅探器从训练模拟环境中获取OSPF历史报文或者从实际网路拓扑中获取一段时间内的OSPF历史报文。根据本发明的一个实施例,本发明采用特征提取模块提取报文特征,所述特征提取模块是一种基于二进制报文数据输入输出文本特征向量的应用程序,此处,本发明用特征提取模块计算并输出OSPF协议报文在数量、字段值、时空分布等方面的特征形成特征向量。由于特征提取是领域内常见技术,此处不再赘述。

为了更好的理解本发明,下面结合具体的实施例详细说明训练机器学习模型的过程。

如图1所示,根据本发明的一个实施例,本发明通过如下方式训练机器学习模型:

步骤1、获取多个历史OSPF协议报文,其中,所述每个历史OSPF协议报文对应的状态为正常或异常;

步骤2、基于本发明预先设置的特征集合提取每个历史OSPF协议报文对应的特征向量;如表1所示,本发明设计的OSPF报文特征集合包括LSU特征组、LSAck特征组、LSR特征组、Hello特征组,其中,LSU特征组的特征包括:LSU报文中的LSA消息的序列号方差、序列号极差、序列号最大值个数、年龄最大值个数、不同序列号个数以及LSU报文个数、LSU报文校验和相同但内容不同的LSA消息对个数;LSAck特征组的特征包括:LSAck报文个数、LSAck报文中的LSA消息个数以及序列号为最大值的LSAck报文中的年龄为最大值的LSA消息个数;LSR特征组中的特征包括:LSR报文个数、LSR报文的不同发送者个数以及LSR报文重复请求的个数;Hello特征组的特征包括:Hello报文中区域号字段不相等的报文对个数、探测时间间隔字段不相等的报文对个数、消亡时间间隔字段不相等的报文对个数、网段号不相等的报文对个数、身份认证类型字段不相等的报文对个数、骨干区域标志位字段不相等的报文对个数、区域号字段非众数的个数、探测时间间隔字段非众数的个数、消亡时间间隔字段非众数的个数、网段号非众数的个数、身份认证类型字段非众数的个数、骨干区域标志位字段非众数的个数以及Hello报文个数、Hello报文的不同发送者的个数。优选的,本发明设计的特征集合还包括规模特征组,其中,规模特征组的特征包括:路由器总数、链路总数。本发明设计的特征集合囊括了OSPF协议所有报文可能的特征特性,比现有技术下的采用机器学习模型的识别方法对应的特征设计更加合理。

在基于预先设置的特征集合提取历史OSPF协议报文中LSA消息的序列号方差等统计数值类特征时,由于域内各个路由器上线时间不同导致的各个路由器的LSA消息的序列号不同,域内部署有嗅探器、特征提取模块、机器学习模型组成系统的路由器会在指定时间窗口内捕获到来自不同路由器且携带有不同序列号的LSA消息,因此会对LSA序列号的方差、极差等统计数值类特征的计算产生干扰,本发明针对统计数值类特征采用如下方式降低由于路由器上线时间不同所产生的干扰:将LSA消息根据源路由器字段进行分组,以使同一组别内的LSA消息来自于同一个路由器,并对每个分组内的所有LSA消息进行当前特征的数值统计以产生每个分组对应的当前特征统计数值,然后汇总所有分组的当前特征统计数值,最后取其中最大统计数值作为LSA消息当前特征的特征值。

此外,在基于预先设置的特征集合提取历史OSPF协议报文中LSA消息的序列号方差等统计数值类特征时,由于域内每个路由器发送的LSU报文数量正比于域内路由器数量和链路数量,OSPF协议报文中LSA序列号的方差、极差等统计数值类特征的计算会受到由路由器数量和链路数量所构成的网络规模的干扰,为此,本发明提供一种标准化统计数值类特征的方法,其中的方法包括:通过捕获到的OSPF协议报文中的LSA消息和Hello报文分别获得域内路由器总数和链路总数,并用特征提取模块计算出的统计数值类特征的值除以域内路由器总数和每个路由器周围的链路总数得到标准化后的统计数值类特征的值,以用于降低网络规模对统计数值类特征产生的干扰。

步骤3、将每个历史OSPF协议报文对应的状态作为标签并与报文对应的特征向量进行融合形成样本,所有样本组成数据集。根据本发明的一个实施例,将对应的状态为异常的OSPF协议报文的具体异常行为作为其标签与其对应的特征向量进行融合形成样本。例如,某个历史OSPF协议报文是基于LSR报文的洪水攻击异常行为产生的报文,则将此攻击异常行为作为标签与该报文对应的特征向量进行融合形成样本,其他异常类型参照此形式。其中,需要注意的是,本发明提取的报文特征向量是包含了全部特征组对应特征的向量,而配置异常的特征均体现在Hello特征组中,这就意味着在同一个特征向量中可能同时存在攻击异常和配置异常,此时,将具体的攻击异常和配置异常均作为样本标签,以实现配置异常行为的特征和攻击异常行为的特征拼接,并作为机器学习模型的输入,达到异常行为的统一检测和处理的目的。

步骤4、采用步骤3中获得的数据集训练机器学习模型至收敛。

机器学习模型需选用适合分类任务的监督学习模型,如决策树、逻辑回归模型、支持向量机、贝叶斯(概率)模型、人工神经网络。因为标签(类别)的数量和可能的取值需要事先确定并在训练数据集中体现,所以机器学习模型不适合选用以聚类为主要目的的无监督学习模型。因为机器学习模型的任务是给定特征向量预测标签,所以不适合选用强化学习模型。

根据本发明的一个实施例,本发明通过如下方式判断所述机器学习模型是否收敛:获取与训练模型的数据集同分布的测试集并用于测试训练后的机器学习模型,得到测试结果,如果所述测试结果满足具体要求,即可认为所述机器学习模型已训练至收敛。其中,所述具体要求应根据域内路由网络的实际情况制定,例如,事先给定训练后的机器学习模型识别OSPF协议报文异常行为的合格标准为不低于98%的准确率,那么如果训练后的机器学习模型在测试集上识别异常行为的准确率大于或等于98%,即可认为所述机器学习模型已训练至收敛。如果所述机器学习模型识别异常行为的准确率低于98%,那么所述机器学习模型还需要继续训练,直至收敛。

采用基于OSPF报文特征向量+标签的样本训练完成的机器学习模型,则具备了识别报文是否异常的能力。例如,如果训练集中所有具有“基于LSR报文的洪水攻击”标签的特征向量的LSR报文重复请求个数都大于80,而其他特征向量的LSR报文重复请求个数都小于5,那么机器学习模型会将LSR报文重复请求个数大于80的特征向量预测为存在基于LSR报文的洪水攻击。

根据前面对攻击异常行为的描述可知,当待检测的网络环境中存在基于LSR报文的洪水攻击异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的LSR报文个数、LSR报文不同发送者个数、LSR报文重复请求个数这三个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述三个特征值偏大时,所述机器学习模型大概率会将报文识别为基于LSR报文的洪水攻击异常行为,而当所述三个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在基于LSR报文的洪水攻击异常行为。

当待检测的网络环境中存在基于LSU报文的最大年龄攻击异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的LSU报文个数、LSU报文中的LSA消息的年龄最大值个数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为基于LSU报文的最大年龄攻击异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在基于LSU报文的最大年龄攻击异常行为。

当待检测的网络环境中存在基于LSU报文的序列号加一攻击异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的LSU报文个数、LSU报文中的LSA消息的序列号方差、LSU报文中的LSA消息的不同序列号个数这三个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述三个特征值偏大时,所述机器学习模型大概率会将报文识别为基于LSU报文的序列号加一攻击异常行为,而当所述三个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在基于LSU报文的序列号加一攻击异常行为。

当待检测的网络环境中存在基于LSU报文的最大序列号攻击异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的LSU报文中的LSA消息的序列号最大值个数、LSU报文中的LSA消息的序列号极差这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为基于LSU报文的最大序列号攻击异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在基于LSU报文的最大序列号攻击异常行为。

当待检测的网络环境中存在基于LSU报文的伪装攻击异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的LSU报文校验和相同但内容不同的LSA消息对个数这个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述特征值偏大时,所述机器学习模型大概率会将报文识别为基于LSU报文的伪装攻击异常行为,而当所述特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在基于LSU报文的伪装攻击异常行为。

当待检测的网络环境中存在区域号配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中区域号字段不相等的报文对个数、Hello报文中关键字段非众数个数的特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述特征值偏大时,所述机器学习模型大概率会将报文识别为区域号配置错误异常行为,而当所述特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在区域号配置错误异常行为。

当待检测的网络环境中存在探测时间间隔配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中探测时间间隔字段不相等的报文对个数、Hello报文中探测时间间隔字段非众数个数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为探测时间间隔配置错误异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在探测时间间隔配置错误异常行为。

当待检测的网络环境中存在消亡时间间隔配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中消亡时间间隔字段不相等的报文对个数、Hello报文中消亡时间间隔字段非众数个数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为消亡时间间隔配置错误异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在消亡时间间隔配置错误异常行为。

当待检测的网络环境中存在网段号配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中网段号不相等的报文对个数、Hello报文中网段号非众数个数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为网段号配置错误异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在网段号配置错误异常行为。

当待检测的网络环境中存在身份认证类型配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中身份认证类型字段不相等的报文对个数、Hello报文中身份认证类型字段非众数个数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为身份认证类型配置错误异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在身份认证类型配置错误异常行为。

当待检测的网络环境中存在骨干区域标志位配置错误异常行为时,基于所述特征集合和特征提取模块获取的特征向量中对应的指定时间窗口内的Hello报文中骨干区域标志位字段不相等的报文对个数、Hello报文中骨干区域标志位字段非众数计数这两个特征值将会远大于待检测网络中正常状态对应的特征值,通过将训练后的机器学习模型部署到待检测网络环境中,当所述两个特征值偏大时,所述机器学习模型大概率会将报文识别为骨干区域标志位配置错误异常行为,而当所述两个特征值偏小时,所述机器学习模型大概率会预测待检测网络环境中不存在骨干区域标志位配置错误异常行为。

此外,本发明设计的规模特征组中的特征不仅可以作为机器学习模型的输入,而且还会为其他统计数值类特征进行标准化处理时提供网络规模和网络拓扑结构信息。

综上所述,本发明判断待检测网络中的OSPF协议报文是否异常是通过一种特定系统按照一定的流程以实现此功能,如图2所示,根据本发明的一个实施例,本发明提供一种用于识别网络中OSPF协议异常行为的系统,其中,所述系统包括:

(1)嗅探器,用于实时获取OSPF报文;

(2)特征提取模块,用于按照预设的特征集合提取所获OSPF协议报文对应的特征向量;

(3)机器学习模型,用于基于OSPF协议报文的特征向量判断报文是否异常,其中,所述机器学习模型是以报文特征向量为输入、报文是否异常为输出的以历史OSPF协议报文为样本数据经过训练后的模型生成。

根据本发明的一个实施例,采用训练好的机器学习模型识别OSPF报文异常行为包括如下步骤:步骤1、利用嗅探器实时抓取网络数据包,解析抓取到的网络数据包,过滤掉所有非OSPF协议数据包,得到只含OSPF协议报文的pcap格式文件,其中包含了OSPF协议报文的所有信息,例如,字段值、时间戳等信息;步骤2、按照预设的报文特征集合,提取实时抓取的OSPF协议报文对应的特征向量,例如,将获取的只含OSPF协议报文的pcap格式文件作为特征提取模块的输入,利用特征提取模块基于所述特征集合,计算并输出对应的时间窗口内的所有OSPF协议报文在数量、字段值、时空分布等方面的特征形成特征向量,并将其作为训练好的机器学习模型的输入,通过训练好的机器学习模型判断该OSPF协议报文是否异常。

为了更好的理解,下面通过一个具体的示例来说明机器学习模型识别异常行为的相关过程。参见图3,一个包含8个路由节点(分别为R1-R8)的网络拓扑,其中L1为连接路由节点R1和路由节点R2的链路,L2为连接路由节点R2和路由节点R3的链路,L3为连接路由节点R2和路由节点R5的链路,L4为连接路由节点R3和路由节点R4的链路,L5为连接路由节点R4和路由节点R5的链路,L6为连接路由节点R5和路由节点R6的链路,L7为连接路由节点R5和路由节点R8的链路,L8为连接路由节点R6和路由节点R7的链路,L9为连接路由节点R7和路由节点R8的链路。假设在该网络拓扑中,路由节点R1-R7为域内正常的路由节点,路由节点R8是受攻击者控制的节点;由嗅探器、特征提取模块、训练好的机器学习模型组成的系统部署于路由节点R5上,通过所述系统中的嗅探器于指定时间窗口内对链路L3、L5、L6、L7上的所有OSPF报文进行转储,并将转储后的报文移交给特征提取模块进行特征提取,将提取出的特征向量输入到机器学习模型中,由机器学习模型判断此时间窗口内是否存在异常。

若路由节点R8对路由节点R5发动基于LSR报文的洪水攻击,则链路L7上会出现大量LSR报文,并且请求内容重复。此时LSR报文特征组的三个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出基于LSR报文的洪水攻击异常行为。

若路由节点R8对路由节点R1发动基于LSU报文的最大年龄攻击,则所有链路上都会出现大量LSU报文,其中大量LSU报文还包含大量源自R1的年龄字段等于3600的LSA消息。此时LSU报文个数、LSU报文的LSA消息个数、LSU报文的LSA消息的年龄最大值个数这三个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出基于LSU报文的最大年龄攻击异常行为。

若路由节点R8对路由节点R1发动基于LSU报文的序列号加一攻击,则所有链路上均会出现大量LSU报文,其中大量LSU报文还包含大量源自路由节点R1的LSA消息,这些LSA消息的序列号字段会逐渐增大,并且通过部署于路由节点R5上的系统会在同一个时间窗口内检测到LSA消息的序列号有显著的变化。此时LSU报文中的LSA消息的序列号方差、LSU报文中的LSA消息的不同序列号个数和LSU报文个数这三个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出基于LSU报文的序列号加一攻击异常行为。

若路由节点R8对路由节点R2发动基于LSU报文的最大序列号攻击,则所有链路上都会出现特定的LSU报文和LSAck报文,其中所出现的LSU报文中的LSA消息的序列号字段等于最大值0x7FFFFFFF,而LSAck报文中的LSA消息的头序列号字段等于最大值0x7FFFFFFF并且年龄字段等于最大值3600。此时“LSU报文中的LSA消息的序列号最大值个数”和“序列号为最大值的LSAck报文中的年龄为最大值的LSA消息个数”这两个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出基于LSU报文的最大序列号攻击异常行为。

若路由节点R8发动基于LSU报文的伪装攻击,试图以路由节点R2的名义宣布链路L1的状态为断开,则网络中会出现两种不同的LSU报文:携带正确的LSA消息(链路L1连通)和携带错误的LSA消息(链路L1断开)。这两种LSA消息除链路状态字段不同以外,包括校验和在内的其他字段都相同。根据节点在网络拓扑中的位置,一部分节点会先收到错误的LSA消息,后收到正确的LSA消息并且会将其丢弃,最后得到的是错误的链路状态信息。当发生伪装攻击时,通过部署于路由节点R5上的系统会在同一个时间窗口内检测到上述两种内容不同但校验和相同的LSU报文,此时“LSU报文校验和相同但内容不同的LSA消息对个数”这个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出基于LSU报文的伪装攻击异常行为。

若路由节点R8的OSPF协议报文的参数配置错误,则链路L7、L9上会出现两种关键字段值不相等的Hello报文,以OSPF协议报文区域号配置错误为例,假设路由节点R1-R7中OSPF协议报文配置的区域号均为正确值,而路由节点R8中OSPF协议报文配置的区域号为错误值,那么Hello报文区域号字段不相等的报文对个数和Hello报文区域号字段非众数个数这两个特征值将远大于OSPF协议报文正常状态对应的特征值,故机器学习模型可以识别出OSPF协议报文的参数配置错误异常行为,其它OSPF协议报文参数配置错误异常行为如OSPF协议报文中的探测时间间隔配置错误异常行为、消亡时间间隔配置错误异常行为、网段号配置错误异常行为、身份认证类型配置错误异常行为、骨干区域标志位配置错误异常行为参照此形式。

与现有技术相比,本发明的优点在于:

1、本发明针对OSPF协议的报文特征以及异常报文的特性,按照报文类别分别设计了不同的特征集合,利用所设计的特征集合,本发明增强了OSPF协议报文中各类异常行为的区分度,提高了异常行为检测的准确率。

2、本发明设计了一种由嗅探器、特征提取模块、训练好的机器学习模型组成的系统,通过将此系统部署在路由系统中的某节点处能够避开路由器的敏感权限并直接获取OSPF协议报文中的网络规模信息。

3、本发明将OSPF协议报文中配置异常行为的特征和攻击异常行为的特征拼接成一种新的特征向量,作为机器学习模型的输入,实现了异常行为的统一检测和处理,拓展了攻击的概念,简化了系统的集成。

此外,现有方法难以在不同的系统上不作任何修改的推广,而本发明具有适应性,可在不经修改的情况下应用于不同规模和不同拓扑结构的网络,提高域内路由系统的稳定性和安全性。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号