首页> 中国专利> 基于MOAS冲突事件的BGP劫持检测方法、装置及设备,可读存储介质

基于MOAS冲突事件的BGP劫持检测方法、装置及设备,可读存储介质

摘要

本公开提供一种基于MOAS冲突事件的BGP劫持检测方法、装置、设备及介质,方法包括:获取实时路由数据,并基于所述实时路由数据检测MOAS冲突事件;基于所述MOAS冲突事件的时间戳和观测点得到MOAS矩阵;基于所述MOAS矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件;响应于所述MOAS冲突事件为异常MOAS冲突事件,确定发生BGP前缀劫持。根据本公开,通过MOAS冲突事件中表现出来的行为特征来判断该MOAS冲突事件是否异常,进而检测出BGP前缀劫持的发生。无需依赖第三方认证机制,降低了部署成本。

著录项

  • 公开/公告号CN113472740B

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN202110553490.8

  • 申请日2021-05-20

  • 分类号H04L9/40(2022.01);H04L45/00(2022.01);

  • 代理机构北京风雅颂专利代理有限公司 11403;

  • 代理人王刚

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2022-09-06 00:40:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-05

    授权

    发明专利权授予

说明书

技术领域

本公开涉及通信技术领域,尤其涉及BGP劫持检测技术。

背景技术

边界网关协议(Border Gateway Protocol,BGP)是一种实现自治系统(Autonomous System,AS)之间的路由可达,并选择最佳路由的距离矢量的路由协议。然而,BGP协议在设计之初缺乏安全方面的考虑,存在诸多的安全漏洞,例如不存在授权和身份验证机制,对收到的BGP路由信息没有进行认证,并且不能保证路由信息在路由传播的过程中不被篡改,即AS完全信任来自邻居的路由可达信息,包括由于配置错误或恶意伪造产生的虚假路由信息。因此BGP协议成为许多网络犯罪的攻击目标,攻击者可以利用BGP劫持有效地欺骗其他网络,误导互联网流量,以获取攻击者的利益,如窥探、网络钓鱼或其他目的。

现有的BGP劫持检测是从控制平面来检测BGP前缀劫持,通常是通过检测报文中源AS来宣告的某前缀是否是被授权,而如果要保证前缀地址与源AS 映射关系的合法性,这就需要RPKI认证机制的支持。但是目前RPKI认证机制部署程度还不高,保护的前缀数目只占全部前缀数目的五分之一,因此现有的BGP劫持检测的范围就受到了较大的限制,同时还存在恶意攻击者冒充某一前缀所有者的可能。

发明内容

有鉴于此,本公开的目的在于提出一种基于MOAS冲突事件的BGP劫持检测方法。

基于上述目的,根据本公开的第一方面,提供了一种基于MOAS冲突事件的BGP劫持检测方法,包括:

获取实时路由数据,并基于所述实时路由数据检测MOAS冲突事件;

基于所述MOAS冲突事件的时间戳和观测点得到MOAS矩阵;

基于所述MOAS矩阵的行为特征判断所述MOAS冲突事件是否为异常 MOAS冲突事件;

响应于所述MOAS冲突事件为异常MOAS冲突事件,确定发生BGP前缀劫持。

可选地,所述基于所述实时路由数据检测MOAS冲突事件,包括:

基于所述实时路由数据中的BGP路由表数据得到初始路由表,并建立前缀信息表和冲突关系表;

基于所述实时路由数据中的BGP更新报文数据,更新所述前缀信息表以及记录路由状态变化,得到当前状态的前缀信息表;

基于当前状态的所述前缀信息表检测是否发生MOAS冲突事件,以及响应于检测到发生MOAS冲突事件,更新所述冲突关系表得到当前状态的冲突关系表且确定所述MOAS冲突事件的起始时间和结束时间。

可选地,所述基于所述MOAS冲突事件的时间戳和观测点得到MOAS矩阵,包括:

获取所述MOAS冲突事件中所有观测点和时间戳;

