面向误配置的域间前缀劫持检测方法转让专利

申请号 : CN200910092803.3

文献号 : CN101656638B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘冰毕经平

申请人 : 中国科学院计算技术研究所

摘要 :

本发明提供一种在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法;所述自治系统包括监测探针,所述监测探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;该方法包括:所述监测探针获取本自治系统向外发送的路由更新报文;分析所述路由更新报文的各个条目,对添加类型的条目执行下一步;对已经存在于所述网络前缀信息列表且前缀信息完全一致的条目,不做额外操作,直接处理路由更新报文中的下一条目;对不存在于网络前缀信息列表中或虽然存在于网络前缀信息列表中但前缀信息存在冲突的条目,主动探测该条目的合法性;根据合法的添加类型的条目对所述网络前缀信息列表进行更新。本发明能够避免误配置现象的发生,维护网络安全。

权利要求 :

1.一种网络系统,包括至少一个自治系统,其特征在于,所述自治系统包括边界路由器和监测探针;其中,所述监测探针包括有用于存储所在自治系统中的前缀信息的网络前缀信息列表;

所述监测探针获取边界路由器发出的路由更新报文后,分析路由更新报文中的条目,并将该条目中的前缀信息与网络前缀信息列表中的前缀信息进行比较;根据比较结果需要对网络前缀信息列表中的前缀信息进行添加或撤销前,主动检测相关条目的合法性;其中,对于撤销类型的条目,在所述网络前缀信息列表中查找该条目所包含的所要撤销的前缀信息,若能找到,就表示该条目合法,从所述网络前缀信息列表删除该条目的前缀信息,否则,发出报警信息;对于添加类型的条目,对已经存在于所述网络前缀信息列表且前缀信息完全一致的条目,不做额外操作,直接处理路由更新报文中的下一条目;对不存在于网络前缀信息列表中或虽然存在于网络前缀信息列表中但前缀信息存在冲突的条目,主动探测该条目的合法性,具体包括:根据条目的前缀信息中的IP起始地址与网络掩码,生成待检测队列;从所述待检测队列中依次取出IP地址,利用ping技术进行探测,并对探测出的结果进标记,得到结果队列;根据所述结果队列中所包含正确回应的个数确定添加类型的条目中的前缀信息是否合法;

所述监测探针包括前缀规则库管理模块、路由更新报文采集模块、前缀劫持攻击检测模块、告警模块;其中,所述的前缀规则库管理模块用于实现前缀信息规则库的创建、更新工作;

所述的路由更新报文采集模块用于实现对所在自治系统的边界路由器BGP更新报文的采集工作;

所述的前缀劫持攻击检测模块用于对误配置所带来的前缀劫持问题进行检测;

所述的告警模块用于发出告警信息来将存在问题的前缀信息通知管理员。

2.一种在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法,所述自治系统包括监测探针,所述监测探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表,该方法包括:步骤1)、所述监测探针获取本自治系统向外发送的路由更新报文;

步骤2)、分析所述路由更新报文的各个条目,对添加类型的条目执行步骤3);

步骤3)、对已经存在于所述网络前缀信息列表且前缀信息完全一致的条目,不做额外操作,直接处理路由更新报文中的下一条目;对不存在于网络前缀信息列表中或虽然存在于网络前缀信息列表中但前缀信息存在冲突的条目,主动探测该条目的合法性;

步骤4)、根据合法的添加类型的条目对所述网络前缀信息列表进行更新;

在所述的步骤3)中,所述的主动探测该条目的合法性包括:

步骤3-1)、根据条目的前缀信息中的IP起始地址与网络掩码,生成待检测队列;

步骤3-2)、从所述待检测队列中依次取出IP地址,利用ping技术进行探测,并对探测出的结果进标记,得到结果队列;

步骤3-3)、根据所述结果队列中所包含正确回应的个数确定添加类型的条目中的前缀信息是否合法。

3.根据权利要求2所述的在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法,其特征在于,在步骤2)之后还包括:对撤销类型的条目,在所述网络前缀信息列表中查找该条目所包含的前缀信息,若能找到,从所述网络前缀信息列表删除该条目的前缀信息,否则,发出报警信息。

4.根据权利要求2或3所述的在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法,其特征在于,在所述的步骤3-1)中,所述的生成待检测队列包括:当添加类型的条目不存在于网络前缀信息列表中时,从该条目的网络前缀所涵盖的IP地址段中选取若干个IP地址,将所选取的IP地址填入所述待检测队列中;

