域间前缀劫持检测与定位方法

文档序号:7701727阅读:171来源:国知局
专利名称:域间前缀劫持检测与定位方法
技术领域
本发明涉及域间网络安全领域,特别涉及一种域间前缀劫持检测与定 4立方法。
背景技术
目前,Internet和较大的网络服务提供者(ISP )的网络被分成大量的 自治系统(Autonomous System, AS ),由自治系统来定义管理区域和作用 于自治系统范围内的5^由策略。如今的互联网由25 000多个自治系统组 成,这些自治系统通过边界网关协议(BGP)传递路由更新信息。BGP协 议运行在各个自治系统的边界路由器上,它通过各个自治系统的边界路由 器之间所交换的AS级路由可达性信息来完成域间路由,从而实现各个自 治系统之间网络信息的可达。根据BGP协议,每个自治系统的边界路由 器在工作过程中会定时向自己的邻居宣告路由更新报文,在所述的路由更 新报文中,包括有最新的网络前缀信息的宣告与撤销。其他自治系统中的 路由器在收到这些路由更新报文后,会根据其中的网络前缀信息选择最优 路由。
BGP协议在Internet上的广泛应用使得它已经成为当前域间路由协议 的事实标准。但是BGP协议在制定之初并没有充分考虑安全4几制,而在 当前运营BGP协议时,也未充分启用相应的保护机制,这使得当前的互 联网络中存在潜在的或现实的安全威胁。在域间安全领域,由于BGP协 议自身的不足所带来的安全威胁尤为突出,其中的基于BGP的域间前缀 劫持攻击更已经成为当前互联网络中最难以防范的安全威胁。
所述的域间前缀劫持是指从属于某个自治系统的边界路由器通过 BGP向外发布了不属于自身前缀信息的更新报文或者对外发布虚假的最 优选路,导致了真实网络的不可达。以图1所示的互联网拓朴图为例,在 该网络中包含有A、 B、 C、 D、 E、 F等多个自治系统。假设其中的自治 系统F拥有前缀信息192.168.3.1/255,自治系统C若要与自治系统F中的 该前缀通信,在正常情况下需要通过路径[C、 B、 A、 F]。如果自治系统E
4200910089794.2 也向外宣告前缀信息192.168.3.1/255属于自己(即发生了域间前缀劫持), 那么根据最短路由的特性,当自治系统C与前缀192.168.3.1/255通信时, 路由路径会变为[C、 D、 E]。由于前缀192.168.3.1/255实际在自治系统F 中,因此,自治系统C无法与该前缀通信。域间前缀劫持发生的一个重要 原因是接收路由更新报文的自治系统无法对所接收到的路由更新报文的 正确性加以4全马全。域间前缀劫持的发生会对互联网络产生重大的危害,轻则导致部分运 营商受到影响,严重时能导致一个国家、甚至全球骨干网络的瘫痪。例如 2004年12月24日,土耳其ISP服务提供商TTNet通过BGP向外发送了 完整的互联网路由信息。由于TTNet外发的路由信息中声称他们是互联网 上最好的路由,这一错误导致来自亚马逊、微软、雅虎和CNN网站全部 选择该ISP作为最佳路由,这导致当天上午大部分的互联网流量流入到土 耳其,时间达数小时之久,产生极其严重的后果。再如2008年2月,巴 基斯坦电信局(Pakistan Telecom)在试图限制本国用户访问YouTube网站 时,由于配置错误,使得它通过BGP向香港的ISP服务提供商PCCW发 送了新的路由信息。该路由信息声称,它有最佳的路由到达YouTube。此 后PCCW在互联网上传播了错误的路由信息,导致在接下来的二个小时 内,世界各地的大多数YouTube用户都无法访问其网站。针对前缀劫持所带来的巨大危害,当前业界提出了两大类型的解决方 法。 一种类型的解决方法是对BGP的安全协议进行扩展,该类方法以 S-BGP和soBGP为代表,它们利用PKI技术可以严格保证BGP路由安 全。但由于协议开销等问题,运营商普遍难以接受这些方案。为避免S-BGP 等强类型安全路由协议在实际应用中遇到的困境,近年来又提出了 Listen-Whisper以及psBGP等机制。这些机制以降低安全能力为代价大量 削减协议开销。然而,这些方案也未被运营商所接受。迄今为止依然没有 一个BGP协议安全扩展方案被运营商实际广泛地应用。另一类型的解决方法是基于应用系统的检测。此类方法又进一步分为 两种,第一种是采用被动式的公开的更新报文数据采集,通过分析更新报 文中向外宣告的信息是否与已有规则相冲突来判断劫持是否存在。此种方 法存在的问题是分析的精度依赖于数据采集点,另外由于数据是来自于公 共数据,因此实时性不高,此种方法的典型代表为PHAS。第二种是采用 主动式的探测技术,通过部署主动式探测点,定期向目标AS所属的前缀发送探测报文,例如ping主机是否存在、traceroute选路是否合法等。但 此种方法存在的问题是由于当前互联网络存在大量的前缀信息,这要求发 送大量探测报文,造成大量的探测开销,另外网络故障也会导致报文不可 达,因此会带来一定的误报率。发明内容本发明的目的是克服现有的域间前缀劫持发现方法实时性不高或探 测开销大的缺陷,从而提供一种实时、准确的域间前缀劫持检测与定位方 法。为了实现上述目的,本发明提供了一种网络系统,包括至少两个自治 系统,在每个所述自治系统中包括一个采集监测探针,所述网络系统还包 括对所述采集监测探针进行管理的集中式管理端;其中,所述的釆集监测 探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;所述采集监测探针从所接收到的BGP路由更新报文中提取前缀信息, 并将所提取的前缀信息发送到其他自治系统的采集监测探针上;所述的采 集监测探针还接收其他自治系统上的采集监测探针所发送的前缀信息,并 将所述前缀信息与自身的网络前缀信息列表中的相应前缀信息进行比较, 根据比较结果判断是否发生了域间前缀劫持;所述的集中式管理端注册所述自治系统中的采集监测探针的信息,维 护所述采集监测探针的状态,根据所述釆集监测探针的请求反馈其他自治 系统的采集监测探针的信息,并公告域间前缀劫持信息。本发明还提供了 一种域间前缀劫持检测与定位方法,用于包含有多个 自治系统的网络系统中;所述自治系统包括采集监测探针,所述釆集监测 探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;所 述网络系统还包括对所述采集监测探针进行管理的集中式管理端;该方法 包括步骤1 )、第 一 自治系统中的第 一采集监测探针经由所述第 一 自治系统 的BGP边界路由器接收网络中的BGP路由更新报文;步骤2 )、所述第 一采集监测探针从外部自治系统发送到所述第 一 自治 系统的BGP路由更新报文中提取前缀信息,并将所述前缀信息按照其所 来自的自治系统进行分类;步骤3)、所述第一采集监测探针取出某一类前缀信息,根据该类前缀信息所对应的第二自治系统的编号从所述集中式管理端取出所述第二自治系统的第二采集监测探针的IP地址;步骤4)、所述第一采集监测探针根据所述IP地址与所述第二采集监 测探针建立连接,并将所述前缀信息与保存在所述第二采集监测探针的网 络前缀信息列表中的相应前缀信息进行比较,根据比较结果判断所述第二 自治系统是否发生了域间前缀劫持。上述技术方案中,还包括步骤5 )、所述第一采集监测探针从所述第一 自治系统发送到外部自治 系统的BGP路由更新报文中提取前缀信息,并根据所述前缀信息修改所 述第 一采集监测探针上的网络前缀信息列表。上述技术方案中,在所述的步骤4)后,还包括步骤6)、在发生域间前缀劫持后,所述第二采集监测探针向所述第一 采集监测探针返回不合法的前缀信息,并向管理员和所述集中式管理端发 送前缀劫持告警信息。上述技术方案中,在所述的步骤6)后,还包括步骤7 )、所述集中式管理端定时向各自治系统上的采集监测探针发送 全网络系统范围内的前缀劫持分布状况。上述技术方案中,所述网络前缀信息列表中的前缀信息通过手动方式 或自动方式获取。上述技术方案中,所述采集监测探针在启用前,先在所述集中式管理 端上注册,将自身的IP地址以及所在自治系统的编号存储在所述集中式 管理端中。上述技术方案中,在所述的步骤2)中,采用队列将分类后的前缀信 息按照类别分别加以存储。 本发明的优点在于1、 本发明的域间前缀劫持检测与定位方法具有实时性强、准确性高 的优点。2、 本发明的域间前缀劫持^r测与定位方法实现机理简单,部署及运 营均很简便。


