基于GNS3的BGP前缀劫持的场景仿真实验

2019-04-08 02:32
绍兴文理学院学报(教育版) 2019年1期
关键词:通告路由器路由

俞 海

(绍兴文理学院 计算机科学与工程系,浙江 绍兴 312000)

边界网关协议(Border Gateway Protocol,BGP)是互联网事实上的域间路由标准协议。然而,由于BGP协议存在安全缺陷,很容易受到前缀劫持、路径伪造和路由泄露等异常路由通告攻击,从而破坏互联网的网络可达性。近年来出现的多起BGP前缀劫持事件,如YouTube劫持事件、AS7007事件和AS3561事件更是造成了大规模的网络故障[1]。因此,安全BGP对于整个互联网的可靠稳定运行具有重要意义[2]。BGP相关内容在计算机网络理论和实践课程教学中逐渐增加[3-6],但是BGP安全的实验内容较少,多以BGP安全事件案例的形式展示给学生,原因在于BGP安全实验往往涉及较多路由器,一般高校无法承受实验的高成本,而有些BGP仿真软件适用于研究目的,对于一般高校特别是应用型高校的学生而言,则过于繁琐复杂[7]。

本文通过GNS3仿真软件设计了BGP前缀劫持场景仿真实验,验证了BGP前缀劫持实验结果,该设计方案使学生更好地理解BGP前缀劫持的原理及配置过程,为应用型高校的计算机网络安全实践教学提供借鉴经验。

一、BGP前缀劫持原理

攻击者可以通过伪造网络层可达信息NLRI(Network Layer Reachability Information)和AS_PATH路径来达到实施前缀劫持的目的[8]。

(一)伪造NLRI信息中的前缀

恶意的AS伪造NLRI信息,向外通告一个非法的前缀,如图1(a)所示,AS1是前缀204.204.10.0/24的合法拥有者,它向外通告到达该段网址的路由,在图1(b)中,AS5恶意伪造NLRI也向外通告到达204.204.10.0/24的路由,根据BGP选取最短AS_PATH路径的原则,AS4将优先选取经AS5到204.204.10.0/24的路径。

图1(a) AS1正常通告合法的前缀信息

图1(b) AS5通告伪造的前缀信息

(二)伪造NLRI信息中的前缀长度

如图2所示,如果攻击者AS5不但伪造NLRI中的前缀,而且修改成一个更长的前缀长度204.204.10.0/30,那么依据BGP的最长匹配原则,所有其他的AS将选择该伪造路径。

图2 AS5通告伪造的前缀及长度信息

(三)伪造NLRI信息和AS_PATH路径

如图3所示,AS5伪造前缀204.204.10.0/24,并将AS_PATH修改为{5 1},此时AS4将收到两条到达204.204.10.0/24的AS_PATH路径{3 2 1)和{5 1},依据BGP最短路径原则优先选择经AS5到达204.204.10.0/24。这样,AS4中目的地为204.204.10.0/24的流量原本应该路由到AS1中,却被劫持到了AS5中。

图3 AS5通告伪造的前缀及AS_PATH信息

二、仿真实验设计与实现

以BGP伪造前缀长度为例,设计并实现BGP前缀劫持的场景仿真实验。

(一)实验目标

理解外部网关协议BGP前缀劫持的基本原理,掌握利用GNS3仿真软件进行BGP前缀长度劫持的配置方法。

(二)实验方案规划

首先规划3个AS自治系统区域,编号分别为:AS100、AS101、AS102,自治系统AS100包括2台路由器(R1、R3)和1台host虚拟机PC1,自治系统AS101包括2台路由器(R2、R4)和1台host虚拟机PC2,自治系统AS102包括2台路由器(R5、R6)和1台host虚拟机PC3,其中路由器R1、路由器R2、路由器R5作为边界网关路由器连接AS100、AS101、AS102这3个自治系统区域,在GNS3[9]仿真软件中搭建如图4所示的网络结构,其中路由器R1~R6的型号均为c3640,加载的IOS文件为:c3640-jsx-mz.124-25d.bin。

自治系统AS100与自治系统AS101作为正常通信的区域,自治系统AS102用来劫持从自治系统AS100发往自治系统AS101的网络数据。

实验设备IP地址的规划如表1所示。

图4 BGP前缀长度劫持实验拓扑图

表1 各设备端口IP地址分配表