当添加类型的条目存在于网络前缀信息列表中但前缀信息存在冲突时,从相冲突的两个网络前缀所涵盖的IP地址段的集合中选取不相交部分,从所述不相交部分选取若干IP地址后填入所述待检测队列。

5.根据权利要求2或3所述的在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法,其特征在于,在所述的步骤3-3)中,若所述结果队列中所包含正确回应的个数大于一指定阈值,则认为添加类型的条目中的前缀信息合法,否则,发出警告信息。

说明书 :

面向误配置的域间前缀劫持检测方法

技术领域

[0001] 本发明涉及域间网络安全领域,特别涉及一种面向误配置的域间前缀劫持检测方法。

背景技术

[0002] 目前,Internet和较大的网络服务提供者(ISP)的网络被分成大量的自治系统(Autonomous System,AS),由自治系统来定义管理区域和作用于自治系统范围内的路由策略。如今的互联网由25 000多个自治系统组成,这些自治系统通过边界网关协议(BGP)传递路由更新信息。BGP协议运行在各个自治系统的边界路由器上,它通过各个自治系统的边界路由器之间所交换的AS级路由可达性信息来完成域间路由,从而实现各个自治系统之间网络信息的可达。根据BGP协议,每个自治系统的边界路由器在工作过程中会定时向自己的邻居宣告路由更新报文,在所述的路由更新报文中,包括有最新的网络前缀信息的宣告与撤销。其他自治系统中的路由器在收到这些路由更新报文后,会根据其中的网络前缀信息选择最优路由。
[0003] BGP协议在Internet上的广泛应用使得它已经成为当前域间路由协议的事实标准。但是BGP协议在制定之初并没有充分考虑安全机制,而在当前运营BGP协议时,也未充分启用相应的保护机制,这使得当前的互联网络中存在潜在的或现实的安全威胁。在域间安全领域,由于BGP协议自身的不足所带来的安全威胁尤为突出,其中的基于BGP的域间前缀劫持攻击更已经成为当前互联网络中最难以防范的安全威胁。
[0004] 所述的域间前缀劫持是指:从属于某个自治系统的边界路由器通过BGP向外发布了不属于自身前缀信息的更新报文或者对外发布虚假的最优选路,导致了真实网络的不可达。以图1所示的互联网拓扑图为例,在该网络中包含有A、B、C、D、E、F、G等多个自治系统。假设其中的自治系统F拥有前缀信息202.194.10.1/8,自治系统C若要与自治系统F中的该前缀通信,在正常情况下需要通过路径[C、B、A、F]。如果自治系统E 由于某种原因向外宣告前缀信息202.194.10.1/16属于自己(即发生了域间前缀劫持),那么根据最短路由的特性,当自治系统C与前缀202.194.10.1/8通信时,路由路径会变为[C、D、E]。由于前缀202.194.10.1/8实际在自治系统F中,因此,自治系统C无法与该前缀通信。这种改变同样会对自治系统B、D造成影响。
[0005] 域间前缀劫持的发生会对互联网络产生重大的危害,轻则导致部分运营商受到影响,严重时能导致一个国家、甚至全球骨干网络的瘫痪。例如2004年12月24日,土耳其ISP服务提供商TTNet通过BGP向外发送了完整的互联网路由信息。由于TTNet外发的路由信息中声称他们是互联网上最好的路由,这一错误导致来自亚马逊、微软、雅虎和CNN网站全部选择该ISP作为最佳路由,这导致当天上午大部分的互联网流量流入到土耳其,时间达数小时之久,产生极其严重的后果。再如2008年2月,巴基斯坦电信局(Pakistan Telecom)在试图限制本国用户访问YouTube网站时,由于配置错误,使得它通过BGP向香港的ISP服务提供商PCCW发送了新的路由信息。该路由信息声称,它有最佳的路由到达YouTube。此后PCCW在互联网上传播了错误的路由信息,导致在接下来的二个小时内,世界各地的大多数YouTube用户都无法访问其网站。
[0006] 对现实生活中所发生的网络安全事件进行分析可以知道,绝大多数的域间前缀劫持的发生是由于管理人员或路由器软件的误配置,而不是外部人员的恶意攻击。这与大型的ISP运营商对于域间网络的安全防护极为重视,有足够的财力与物力有效阻断外部的恶意攻击有关。而对于本网络中的误配置,或者由于关注程度不够、或者由于所需配置数据量较大,因而时有发生。
[0007] 鉴于现实生活中的上述情况,如果各个AS能够自动检测本区域内的误配置,将能够极大地降低发生域间前缀劫持的风险,真正提高骨干网络的网络安全。但在现有技术中,缺少由各个AS自动检测本区域内误配置的相关方法。