图1为互联网拓朴示意图;图2为可使用本发明方法的网络系统的示意图; 图3为本发明的域间前缀劫持检测与定位方法的流程图 图面说明1 第一边界路由器3 第一自治系统5 第二边界路由器7 第二自治系统9 第三采集监测探针2 第一采集监测探针4 集中式管理端6 第二采集监测探针8 第三边界路由器10 第三自治系统具体实施方式
下面结合附图和具体实施方式
对本发明加以详细说明。在描述本发明方法的实现过程之前,首先对能够实现本发明方法的网 络系统的组成加以说明。图2为能够实现本发明方法的网络系统的结构图, 在图2所示的实例中可以看出,整个网络系统除了包括第一自治系统3、 第二自治系统7、第三自治系统IO夕卜,在每个自治系统内部署了至少一个 采集监测探针,如第一自治系统3中的第一采集监测探针2、第二自治系 统7中的第二采集监测探针6、第三自治系统10中的第三采集监测探针9。 所述采集监测探针用于获取本自治系统所拥有的前缀信息以及本自治系 统编号,并根据这些信息构成本自治系统网络前缀信息列表。此外,釆集 监测探针还可以;险查外部通告的前缀更新信息,识别是否存在域间前缀劫 持。在网络系统中,还包括有独立于自治系统的集中式管理端4,所述集 中式管理端用于所述采集监测探针的注册、釆集监测探针状态的维护、前 缀劫持信息的公告、采集监测探针IP地址的解析查询、历史前缀劫持信 息的存储等。所述的采集监测探针和集中式管理端在部署时应当保证其所 在平台具有固定的公网IP地址。此外,所述采集监测探针还应当与所在 自治系统中的边界路由器建立邻接关系,从而能够实时采集BGP更新报 文信息。虽然在图2所示的实例中,只给出了 3个自治系统的情况,但本 领域的普通技术人员都应当了解,上述实例只为说明之用,在实际应用中, 网络系统中所含自治系统的数量可以有多个。上述网络系统能够检测与定位发生在网络系统中的域间前缀劫持,参 考图3,其具体实现过程如下。各个自治系统内的采集监测探针在工作初始都要创建本自治系统的8网络前缀信息列表。所述网络前缀信息列表包括本自治系统所拥有的前缀 信息以及本自治系统的编号。以图2中第一自治系统3中的第一采集监测探针2为例,该采集监测探针所创建的网络前缀信息列表包括第 一 自治系统的编号以及第 一 自治系统中所有前缀信息。所述网络前缀信息列表中所含信息的获取可以有两种方式,即手动方 式和自动方式。所谓的手动方式是指自治系统的管理员通过有关的配置接 口,将所述的前缀信息、自治系统编号信息部署到采集监测探针中。而所 谓的自动方式是指自治系统管理员授权采集监测探针可以访问边界路由 器的路由表,采集检测探针根据该权限从边界路由器的路由表中自动分 析、获取本自治系统的前缀信息和编号。在一个实施例中,采用上述两种 方式的任意一种即可。出于减少管理员工作量的目的,可以将其中的自动 方式作为优选实现方式。各个自治系统内的采集监测探针在工作初始阶段除了要创建网络前 缀信息列表外,还要向所述的集中式管理端注册。在注册时,采集监测探针采用HTTP协议向集中式管理端发出一条注册命令,该命令包括<注册 请求、所属自治系统编号、探针IP地址〉。集中式管理端收到这一注册命 令后,存储该命令中所包含的信息,然后为该釆集监测探针分配一个用于 标识不同釆集监测探针的全局编号,并返回一条形式为<注册成功、全局 编号>的消息。釆集监测探针在收到集中式管理端所返回的用于表示成功 注册的消息后,存储所述消息中所包含的全局编号,另外还要将内部配置 文件中用于表示是否注册成功的标识位的状态修改为true,以表示该采集 监测探针已经成功注册。采集监测探针在启动后, 一般都会通过HTTP协 议向集中式管理端发送一条更新信息,该信息包括<全局编号、所属自治 系统编号、探针IP地址〉。集中式管理端收到该更新信息后,会回应一条 表示更新完毕的OK字符串。采集监测探针在完成上述的注册、创建网络前缀信息列表等工作后, 就可以与所在自治系统中的BGP边界路由器建立对等关系会话,被动地 采集、记录网络中的BGP路由更新报文。采集监测探针会根据所收到的BGP路由更新报文的类型做分类处理。 在本发明中,基于BGP路由更新报文的来源可以将报文分为两大类,第 一类是采集监测探针所在自治系统的边界路由器向外部的自治系统所发 送的BGP路由更新报文,第二类是采集监测探针所在自治系统的边界路由器接收到的其他自治系统所发送的BGP路由更新报文。对于第一类报 文的处理较为简单,由于路由更新报文中对前缀信息的处理只包括添加和 撤销两种,因此,采集监测探针提取BGP路由更新报文中的前缀信息, 并根据所提取的信息在网络前缀信息列表中添加或撤销相应信息。与第一类报文相比,对第二类报文的处理较为复杂。当采集监测探针 收到由外部自治系统发送到采集监测探针所在自治系统的边界路由器的 BGP路由更新报文后,提取这些更新报文中的前缀信息,然后将所有前缀 信息按照自治系统编号进行分类,形成一个待检查的前缀劫持队列,该队 列中的每一个条目具有相同的自治系统编号。所述的自治系统编号反映了 BGP路由更新报文的来源。由于来源于 一个自治系统的前缀信息可能有多 个,因此, 一个条目通常是多个前缀信息的集合。在本实施例中,采用队 列的形式对前缀信息进行分类存储,但本领域的普通技术人员应当理解, 还可以采用现有技术中的其他数据结构对前缀信息进行分类存储。在生成前缀劫持队列后,就可以对该队列中的所有条目依次进行处 理。下面以第一自治系统3的第一采集监测探针2为例,对该探针处理前 缀劫持队列中的条目的过程进行说明。假设第 一 自治系统3的第 一采集监 测探针2从自身的前缀劫持队列取出一条目后,提取该条目中所包含的自 治系统编号信息。所述自治系统编号信息反映了该条目所对应的BGP路 由更新报文来自于哪一个自治系统。假设该条目中的自治系统编号信息为 第三自治系统10的编号。从背景技术中对域间前缀劫持原理的说明可以 知道,BGP路由更新报文所反映的自治系统来源未必是真实的,因此,需 要与相应自治系统上的釆集监测探针进行核实,即第 一 自治系统3的第一 采集监测探针2要与第三自治系统10的第三采集监测探针9做核实操作。 但对于第一 自治系统的第一采集监测探针2而言,其与第三自治系统的第 三采集监测探针9之间未必具有通信联系,因此,第一自治系统的第一采 集监测探针2首先需要向所述的集中式管理端4请求第三自治系统10的 第三采集监测探针的IP地址。为了达到这一目的,第一自治系统的第一 采集监测探针2根据条目中包含的自治系统编号信息(在此实例中即为第 三自治系统的编号信息)生成解析查询命令,并发送到所述集中式管理端 4。所述解析查询命令的命令格式为〈全局编号、目标自治系统号〉,其中 的全局编号为发送这一解析查询命令的采集监测探针的全局编号(在此实 例中即为第 一 自治系统的第 一采集监测探针2的全局编号);目标自治系统号即为条目中所包含的自治系统的编号。由于集中式管理端4包含有整 个网络中所有采集监测探针的注册信息,因此若查询操作成功,则集中式管理端返回所要查找的第三自治系统的第三采集监测探针9的IP地址。 如果查询失败,集中式管理端会4返回有关的错误信息。在得到第三自治系统的第三釆集监测探针9的IP地址后,第 一 自治 系统的第一采集监测探针2就可以向第三自治系统的第三采集监测探针9 的指定侦听端口发起一条TCP连接,并按照内部通信协议规则,发送如下 格式的请求查询报文<前缀信息1、状态、前缀信息2、状态...〉,该报文 记录了第三自治系统的第三采集监测探针9向外宣告的前缀信息以及宣告 的状态,所述状态分为更新或撤消二种。第三自治系统的第三采集监测探针9在收到请求查询报文后,提取报 文中的信息并将其与自身的前缀信息列表中的信息——加以比对。如果比 对结果为全部合法,则返回表示成功的字符串success,并关闭本次连接。 如果存在不合法的前缀,就向第一自治系统的第一采集监测探针2返回存 在问题的前缀信息,如<前缀1、前缀2...>。此外,第三自治系统的第三 采集监测探针9还要向本自治系统的管理员发送告警信息,向集中式管理 端4发出前缀劫持告警信息,并关闭本次连接。在前述的告警信息中都带 有发生域间前缀劫持的自治系统的相关信息,因此可以很容易地对域间前 缀劫持事件定位。为了使得发生网络前缀劫持的有关信息能够及时地通知网络系统中 的各个自治系统,各自治系统上的采集监测探针会在一定的时间间隔内向 集中式管理端发送心跳包,然后在本次交互中接收本时间间隔内的全网络 系统范围内的前缀劫持分布状况。本发明的域间前缀劫持检测与定位方法通过部署在各个自治系统中 的采集监测探针实现路由更新报文中的前缀信息与网络前缀信息列表中 的前缀信息的比较,从而为网络系统提供域间前缀劫持的实时检测与准确 定位。本发明的域间前缀劫持检测与定位方法实现机理简单、部署及运营均 4艮筒便,具有小巧灵活的特点。本发明的域间前缀劫持检测与定位方法不对现有的网络系统做大的 修改,允许网络系统中的各个自治系统采用渐进式的部署方式,有利于在 实际应用中的推广使用。本发明的域间前缀劫持检测与定位方法具有谁部署、谁受益的特点, 当部署者的前缀信息被劫持后,外部的其他自治系统能够通过查询使得部 署者发现劫持现象,有利于调动管理员对部署的积极性。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。 尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理 解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案 的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1、一种网络系统,其特征在于,包括至少两个自治系统,在每个所述自治系统中包括一个采集监测探针,所述网络系统还包括对所述采集监测探针进行管理的集中式管理端;其中,所述的采集监测探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;所述采集监测探针从所接收到的BGP路由更新报文中提取前缀信息,并将所提取的前缀信息发送到其他自治系统的采集监测探针上;所述的采集监测探针还接收其他自治系统上的采集监测探针所发送的前缀信息,并将所述前缀信息与自身的网络前缀信息列表中的相应前缀信息进行比较,根据比较结果判断是否发生了域间前缀劫持;所述的集中式管理端注册所述自治系统中的采集监测探针的信息,维护所述采集监测探针的状态,根据所述采集监测探针的请求反馈其他自治系统的采集监测探针的信息,并公告域间前缀劫持信息。
2、 一种域间前缀劫持检测与定位方法,用于包含有多个自治系统的网络系统中;所述自治系统包括采集监测探针,所述采集监测探针包含有用于存储所在自治系统中的前缀信息的网络前缀信息列表;所述网络系统还包括对所述采集监测探针进行管理的集中式管理端;该方法包括步骤1 )、第 一 自治系统中的第 一釆集监测探针经由所述第 一 自治系统的BGP边界路由器接收网络中的BGP路由更新才艮文;步骤2 )、所述第一采集监测探针从外部自治系统发送到所述第一 自治系统的BGP路由更新报文中提取前缀信息,并将所述前缀信息按照其所来自的自治系统进行分类;步骤3)、所述第一采集监测探针取出某一类前缀信息,根据该类前缀信息所对应的第二自治系统的编号从所述集中式管理端取出所述第二自治系统的第二采集监测探针的IP地址;步骤4)、所述第一采集监测探针根据所述IP地址与所述第二采集监测探针建立连接,并将所述前缀信息与保存在所述第二采集监测探针的网络前缀信息列表中的相应前缀信息进行比较,根据比较结果判断所述第二自治系统是否发生了域间前缀劫持。
3、 根据权利要求2所述的域间前缀劫持检测与定位方法,其特征在于,还包括步骤5 )、所述第一采集监测探针从所述第一 自治系统发送到外部自治系统的BGP路由更新报文中提取前缀信息,并根据所述前缀信息修改所述第 一 采集监测探针上的网络前缀信息列表。
4、 根据权利要求2或3所述的域间前缀劫持检测与定位方法,其特征在于,在所述的步骤4)后,还包括步骤6)、在发生域间前缀劫持后,所述第二采集监测探针向所述第一采集监测探针返回不合法的前缀信息,并向管理员和所述集中式管理端发送前缀劫持告警信息。
5、 根据权利要求4所述的域间前缀劫持检测与定位方法,其特征在于,在所述的步骤6)后,还包括步骤7 )、所述集中式管理端定时向各自治系统上的采集监测探针发送全网络系统范围内的前缀劫持分布状况。
6、 根据权利要求2或3或4或5所述的域间前缀劫持检测与定位方法,其特征在于,所述网络前缀信息列表中的前缀信息通过手动方式或自动方式获取。
7、 根据权利要求2或3或4或5所述的域间前缀劫持^r测与定位方法,其特征在于,所述采集监测探针在启用前,先在所述集中式管理端上注册,将自身的IP地址以及所在自治系统的编号存储在所述集中式管理端中。
8、 根据权利要求2或3或4或5所述的域间前缀劫持一企测与定位方法,其特征在于,在所述的步骤2)中,采用队列将分类后的前缀信息按照类别分别加以存储。
全文摘要
本发明提供一种域间前缀劫持检测与定位方法,该方法包括第一自治系统中的第一采集监测探针经由第一自治系统的BGP边界路由器接收网络中的BGP路由更新报文;第一采集监测探针从外部自治系统发送到第一自治系统的BGP路由更新报文中提取前缀信息,并将前缀信息按照其所来自的自治系统进行分类;第一采集监测探针取出某一类前缀信息,根据该类前缀信息所对应的第二自治系统的编号从集中式管理端取出第二自治系统的第二采集监测探针的IP地址;第一采集监测探针根据IP地址与第二采集监测探针建立连接,并将前缀信息与保存在第二采集监测探针的网络前缀信息列表中的相应前缀信息进行比较,根据比较结果判断第二自治系统是否发生了域间前缀劫持。
文档编号H04L12/26GK101662393SQ20091008979
公开日2010年3月3日 申请日期2009年7月24日 优先权日2009年7月24日
发明者冰 刘, 伟 梁, 毕经平 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1