设备名称端口IP地址子网掩码路由器R1s0/0172.16.200.1255.255.255.252s0/110.2.2.1255.255.255.252s0/2172.16.201.1255.255.255.252路由器R2s0/0172.16.200.2255.255.255.252s0/110.1.1.1255.255.255.252s0/2172.16.202.1255.255.255.252路由器R3s0/110.2.2.2255.255.255.252e1/0203.203.10.254255.255.255.0路由器R4s0/110.1.1.2255.255.255.252e1/0204.204.10.254255.255.255.0路由器R5s0/0172.16.201.2255.255.255.252s0/1172.16.202.2255.255.255.252s0/210.3.3.1255.255.255.252路由器R6s0/010.3.3.2255.255.255.252e1/0204.204.10.254255.255.255.0

(三)实验步骤

首先配置自治系统区域AS100和自治系统区域AS101内的路由器R1、路由器R2、路由器R3和路由器R4,使2个自治系统区域AS100和自治系统区域AS101可以正常通信,主要配置步骤如下:

1.路由器R1的配置

R1(config)#interface s0/0

R1(config-if)#ip address 172.16.200.1 255.255.255.252

R1(config-if)#no shutdown

R1(config)#interface s0/1

R1(config-if)#ip address 10.2.2.1 255.255.255.252

R1(config-if)#no shutdown

R1(config)#interface s0/2

R1(config-if)#ip address 172.16.201.1 255.255.255.252

R1(config-if)#no shutdown

R1(config)#router bgp 100 //启动BGP进程

R1(config-router)#network 172.16.200.0 mask 255.255.255.252

//将本AS内的网络172.16.200.0注入BGP网络路由

R1(config-router)#network 10.2.2.0 mask 255.255.255.252

R1(config-router)#network 172.16.201.0 mask 255.255.255.252

R1(config-router)#neighbor 10.2.2.2 remote-as 100 //指定邻居

R1(config-router)#neighbor 172.16.200.2 remote-as 101

R1(config-router)#neighbor 172.16.201.2 remote-as 102

2.路由器R2的配置

R2(config)#interface s0/0

R2(config-if)#ip address 172.16.200.2 255.255.255.252

R2(config-if)#no shutdown

R2(config)#interface s0/1

R2(config-if)#ip address 10.1.1.1 255.255.255.252

R2(config-if)#no shutdown

R2(config)#interface s0/2

R2(config-if)#ip address 172.16.202.1 255.255.255.252

R2(config-if)#no shutdown

R2(config)#router bgp 101

R2(config-router)#network 172.16.200.0 mask 255.255.255.252

R2(config-router)#network 10.1.1.0 mask 255.255.255.252

R2(config-router)#network 172.16.201.0 mask 255.255.255.252

R2(config-router)#neighbor 10.1.1.2 remote-as 101

R2(config-router)#neighbor 172.16.200.1 remote-as 100

R2(config-router)#neighbor 172.16.202.2 remote-as 102

3.路由器R3的配置

R3(config)#interface s0/1

R3(config-if)#ip address 10.2.2.2 255.255.255.252

R3(config-if)#no shutdown

R3(config)#interface e1/0

R3(config-if)#ip address 203.203.10.254 255.255.255.0

R3(config-if)#no shutdown

R3(config)#router bgp 100

R3(config-router)#network 10.2.2.0 mask 255.255.255.252

R3(config-router)#network 203.203.10.0 mask 255.255.255.0

R3(config-router)#neighbor 10.2.2.1 remote-as 100

4.路由器R4的配置

R4(config)#interface s0/1

R4(config-if)#ip address 10.1.1.2 255.255.255.252

R4(config-if)#no shutdown

R4(config)#interface s1/0

R4(config-if)#ip address 204.204.10.254 255.255.255.0 //被劫持掩码配置

R4(config-if)#no shutdown

R4(config)#router bgp 101

R4(config-router)#network 10.1.1.0 mask 255.255.255.252

R4(config-router)#network 204.204.10.0 mask 255.255.255.0 //配置被劫持的前缀

经过以上配置步骤,从自治系统区域AS100的路由器R3 ping自治系统区域AS101的路由器R4的e1/0端口204.204.10.254显示:

Sending5,100-byte ICMP Echos to 204.204.10.254,timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5),round-trip min/avg/max=1128/1112/1300ms

从自治系统区域AS100的路由器R3使用traceroute 204.204.10.254路由跟踪命令查看到达自治系统区域AS101的路由器R4的e1/0端口204.204.10.254的路径情况显示如图5所示,从自治系统区域AS100的路由器R3经过路径:路由器R1(10.2.2.1 )→路由器R2(172.16.200.2)→路由器R4(10.1.1.2[AS101])到达AS101的路由器R4的e1/0端口204.204.10.254,表明自治系统区域AS100和自治系统区域AS101通过外部网关协议BGP可以正常通信。