发明内容

[0008] 本发明的目的是克服误配置所造成的域间前缀劫持,从而提供一种面向误配置的域间前缀劫持检测方法。
[0009] 为了实现上述目的,本发明提供了一种网络系统,包括至少一个自治系统,其特征在于,所述自治系统包括边界路由器和监测探针;其中,所述监测探针包括有用于存储所在自治系统中的前缀信息的网络前缀信息列表;
[0010] 所述监测探针获取边界路由器发出的路由更新报文后,分析路由更新报文中的条目,并将该条目中的前缀信息与网络前缀信息列表中的前缀信息进行比较;根据比较结果需要对网络前缀信息列表中的前缀信息进行添加或更改前,主动检测相关条目的合法性。 [0011] 上述技术方案中,所述监测探针包括前缀规则库管理模块、路由更新报文采集模块、前缀劫持攻击检测模块、告警模块;其中,
[0012] 所述的前缀规则库管理模块用于实现前缀信息规则库的创建、更新工作; [0013] 所述的路由更新报文采集模块用于实现对所在自治系统的边界路由器BGP更新报文的采集工作;
[0014] 所述的前缀劫持攻击检测模块用于对误配置所带来的前缀劫持问题进行检测; [0015] 所述的告警模块用于发出告警信息来将存在问题的前缀信息通知管理员。 [0016] 本发明还提供了一种在包含有至少一个自治系统的网络系统中面向误配置的域间前缀劫持检测方法;所述自治系统包括监测探针,所述监测探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;该方法包括:
[0017] 步骤1)、所述监测探针获取本自治系统向外发送的路由更新报文; [0018] 步骤2)、分析所述路由更新报文的各个条目,对添加类型的条目执行下一步骤; [0019] 步骤3)、对已经存在于所述网络前缀信息列表且前缀信息完全一致的条目,不做额外操作,直接处理路由更新报文中的下一条目;对不存在于网络前缀信息列表中或虽然存在于网络前缀信息列表中但前缀信息存在冲突的条目,主动探测该条目的合法性; [0020] 步骤4)、根据合法的添加类型的条目对所述网络前缀信息列表进行更新。 [0021] 上述技术方案中,在步骤2)之后还包括:
[0022] 对撤销类型的条目,在所述网络前缀信息列表中查找该条目所包含的前缀信息,若能找到,从所述网络前缀信息列表删除该条目的前缀信息,否则,发出报警信息。 [0023] 上述技术方案中,在所述的步骤3)中,所述的主动探测该条目的合法性包括: [0024] 步骤3-1)、根据条目的前缀信息中的IP起始地址与网络掩码,生成待检测队列; [0025] 步骤3-2)、从所述待检测队列中依次取出IP地址,利用ping技术进行探测,并对探测出的结果进标记,得到结果队列;
[0026] 步骤3-3)、根据所述结果队列中所包含正确回应的个数确定添加类型的条目中的前缀信息是否合法。
[0027] 上述技术方案中,在所述的步骤3-1)中,所述的生成待检测队列包括: [0028] 当添加类型的条目不存在于网络前缀信息列表中时,从该条目的网络前缀所涵盖的IP地址段中选取若干个IP地址,将所选取的IP地址填入所述待检测队列中; [0029] 当添加类型的条目存在于网络前缀信息列表中但前缀信息存在冲突时,从相冲突的两个网络前缀所涵盖的IP地址段的集合中选取不相交部分,从所述不相交部分选取若干IP地址后填入所述待检测队列。
[0030] 上述技术方案中,在所述的步骤3-3)中,若所述结果队列中所包含正确回应的个数大于一指定阈值,则认为添加类型的条目中的前缀信息合法,否则,发出警告信息。 [0031] 本发明的优点在于:
[0032] 本发明能够避免误配置现象的发生,维护网络安全。

附图说明