以所述观测点为列,所述顺序排列的时间戳为行构建所述MOAS事件矩阵[AS

可选地,所述基于所述MOAS矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件,包括:

基于所述MOAS事件矩阵进行特征提取,得到源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合;其中,

源AS的变化率=源AS的变化次数/源AS切换次数;

源AS的不变率=源AS的不变次数/源AS切换次数;

所述MOAS事件可见观测点集合表示对于所述MOAS冲突事件,在不同的时间点观测到不同的AS的观测点的集合;

基于所述源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合和预设规则,判断所述MOAS冲突事件是否为异常MOAS冲突事件。

可选地,所述基于所述MOAS事件矩阵进行特征提取,得到源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合,包括:

基于所述MOAS事件矩阵计算源AS切换次数;

基于所述MOAS事件矩阵的列和所述源AS切换次数计算源AS的变化率和源AS的不变率;

基于所述MOAS事件矩阵的行计算可见所述MOAS冲突事件的观测点,得到可见观测点集合。

可选地,在所述基于所述MOAS冲突事件的时间戳和观测点得到MOAS 矩阵之前,还包括:

判断所述MOAS冲突事件中的prefix-moasn映射关系是否有效存在于预设的prefix-moasn映射关系数据库中;

响应于所述MOAS冲突事件的prefix-moasn映射关系未有效存在于所述预设的prefix-moasn映射关系数据库中,基于所述MOAS冲突事件和不同的观测点得到MOAS事件矩阵。

可选地,所述预设的prefix-moasn映射关系数据库包括正常prefix-moasn 映射关系数据库和异常prefix-moasn映射关系数据库;所述方法还包括:

响应于所述MOAS冲突事件的prefix-moasn映射关系有效存在于所述预设的prefix-moasn映射关系数据库中,基于所述MOAS冲突事件的prefix-moasn 映射关系存在于正常prefix-moasn映射关系数据库或异常prefix-moasn映射关系数据库,判断所述MOAS冲突事件是否异常;

响应于所述MOAS冲突事件的prefix-moasn映射关系存在于异常 prefix-moasn映射关系数据库,确定所述MOAS冲突事件为异常MOAS冲突事件以及发生BGP前缀劫持。

根据本公开的第二方面,提供了一种基于MOAS冲突事件的BGP劫持检测装置,包括:

获取模块,用于获取实时路由数据;

事件还原模块,用于基于所述实时路由数据检测MOAS冲突事件;

矩阵模块,用于基于所述MOAS冲突事件的时间戳和观测点得到MOAS 矩阵;

判断模块,用于基于所述MOAS矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件;

劫持检测模块,用于响应于所述MOAS冲突事件为异常MOAS冲突事件,确定发生BGP前缀劫持。

根据本公开的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。

根据本公开的第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面任一所述方法。

从上面所述可以看出,本公开提供的基于MOAS冲突事件的BGP劫持检测方法、装置、设备及介质,通过MOAS冲突事件中表现出来的行为特征来判断该MOAS冲突事件是否异常,进而检测出BGP前缀劫持的发生。无需依赖第三方认证机制,降低了部署成本。

附图说明

为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本公开实施例的基于MOAS冲突事件的劫持检测方法的示意性流程图;

图2为根据本公开实施例的检测MOAS冲突事件的示意性流程图;

图3为根据本公开实施例的检测MOAS冲突事件的示意性原理图;

图4为根据本公开实施例的基于MOAS冲突事件的劫持检测方法的另一示意性流程图;

图5为根据本公开实施例的MOAS事件矩阵示意图;

图6为根据本公开实施例的基于MOAS冲突事件的劫持检测装置的示意性框图;

图7为根据本公开实施例的一种更为具体的电子设备硬件结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

BGP前缀劫持可以是指一个劫持攻击者AS1对外宣告拥有某个不属于它的IP前缀地址1,导致互联网上到达该前缀地址1的流量被路由到该AS1,即流量被劫持到错误的目的地AS1。虽然可能许多BGP劫持事件是良性的,由于错误的配置,在过去的许多案例表明,攻击者正在大规模滥用BGP。当互联网运营商错误地公布另一个网络的IP地址块时,就会发生BGP劫持。传统的 BGP劫持检测技术主要针对源AS与IP前缀所属关系来判定冲突的合法性,需要改变路由通告消息,部署麻烦;或者需要用户自己主动申请监测需要保护的前缀,监测范围受到注册用户的限制并且存在恶意攻击者冒充某一前缀所有者的可能。

传统的从控制平面进行BGP前缀劫持检测主要是进行MOAS冲突事件检测,而MOAS冲突事件分为正常的MOAS冲突事件和异常的MOAS冲突事件,其中异常的MOAS冲突事件是由BGP前缀劫持导致的。而本公开申请人发现 MOAS冲突事件过程中从不同观测点观测到的源AS的变化情况会有一定的特征,这些特征可以区分正常的MOAS冲突事件和异常的MOAS冲突事件,因此,本公开对前缀劫持的检测方法可以从MOAS冲突事件出发,通过检测异常的MOAS冲突事件来发现BGP前缀劫持。

基于上述考虑,本公开实施例提供了一种基于MOAS冲突事件的劫持检测方法。参见图1,图1示出了根据本公开实施例的基于MOAS冲突事件的劫持检测方法的示意性流程图。如图1所示,基于MOAS冲突事件的BGP劫持检测方法,包括:

步骤S110,获取实时路由数据,并基于所述实时路由数据检测MOAS冲突事件;

步骤S120,基于所述MOAS冲突事件的时间戳和观测点得到MOAS事件矩阵;

步骤S130,基于所述MOAS事件矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件;

步骤S140,响应于所述MOAS冲突事件为异常MOAS冲突事件,确定发生BGP前缀劫持。

其中,本公开实施例从网络中的实时路由数据监测MOAS冲突事件,然后通过MOAS冲突事件中表现出来的行为特征来判断该MOAS冲突事件是否异常,达到异常MOAS冲突事件的检测目的,进而检测出BGP前缀劫持的发生。与传统的劫持检测相比,无需依赖第三方认证机制,降低了部署成本。适合广泛应用于域间路由等领域。

根据本公开实施例,在步骤S110中,获取实时路由数据,并基于所述路由数据提取MOAS冲突事件。

其中,实时路由数据可以指网络中的BGP路由器的实时数据。基于对BGP 路由器的实时监测,可以及时地提取MOAS冲突事件,有利于快速地进行BGP 劫持检测。

可选地,所述实时路由数据可以包括:BGP路由表数据和/或BGP更新报文数据。

在一些实施例中,获取BGP路由表数据和/或BGP更新报文数据可以包括:从欧洲地区网络地址中心(Reseau IP Europeans,RIPE)的路由信息服务 (Routing InformationService,RIS)项目中获取。

其中,RIS是RIPE NCC(Network Coordination Centre,网络协调中心) 的一个项目,用于收集和存储互联网路由数据,BGP更新报文和RIB dump都会被收集和存储。这些数据可供互联网运营商进行故障排除和研究。RIS在全球的互联网交换中心部署了22个远程路由收集器(Remote Route Collectors, RRC),这些收集器使用Quagga模拟路由器与本地路由器建立peer(对等体) 关系,通过BGP协议收集更新和撤销报文并存储为MRT格式。RIS提供每八小时更新的路由快照和每五分钟更新的路由更新报文原数据。

具体来说,可以从RIPE RIS项目中获取每八个小时更新一次的路由信息表,和/或每五分钟更新一次的BGP更新(UPDATE)报文,并将二者之一或二者保存至本地服务器指定文件夹中。

可选地,参见图2,图2示出了根据本公开实施例的检测MOAS冲突事件的示意性流程图。如图2所示,在步骤S110中,基于所述实时路由数据检测 MOAS冲突事件可以包括:

步骤S111,基于所述实时路由数据中的BGP路由表数据得到初始路由表,并建立前缀信息表和冲突关系表;

步骤S112,基于所述实时路由数据中的BGP更新报文数据,更新所述前缀信息表以及记录路由状态变化,得到当前状态的前缀信息表;

步骤S113,基于当前状态的所述前缀信息表检测是否发生MOAS冲突事件,以及响应于检测到发生MOAS冲突事件,更新所述冲突关系表得到当前状态的冲突关系表且确定所述MOAS冲突事件的起始时间和结束时间。

在一些实施例中,参见图3,图3示出了根据本公开实施例的检测MOAS 冲突事件的示意性原理图。如图2和3所示,步骤S111,基于所述实时路由数据中的BGP路由表数据得到初始路由表,并建立前缀信息表和冲突关系表,可以进一步包括:

从所述实时路由数据中的BGP路由表数据中提取初始路由表;

基于所述初始路由表提取每条记录的记录信息;

基于每条记录的所述记录信息形成前缀信息表和冲突关系表,其中,所述前缀信息表包括所述初始路由表中的每个前缀与所述前缀对应的源AS信息之间的映射关系,所述冲突关系表包括对应于多个源AS的前缀与所述多个源AS 之间的映射关系。

在一些实施例中,在基于所述初始路由表提取每条记录的记录信息,还可以包括:

对所述初始路由表的记录进行第一预处理,得到处理后的记录;

基于所述处理后的记录提取每条记录的记录信息。

在一些实施例中,所述第一预处理可以包括去除所述初始路由表中的残缺记录或按照第一预设格式提取所述初始路由表的记录,得到所述处理后的记录。

具体来说,初始路由表中的记录可能并不都是完整的记录,而有些残缺的记录无法提取有效信息,所以可以将这些残缺记录去除,提高初始路由记录的有效性,减少计算量,节约计算成本,进一步提升响应速度以及检测效率。例如,可以当初始路由表中的记录的长度大于或等于第一预设长度(如7)时,认为其为符合条件的记录;当初始路由表中的记录的长度小于该第一预设长度时,就认为其不是一条符合条件的记录,可以将其去除。其中,可以将记录的长度大于或等于第一预设长度作为第一预设格式,直接从初始路由表中提取记录的长度大于或等于第一预设长度的记录,得到处理后的记录,作为后续记录信息的数据基础。

在一些实施例中,所述每条记录的记录信息可以包括:所述记录的生成时间、所述记录对应的前缀以及AS路径、所述记录的观测点AS号和宣告所述前缀的源AS号。

在一些实施例中,在步骤S111中,还可以包括:将所述每条记录的记录信息保存为当前状态的路由状态快照。

进一步地,在一些实施例中,可以根据所述记录对应的AS路径的内容取出所述记录的观测点AS号和宣告所述前缀的源AS号。

具体来说,步骤S111中,可以选取一个路由信息表作为初始路由表;进一步地,可以根据需要选取路由信息表,例如选取预设时间段的路由信息表;具体地,当需要检测第一时间(例如A年B月)之后的MOAS冲突事件时,可以选取该第一时间前一段时间产生的路由信息表(例如A年B月1日0点之前一天)产生的路由信息表。并按照以下方法处理该初始路由表:

对初始路由表的记录进行预处理,得到处理后的记录信息。包括:读取初始路由表中的每一条记录,去除其中的残缺记录,或按照文件格式提取出符合条件的记录信息,该记录信息可以包括该记录的生成时间、该记录对应的前缀以及AS路径,根据该AS路径的内容取出观测点AS号和宣告该前缀的源AS 号。将处理后的记录信息存为当前状态的路由状态快照表。

建立前缀信息表,用来记录前缀和源AS的映射关系。将处理后的记录信息按照前缀分类,记录下每一个前缀对应的源AS号、产生时间以及AS路径等信息,形成前缀信息表。

建立冲突关系表,用来记录一个前缀对应多个源AS的信息。也就是说,冲突关系表记录的是对应于多个源AS的前缀与该多个源AS之间的映射关系。初始状态下,冲突关系表中的记录即为前缀信息表中“前缀-多源AS”映射关系信息。

在一些实施例中,如图2和3所示,步骤S112,基于所述实时路由数据中的BGP更新报文数据,更新所述前缀信息表以及记录路由状态变化,得到当前状态的前缀信息表,可以进一步包括:

基于所述BGP更新报文数据得到至少一条报文记录;

按时间顺序将每条所述报文记录与所述前缀信息表中的记录进行比较;

响应于所述报文记录为撤销报文,删除所述前缀信息表中所述撤销报文中的前缀在对应的观测点观测到的路径信息,以及记录路由状态发生变化;

响应于所述报文记录为宣告报文,判断所述前缀信息表中是否存在所述宣告报文中前缀的对应信息;

响应于所述前缀信息表中不存在所述宣告报文中前缀的对应信息,将所述宣告报文中的前缀与对应的源AS信息添加至所述前缀信息表,以及记录路由状态发生变化;

响应于所述前缀信息表中存在所述宣告报文中前缀的对应信息,基于观测点的观测数据更新所述前缀信息表。

进一步地,在一些实施例中,基于观测点的观测数据更新所述前缀信息表还可以包括:

响应于有新的观测点观测到关于所述宣告报文中前缀的其他宣告报文,将所述宣告报文中的前缀与对应的源AS信息添加至所述前缀信息表,以及记录路由状态发生变化;

响应于有观测点观测到AS路径发生变化,将所述宣告报文中的前缀与对应的源AS信息添加至所述前缀信息表,以及记录路由状态发生变化。

在一些实施例中,基于所述BGP更新报文数据得到至少一条报文记录,还可以包括:

对所述BGP更新报文数据的记录进行第二预处理,得到处理后的所述至少一条报文记录。

在一些实施例中,所述第二预处理可以包括去除所述BGP更新报文数据的记录中的残缺记录,或按照第二预设格式提取所述BGP更新报文数据的记录内容,得到所述处理后的所述至少一条报文记录。

具体来说,可以当BGP更新报文数据中的记录的长度大于或等于第二预设长度时,认为其为符合条件的记录;当BGP更新报文数据中的记录的长度小于该第二预设长度时,就认为其不是一条符合条件的记录,可以将其去除。其中,可以将记录的长度大于或等于第二预设长度作为第二预设格式,直接从 BGP更新报文数据中提取记录的长度大于或等于第二预设长度的记录,得到处理后的至少一条报文记录。

应了解,第一预设长度与第二预设长度可以相同,也可以不同,均可以根据需要进行设置,在此不做限制。

在一些实施例中,步骤S112中,可以依次处理初始路由表之后的BGP更新报文数据即UPDATE报文,对于每个UPDATE报文,将其中的每一条记录与前缀信息表中的记录相比较,如果发现更新则记录下变化,具体来说:

按照时间顺序处理UPDATE报文。对于每个UPDATE报文,可以解析该 UPDATE报文的内容,读取该UPDATE报文中的每一行记录并去除其中的残缺记录,拆分符合条件的记录的内容,取出每一条记录中的时间戳、前缀、标志位、AS路径信息。

若该条UPDATE报文为撤销报文,则检查并更新前缀信息表中的内容,删除前缀信息表中该前缀在对应观测点观测到的路径信息,记录路由状态发生一次变化。

若该条UPDATE报文为宣告报文,则在前缀信息表中检查是否有该前缀对应的消息,如果没有该前缀对应的消息,则将该消息中相关信息初始化并将其添加进前缀信息表中,并记录一次变化。

若该条UPDATE报文为宣告报文,且前缀信息表存在该前缀对应的消息,则首先检查观测点情况,若有新的观测点观测到关于该前缀的宣告消息,则将消息添加至前缀信息表中,并记录一次变化;如果从某个观测点观测到AS路径发生变化,则修改前缀信息表中的内容并记录一次变化。

在一些实施例中,如图2和3所示,步骤S113,基于当前状态的所述前缀信息表检测是否发生MOAS冲突事件,以及响应于检测到发生MOAS冲突事件,更新所述冲突关系表得到当前状态的冲突关系表且确定所述MOAS冲突事件的起始时间和结束时间,可以进一步包括:

基于所述当前状态的前缀信息表,提取路由状态发生变化的路由变化时刻,以及所述路由变化时刻对应的所有AS路径信息;

基于所述所有AS路径信息提取不同观测点观测到的源AS号;

基于所述源AS号的数量判断当前状态是否发生MOAS冲突事件;

响应于所述当前状态发生MOAS冲突事件,检查前一状态是否发生MOAS 冲突事件;

响应于所述前一状态没有发生MOAS冲突事件,确定当前状态发生新的MOAS冲突事件,记录当前时间为所述新的MOAS冲突事件的起始时间以及将所述新的MOAS冲突事件添加至所述冲突关系表中;

响应于所述前一状态发生MOAS冲突事件,确定前一状态的MOAS 冲突事件的冲突状态发生变化,将当前的冲突状态添加至所述冲突关系表中;

响应于所述当前状态未发生MOAS冲突事件,判断前一状态是否发生 MOAS冲突事件;

响应于所述前一状态没有发生MOAS冲突事件,确定未发生MOAS 冲突事件;

响应于所述前一状态发生MOAS冲突事件,确定前一状态的MOAS 冲突事件的冲突状态消失,记录当前时间为所述前一状态的MOAS冲突事件的结束时间以及将当前的冲突状态添加至所述冲突关系表中。

其中,在处理最新的一条BGP更新报文时,根据该BGP更新报文修改前缀信息表,然后检查前缀信息表中是否有新产生的冲突,如果一旦检测到有新的冲突,就将此时关于该前缀的所有信息放进冲突关系表中,以更新冲突关系表从而得到当前状态的冲突关系表。所以,冲突关系表可以至少包括前一状态和当前状态是否发生MOAS冲突事件的信息,由冲突关系表即可检查前一状态是否发生MOAS冲突事件。

在一些实施例中,基于所述源AS号的数量判断当前状态是否发生MOAS 冲突事件,可以进一步包括:

响应于所述源AS号的数量大于1,确定当前状态发生MOAS冲突事件;

响应于所述源AS号的数量等于1,确定当前状态未发生MOAS冲突事件。

在一些实施例中,步骤S110还可以包括:

将所述MOAS冲突事件中从不同观测点观测到的所有AS路径信息存入到 MOAS事件数据库中。

具体来说,步骤S113中,可以监测前缀信息表中的内容,若某一时刻路由状态快照表发生变化取出该时刻对应前缀的所有AS路径信息,取出从不同观测点观测到的源AS号,检查源AS号的数量。

若源AS数量大于一个,则代表当前状态该前缀发生MOAS冲突,此时考察前一个状态时该前缀的状态。若前一个状态时,该前缀没有发生冲突,则说明此次冲突是一个新的冲突,记录当前时间即为冲突事件的开始时间,添加至冲突关系表中;若前一个状态时,该前缀处于冲突状态,则说明冲突状态发生了转变,将此刻的状态添加至冲突关系表中。

若源AS数量为一个,则代表当前状态该前缀未发生MOAS冲突,此时考察前一个状态时该前缀是否有冲突现象。若前一个状态时,该前缀没有冲突,则代表此次状态变化并未导致MOAS冲突现象,不予处理;若前一个状态时,该前缀有冲突现象发生,则表示此刻冲突现象消失,一个冲突事件结束,记录下当前时间即为冲突事件结束时间,将此刻的状态添加至冲突关系表中。

若检测到一个MOAS冲突事件结束,则将该事件从开始到结束过程中,从不同观测点观测到的所有路径信息存入到MOAS冲突事件数据库中。

根据本公开实施例,参见图4,图4示出了根据本公开实施例的基于MOAS 冲突事件的劫持检测方法的另一示意性流程图。如图4所示,在步骤S110和步骤S120之间,还可以包括:

步骤S150,判断所述MOAS冲突事件中的prefix-moasn映射关系是否有效存在于预设的prefix-moasn映射关系数据库中。

其中,prefix-moasn映射关系可以表示前缀prefix与多源AS号moasn之间的映射关系。MOAS冲突事件的prefix-moasn映射关系可以基于步骤S110 中的前缀信息表提取得到。

预设的prefix-moasn映射关系数据库可以是从RPKI资料库中周期性的同步下载的验证数据(例如证书和签名)构建,由此可以基于RPKI证书认证体系来验证路由起源的有效性,从而得到IP前缀与多源AS号的真实授权关系。路由器可以基于这些数据,判断BGP路由消息的真实性,即路由消息中起源 AS是否有通告该IP前缀的合法授权。如果MOAS冲突事件中的prefix-moasn 映射关系存在于预设的prefix-moasn映射关系数据库,则可以根据该预设的 prefix-moasn映射关系数据库中存储的信息来直接判断MOAS冲突事件为异常MOAS冲突事件或正常MOAS冲突事件。

在一些实施例中,预设的prefix-moasn映射关系数据库可以包括正常 prefix-moasn映射关系数据库和异常prefix-moasn映射关系数据库。例如,正常prefix-moasn映射关系数据库可以包括:IP前缀prefixA及其对应的多源AS 号ASN-1、ASN-2。异常prefix-moasn映射关系数据库可以包括:IP前缀prefixB 及其对应的多源AS号ASN-3、ASN-4、ASN-5。应了解,上述正常prefix-moasn 映射关系数据库和异常prefix-moasn映射关系数据库中的映射关系仅为举例,并不旨在对其进行限制,正常prefix-moasn映射关系数据库和异常prefix-moasn 映射关系数据库均可以包括任意数量的映射关系,每个映射关系中的多源AS 号数量可以是一个或多个,在此不做限制。

可选地,在所述步骤S150之前,所述方法还可以包括:

获取路由源验证数据和历史BGP劫持事件数据;

基于所述路由源验证数据和所述历史BGP劫持事件数据构建所述预设的 prefix-moasn映射关系数据库。

在一些实施例中,获取路由源验证数据可以包括:采集全球各大洲的RPKI(Resource Public Key Infrastructure,资源公钥基础设施)认证信息,获取其中的路由源验证数据。进一步地,可以将该路由源验证数据保存至本地服务器指定文件夹中。

在一些实施例中,获取历史BGP劫持事件数据可以包括:访问BGP Stream 项目中公开的BGP路由异常消息,获取其中的前缀劫持消息。进一步地,可以将该前缀劫持消息保存至本地服务器中。

在一些实施例中,构建正常prefix-moasn映射关系数据库,可以包括:

获取不同地区和时间的路由源验证数据,并汇总为路由源验证表;

基于所述路由源验证表提取前缀与对应的多源AS号,得到至少一个授权 prefix-moasn映射关系;

对于每个所述授权prefix-moasn映射关系,基于所述路由源验证表重新计算所述授权prefix-moasn映射关系的有效时间,得到所述授权prefix-moasn映射关系对应的有效期;

基于每个所述授权prefix-moasn映射关系以及所述对应的有效期得到所述正常prefix-moasn映射关系数据库。

在一些实施例中,对于每个所述授权prefix-moasn映射关系,基于所述路由源验证表重新计算所述授权prefix-moasn映射关系的有效时间,得到所述授权prefix-moasn映射关系对应的有效期,可以包括:

将所述授权prefix-moasn映射关系中的最小有效开始时间中作为所述对应的有效期的开始时间;

将所述授权prefix-moasn映射关系中的最大有效结束时间中作为所述对应的有效期的结束时间。

其中,授权prefix-moasn映射关系可以包括多个时间段,可以取这些时间段的并集作为该授权prefix-moasn映射关系的有效期。具体来说,可以先将不同地区和时间的RPKI认证信息汇总到一张表中,从汇总后的表中提取 prefix-moasn映射关系,得到一个或多个prefix-moasn映射关系。然后重新计算这些prefix-moasn映射关系的有效期,对于每个prefix-moasn映射关系,取其中较小有效期开始时间作为该prefix-moasn映射关系的有效期开始时间,取其中较大有效期结束时间作为该prefix-moasn映射关系的有效期结束时间。将这些prefix-moasn映射关系及其各自对应的有效期写入到正常prefix-moasn映射关系库中。

在一些实施例中,构建异常prefix-moasn映射关系数据库,可以包括:

获取预设时间范围内的历史BGP劫持事件数据;

提取所述BGP劫持事件数据中的BGP劫持事件信息和对应的前缀;

基于所述BGP劫持事件信息和对应的前缀形成异常prefix-moasn映射关系,得到所述异常prefix-moasn映射关系数据库。

在一些实施例中,BGP劫持事件信息可以包括:历史BGP劫持事件的前缀、正确源AS号、异常源AS号和产生时间。

具体来说,为了建立异常prefix-moasn映射关系数据库,可以先读取时间范围内的历史BGP劫持事件信息,提取劫持事件的前缀、正确源ASN、异常源ASN、事件的产生时间,构造出异常prefix-moasn映射关系。将异常 prefix-moasn映射关系及其有效期存入数据库中,形成异常prefix-moasn映射关系数据库。其中,异常prefix-moasn映射关系的有效期包括该映射关系中的历史劫持事件的开始时间至结束时间。

可选地,在步骤S150,判断所述MOAS冲突事件的prefix-moasn映射关系是否有效存在于预设的prefix-moasn映射关系数据库,可以包括:

在所述预设的prefix-moasn映射关系数据库中查询是否存在所述MOAS 冲突事件的prefix-moasn映射关系;

响应于所述MOAS冲突事件的prefix-moasn映射关系存在于所述预设的 prefix-moasn映射关系数据库中,判断所述MOAS冲突事件的prefix-moasn映射关系是否过期;

响应于所述MOAS冲突事件的prefix-moasn映射关系未过期,确定所述MOAS冲突事件的prefix-moasn映射关系有效存在于预设的 prefix-moasn映射关系数据库中。

在一些实施例中,在步骤S150,还可以包括:

响应于所述MOAS冲突事件的prefix-moasn映射关系过期,确定所述 MOAS冲突事件的prefix-moasn映射关系未有效存在于预设的prefix-moasn映射关系数据库中。

在一些实施例中,在步骤S150,还可以包括:

响应于所述MOAS冲突事件的prefix-moasn映射关系不存在于所述预设的prefix-moasn映射关系数据库中,确定所述MOAS冲突事件的prefix-moasn映射关系未有效存在于预设的prefix-moasn映射关系数据库中。

在一些实施例中,在步骤S150,还可以包括:

响应于所述MOAS冲突事件的prefix-moasn映射关系有效存在于所述预设的prefix-moasn映射关系数据库中,基于所述MOAS冲突事件的prefix-moasn 映射关系存在于正常prefix-moasn映射关系数据库或异常prefix-moasn映射关系数据库,判断所述MOAS冲突事件是否异常。

进一步地,在一些实施例中,基于所述MOAS冲突事件的prefix-moasn 映射关系存在于正常prefix-moasn映射关系数据库或异常prefix-moasn映射关系数据库,判断所述MOAS冲突事件是否异常,可以包括:

响应于所述MOAS冲突事件的prefix-moasn映射关系存在于正常 prefix-moasn映射关系数据库,确定所述MOAS冲突事件为正常MOAS冲突事件;

响应于所述MOAS冲突事件的prefix-moasn映射关系存在于异常 prefix-moasn映射关系数据库,确定所述MOAS冲突事件为异常MOAS冲突事件。

进一步地,在一些实施例中,确定所述MOAS冲突事件为异常MOAS冲突事件,则可以确定发生发生BGP前缀劫持。

可选地,在步骤S150中,还可以包括:响应于所述MOAS冲突事件的 prefix-moasn映射关系未有效存在于所述预设的prefix-moasn映射关系数据库中,执行步骤S120,基于所述MOAS冲突事件和不同的观测点得到MOAS事件矩阵。

根据本公开实施例,在步骤S120,基于所述MOAS冲突事件和不同的观测点得到MOAS事件矩阵,可以包括:

获取所述MOAS冲突事件中所有观测点和时间戳;

以所述观测点为列,所述顺序排列的时间戳为行构建所述MOAS事件矩阵[AS

具体来说,在步骤S120中,对于从步骤S110中检测到的MOAS冲突事件,参见图5,图5示出了根据本公开实施例的MOAS事件矩阵示意图。如图 5所示,首先需要统计出观察到MOAS冲突事件的所有VP观测点,记为VP

以所有的VP点为列,以所有的时间戳为行,其中时间戳按照先后顺序依次排列,建立一个n行m列的矩阵,矩阵的单元格中存放AS号。

从事件中获取此次冲突事件发生过程中,在不同时间点从各个观测点观察到的源AS的情况。按照时间顺序查看AS路径情况,从AS路径中提取观测点和源AS信息,将AS号填入矩阵的相应单元格内。例如,假设在T

按照前述方法,将不同时间在不同观测点观测到的AS全部填入矩阵单元格内,即为该事件构建出了该MOAS冲突事件的MOAS事件矩阵。

根据本公开实施例,在步骤S130中,基于所述MOAS事件矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件,可以包括:

基于所述MOAS事件矩阵进行特征提取,得到源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合;

基于所述源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合和预设规则,判断所述MOAS冲突事件是否为异常MOAS冲突事件。

在一些实施例中,基于所述MOAS事件矩阵进行特征提取,得到源AS的变化率、源AS的不变率以及MOAS事件可见观测点集合,可以进一步包括:

基于所述MOAS事件矩阵计算源AS切换次数;

基于所述MOAS事件矩阵的列和所述源AS切换次数计算源AS的变化率和源AS的不变率;

基于所述MOAS事件矩阵的行计算可见所述MOAS冲突事件的观测点,得到可见观测点集合。

在一些实施例中,基于所述MOAS事件矩阵[AS

具体来说,对于某一前缀对应的多源AS事件矩阵,计算单个事件矩阵中源AS切换的总次数。设事件矩阵模型为矩阵Anm,有n行,m列,代表该矩阵描述的事件被观测的次数为n次,观测点的数目为m个。则该事件矩阵中原 AS切换总次数switch_num=(n-1)×m。

在一些实施例中,基于所述MOAS事件矩阵的列和所述源AS切换次数计算源AS的变化率和源AS的不变率,可以包括:

统计所述MOAS事件矩阵中每一列的相邻源AS发生变化的次数之和,得到源AS的变化次数;

统计所述MOAS事件矩阵中每一列的相邻源AS未发生变化的次数之和,得到源AS的不变次数;

基于所述源AS的变化次数、不变次数和源AS切换次数,计算所述源AS 的变化率和不变率。

在一些实施例中,基于所述源AS的变化次数、不变次数和源AS切换次数,计算所述源AS的变化率和不变率,可以包括:

源AS的变化率=源AS的变化次数/源AS切换次数;

源AS的不变率=源AS的不变次数/源AS切换次数。

具体来说,结合图5,计算源AS在该MOAS冲突事件中的变化率时,对于某一前缀对应的MOAS冲突事件矩阵,从列的角度来看,从T

计算源AS在MOAS冲突事件中的不变率时,对于某一前缀对应的多源 AS矩阵,从列的角度来看,从T

在一些实施例中,基于所述MOAS事件矩阵的行计算可见所述MOAS冲突事件的观测点,得到MOAS事件可见观测点集合,可以包括:

统计所述MOAS事件矩阵中每一行中观测到所述MOAS冲突事件对应多个源AS的观测点的集合,得到所述MOAS事件可见观测点集合。

在一些实施例中,所述MOAS事件可见观测点集合可以表示对于所述 MOAS冲突事件,在不同的时间点观测到不同的AS的观测点的集合。

也就是说,对于一个MOAS事件,若在不同的时间点,从某个观测点观测到不同的AS,则将该观测点加入到可见观测点集合中。具体来说,计算 MOAS冲突事件的可见观测点集合即可见性时,从某个观测点角度来看(也就是从矩阵列的角度来看),在T1~Tn全部时间点,如果看到该冲突事件对应的两个源AS,则计该冲突对于该观测点可见。记录下该事件可见观测点集合 visiblevp_set,例如某一事件矩阵对应的冲突事件的可见观测点为:VP1、VP3、 VP4,则该事件的可见观测点集合为visiblevp_set={VP1,VP3,VP4}。

在一些实施例中,基于所述源AS的变化率、源AS的不变率以及MOAS 事件可见观测点集合和预设规则,判断所述MOAS冲突事件是否为异常MOAS 冲突事件,可以包括:

计算MOAS冲突事件中两个源AS变化率差值的绝对值,记作 change_rate_distance=|change_rateAS1–change_rateAS2|;

计算MOAS冲突事件中两个源AS不变率差值的绝对值,记作 constant_rate_distance=|constant_rateAS1–constant_rateAS2|;

判断所述两个源AS变化率差值的绝对值、所述两个源AS不变率差值的绝对值和所述MOAS事件可见观测点集合是否符合所述预设规则;

响应于change_rate_distance<=α&&constant_rate_distance>β,或者 change_rate_distance<=α&&constant_rate_distance<=β&&visiblevp_set∈ visiblevp_setX,确定所述MOAS冲突事件为异常MOAS冲突事件;

其中,α、β为预设阈值,visiblevp_set为MOAS事件可见观测点集合, visiblevp_setX为预设的可见观测点集合。

根据本公开实施例,在步骤S140中,响应于所述MOAS冲突事件异常,确定发生BGP前缀劫持。

可选地,在步骤S140中,还可以包括:响应于所述MOAS冲突事件正常,确定未发生BGP前缀劫持。

需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种基于MOAS冲突事件的BGP劫持检测装置。

参考图6,所述基于MOAS冲突事件的BGP劫持检测装置,包括:

获取模块,用于获取实时路由数据;

事件还原模块,用于基于所述实时路由数据检测MOAS冲突事件;

矩阵模块,用于基于所述MOAS冲突事件的时间戳和观测点得到MOAS 矩阵;

判断模块,用于基于所述MOAS矩阵的行为特征判断所述MOAS冲突事件是否为异常MOAS冲突事件;

劫持检测模块,用于响应于所述MOAS冲突事件为异常MOAS冲突事件,确定发生BGP前缀劫持。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的基于MOAS冲突事件的BGP劫持检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于MOAS 冲突事件的BGP劫持检测方法。

图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口 1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM (Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/ 输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的基于MOAS冲突事件的BGP劫持检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于MOAS 冲突事件的BGP劫持检测方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于MOAS冲突事件的BGP劫持检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号