图5 traceroute命令查看路径

此时通过命令show ip bgp查看自治系统AS100的发言人(路由器R1)的BGP信息表,去往204.204.10.0网络的下一跳Next Hop为172.16.200.2,即自治系统AS101的发言人(路由器R2)的端口s0/0,如图6所示。

图6 AS100的发言人(路由器R1)的BGP信息

接下来对自治系统区域AS102的路由器R5和R6进行配置,主要配置步骤如下:

5.路由器R5的配置

R5(config)#interface s0/0

R5(config-if)#ip address 172.16.201.2 255.255.255.252

R5(config-if)#no shutdown

R5(config)#interface s0/1

R5(config-if)#ip address 172.16.202.2 255.255.255.252

R5(config-if)#no shutdown

R5(config)#interface s0/2

R5(config-if)#ip address 10.3.3.1 255.255.255.252

R5(config-if)#no shutdown

R5(config)#router bgp 102

R5(config-router)#network 172.16.201.0 mask 255.255.255.252

R5(config-router)#network 172.16.202.0 mask 255.255.255.252

R5(config-router)#network 10.3.3.0 mask 255.255.255.252

R5(config-router)#neighbor 10.3.3.2 remote-as 102

R5(config-router)#neighbor 172.16.201.1 remote-as 100

R5(config-router)#neighbor 172.16.202.1 remote-as 101

R5(config-router)#network 204.204.10.0 mask 255.255.255.252 //配置更长的前缀长度

6.路由器R6的配置

R6(config)#interface s0/0

R6(config-if)#ip address 10.3.3.2 255.255.255.252

R6(config-if)#no shutdown

R6(config)#interface e1/0

R6(config-if)#ip address 204.204.10.254 255.255.255.252 //长掩码劫持配置

R6(config-if)#no shutdown

R6(config)#router bgp 102

R6(config-router)#network 10.3.3.0 mask 255.255.255.252

R6(config-router)#network 204.204.10.0 mask 255.255.255.252 //配置更长的前缀长度

R6(config-router)#neighbor 10.3.3.1 remote-as 102

(四)实验验证

由于AS102中BGP宣告的路由掩码204.204.10.0/30长于AS101中BGP宣告的路由掩码204.204.10.0/24,从自治系统区域AS100的路由器R3使用traceroute 204.204.10.254路由跟踪命令查看到204.204.10.254的路径情况显示为:

Tracing the route to 204.204.10.254

1 10.2.2.1 388 msec 528 msec 396 msec

2 172.16.201.2 616 msec 856 msec 792 msec

3 10.3.3.2[AS 102] 1020 msec 1128 msec 980 msec

表明从自治系统区域AS100的路由器R3经过路径:路由器R1(10.2.2.1)→路由器R5(172.16.201.2)→路由器R6(10.3.3.2[AS 102])到达AS 102的路由器R6的e1/0端口204.204.10.254/30,而没有去往AS101中的路由器R4的e1/0端口204.204.10.254/24,路径跟踪结果如图7所示,验证了从自治系统AS100路由器R3发往自治系统AS101路由器R4的网络数据被自治系统AS102的路由器R6劫持。

图7 BGP前缀劫持后traceroute命令查看路径

此时通过命令show ip bgp查看自治系统AS100的发言人(路由器R1)的BGP信息表,去往204.204.10.0网络的优化下一跳Next Hop为172.16.201.2,即自治系统AS102的发言人(路由器R5)的端口s0/0,而不再是自治系统AS101的发言人(路由器R2)的端口s0/0,如图8所示,这正是自治系统AS100路由器R3发往自治系统AS101路由器R4的网络数据被自治系统AS102的路由器R6劫持的原因。

图8 BGP前缀劫持后AS100的发言人(路由器R1)的BGP信息

四、结语

通过GNS3仿真软件设计了BGP前缀长度劫持的场景仿真实验,并验证实验结果。该设计方案使学生更好地理解BGP前缀劫持的原理及配置过程,为应用型高校的计算机网络安全实践教学提供借鉴经验。

猜你喜欢
通告路由器路由
买千兆路由器看接口参数
维持生命
国家药监局关于7批次药品不符合规定的通告
路由器每天都要关
路由器每天都要关
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题
取消航行通告(NOTAMC)在航行通告(NOTAM)中的应用