[0033] 图1为发生域间前缀劫持的原理示意图;
[0034] 图2为能够实现本发明的面向误配置的域间前缀劫持检测方法的网络系统的结构图;
[0035] 图3为本发明的面向误配置的域间前缀劫持检测方法的流程图。 具体实施方式
[0036] 下面结合附图和具体实施方式对本发明进行说明。
[0037] 在描述本发明方法的实现过程之前,首先对能够实现本发明方法的网络系统的组成加以说明。图2为能够实现本发明方法的网络系统的结构图,在图2所示的实例中可以看出,整个网络系统包括有第一自治系统3、第二自治系统6以及第三自治系统9。在第一自治系统3内包括有第一边界路由器1与第一监测探针2,类似的,在第二自治系统6内包括有第二边界路由器4与第二监测探针5,在第三自治系统9内包括有第三边界路由器7与第三监测探针8。其中,自治系统中的监测探针用于获取所在自治系统所拥有的前缀信息,并根据该前缀信息构造所在自治系统的网络前缀信息列表。根据监测探针的上述功能,可将该监测探针分为四个模块,分别是前缀规则库管理模块、路由更新报文采集模块、前缀劫持攻击检测模块、告警模块。其中的前缀规则库管理模块用于实现前缀信息规则库的创建、更新等工作。路由更新报文采集模块用于实现对所在自治系统的边界路由器BGP更新报文的采集工作。前缀劫持攻击检测模块用于对误配置所带来的前缀劫持问题进行检测,它主要通过分析BGP更新报文来检测向外宣告的前缀信息是否存在问题。告警模块用于发出告警信息来将存在问题的前缀信息通知管理员。
[0038] 虽然在图2所示的实例中,网络系统只有三个自治系统,但本发明的方法可以用于包含任意个自治系统的网络系统中。由于本发明的方法可在各个自治系统中单独实现,因此,在下面的描述中将以一个自治系统为例,对本发明方法的实现过程进行说明。 [0039] 以图2中的第一自治系统3为例,参考图3,对该自治系统如何检测由于误配置而产生的域间前缀劫持进行说明。
[0040] 第一自治系统3中的第一监测探针2获取本自治系统所拥有的前缀信息,并构建相应的网络前缀信息列表。所述的网络前缀信息列表由多个条目组成,每个条目的结构为:<编号、前缀信息、所属自治系统编号>。监测探针对本自治系统中前缀信息的获取方法分为手动模式和自动模式两种。手动模式是指本自治系统管理员通过配置接口,为监测探针配置本自治系统所包含的前缀信息。自动模式是指由本自治系统管理员授权监测探针访问各边界路由器的路由表,然后监测探针自动分析路由表中的信息以获得本自治系统的前缀信息。第一监测探针2可以采用上述手动模式和自动模式中的任意一种。 [0041] 当第一自治系统3中的第一边界路由器1向外发送路由更新报文时, 所述的第一监测探针2能够实时获取这些路由更新报文,分析该报文中各个条目的合法性,然后根据条目的类型做相应的处理。
[0042] 路由更新报文中的条目一般包括前缀信息、所属自治系统号以及属性,其数据结构为<前缀信息、所属自治系统号、属性>。其中的属性代表了该条目是一条添加类型的条目,还是一条撤销类型的条目。在路由更新报文中可以有多个条目,但无论有多少个条目,其属性信息只可能是上述两种情况中的一种。添加类型的条目和撤销类型的条目有不同的处理方法,在下文中将分别予以说明。
[0043] 对于撤销类型的条目,第一监测探针2需要从其自身的网络前缀信息列表中查找是否存在条目中所包含的所要撤销的前缀信息,如果能够找到,就表示该条目合法,删除网络前缀信息列表中的相应前缀信息,如果不能找到,需要向本自治系统管理员发出报警信息。例如,在路由更新报文中有一撤销类型的条目,该条目所包含的前缀信息为100.9.3.0/16,如果在第一监测探针2的网络前缀信息列表中包含有前缀信息为100.9.3.0/16的条目,则可在网络前缀信息列表中找到相应条目并删除。本领域技术人员应当了解,在诸如100.9.3.0/16的前缀信息中,“/”之前的100.9.3.0代表IP起始地址,而“/”之后的16代表网络掩码。该前缀信息代表IP地址中的前16位为网络掩码,其余位(即后16位)为主机地址。也就是说,这一前缀信息代表了从100.9.3.1~100.9.254.254的IP地址段。对于撤销类型的条目,只有前缀信息中的IP起始地址和网络掩码与网络前缀信息列表中相应前缀信息都相同,才认为在网络前缀信息列表中找到该条目。 [0044] 对于添加类型的条目,首先判断该条目是否存在于前述的网络前缀信息列表,如果存在,则就该条目与网络前缀信息列表中保存的信息是否完全一致进行判断,然后根据判断结果做后续操作。如果不存在,则说明添加类型的条目中的前缀信息有可能会被添加到网络前缀信息列表中,因此需要对该条目的合法性做主动探测。对条目是否存在于网络前缀信息列表中的判断是通过比较前缀信息中的IP起始地址实现的。例如,若某一条目中所包含的前缀信息为202.194.0.0/16,而网络前缀信息列表中存在一个条目,其前缀信息为202.194.0.0/24,由于两个条目的前缀信息中的IP起始地址都为202.194.0.0,因此,虽然两者的网络掩码不同,但前缀信息为202.194.0.0/16的条目被认为存在于网络前缀信息列表中。与之不同的是,判断条目与网络前缀信息列表中保存的信息是否完全一致时,除了要求两 者的IP起始地址一样,网络掩码也要求一样。因此,前面的例子中,前缀信息为
202.194.0.0/16的条目不认为与网络前缀信息列表中的相关信息完全一致。 [0045] 如果添加类型的条目与网络前缀信息列表中的相关信息完全一致,说明所要添加的信息已经存在,因此无需做任何额外操作,直接对路由更新报文中的下一个条目进行处理即可。如果不完全一致,说明添加类型的条目与网络前缀信息列表存在冲突,需要对网络前缀信息列表中的相应信息进行更新。在更新前,同样要对该条目的合法性做主动探测。 [0046] 在上述的对条目的合法性做主动探测时,首先要生成待检测队列。在生成待检测队列时,如果相关条目不存在于网络前缀信息列表,则根据条目中的前缀信息的IP起始地址以及网络掩码,随机生成非连续的50-100个IP地址,然后将这些IP地址存放到待检测队列中。例如,当前有一条添加类型的条目,其前缀信息为202.194.8.0/24,该前缀信息所包含的IP地址的范围在202.194.8.1-202.194.8.254之间,因此随机生成的IP地址可以是202.194.8.1、202.194.8.4、…、202.194.8.100等。如果相关条目是与网络前缀信息列表中的原有条目相冲突,则需要从两个网络前缀中所包含的IP地址集合中的不相交部分里随机取出50-100个IP地址,然后将这些IP地址存放到待检测队列中。例如,网络前缀信息列表中的一个条目的前缀信息为3.8.0.0/16,而新增加条目的前缀信息为3.8.0.0/24。
本领域技术人员应当了解,对于前缀信息为3.8.0.0/16的条目,其所包含的IP地址的范围为3.8.0.1~3.8.254.254,而对于前缀信息为3.8.0.0/24的条目,其所包含的IP地址的范围为3.8.0.1~3.8.0.254。因此,所取出的IP地址应当在3.8.1.1~3.8.254.254之间,如3.8.1.1、3.8.1.2、…3.8.1.100等。
[0047] 在得到待检测队列后,任意取出一个IP地址,采用ping技术进行探测,并对探测出的结果进标记,若收到正确的回应信息,标记为1,否则标记为0。按照上述方法对待检测队列中的各个IP地址依次进行检测,从而得到一个结果队列。如果结果队列中标记为1的结果大于一个预先设定的阈值,则认定该前缀是合法的,否则,则可认定该前缀存在潜在的问题,启动告警机制,向本自治系统管理人员通报该问题前缀。在本实施例中,所述的阈值为20%,即若待检测队列中的IP数为50个,则当结果队列中有10个以上的IP探测结果为1时,就认为新添加条目中的前缀是合法的。
[0048] 在得到新添加的条目具有合法性的前提下,在网络前缀信息列表中添加 该条目或对原有的对应条目进行更新。
[0049] 本发明通过对边界路由器所发出的路由更新报文中条目的前缀信息的主动检测,能够在网络前缀信息列表被修改之前,发现不合法的条目,避免了误配置现象的发生,有利于维护网络安全。
[0050] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。