陈石,刘金生
(中国联合网络通信有限公司 网络运维部互联网处,北京 100033)
摘要:BGP (Border Gateway Protocol)协议是Internet中应用最广泛的自治系统间路由协议,它通过面向连接的TCP (Transfer Control Protocol)协议保障路由信息的可靠转发。然而,以DDoS(Distributed Denial of Service)为代表的网络攻击对基于TCP 的应用协议产生了严重的威胁。保护BGP协议较为常见的方法是在网络边缘添加防火墙、流量分析仪等安全设备。从分析BGP邻居的建立过程及DDoS的攻击特点入手,提出一种新的思路,在不增加运营成本的前提下,实现BGP协议对DDoS的防御。
关键词:BGP邻居;TCP连接方向;分布式拒绝服务攻击; 互联网服务提供商
中图分类号:TP393文献标识码:ADOI: 10.19358/j.issn.16747720.2016.24.002
引用格式:陈石,刘金生. BGP协议防御DDoS攻击的方法浅析[J].微型机与应用,2016,35(24):5-7.
0引言
根据中国联通公众互联网CHINA169的统计,截至2016年5月,Internet上自治系统间路由条目数已经达到62万条,如此庞大的数据信息都是依赖于路由协议进行计算和转发,而以分布式拒绝服务攻击(Distributed Denial of Service,DDoS)为代表的网络攻击却对路由协议的安全产生了严重的威胁。本文提出一种基于TCP连接方向的方法对抗DDoS攻击。
1基于TCP的边界网关协议
Internet是由众多相互联在一起的自治系统(Autonomous System,AS)组成的,而负责传递AS之间网络层可达性信息(Network Layer Reachability Information, NLRI)的协议称为BGP(Border Gateway Protocol)。为了确保NLRI的可靠转发,BGP使用TCP协议作为它的下层承载协议。
TCP[1] (Transfer Control Protocol)是开放系统互联(Open System Interconnect, OSI)参考模型中唯一面向连接的传输层协议,它使用“三次握手”机制建立面向连接的虚电路,每一条TCP连接都被通信链路的两个端点(IP地址:端口号)唯一确定:TCP连接={(IP1:port1),(IP2:port2)}。BGP对应的port值(端口号)为179。BGP协议在进行路由信息的交换与转发前,需要建立邻居(PEER)关系,BGP建立邻居的过程可以分为两个阶段。
阶段一: TCP通道的建立。这个阶段的主要任务是在希望建立BGP邻居的路由器之间搭建起一条数据通道。TCP的 “按序重传”和“滑动窗口”机制能够确保BGP承载的路由信息在互联网中可靠地传输,而不必进行周期性的全部泛洪。
阶段二:BGP报文的协商。在这个阶段,将要建立BGP邻居的两台路由器利用TCP的数据通道,使用OPEN报文以单播方式进行能力协商(包括版本号、保持时间、BGP标识、可选参数等),决定最终是否能够成功建立BGP邻居关系。
2防御DDoS攻击的常用方法
DDoS[2]攻击是互联网上常见的攻击手段,黑客借助客户/服务器技术,将多个计算机联合起来作为攻击平台,对目标发动持续性攻击,耗尽目的主机资源,最终使正常的用户请求得不到应答。评估DDoS的攻击强度,可以采用“中间网络检测法[3]”数学模型:首先在核心路由器上以Δt为标准时间间隔对数据流量进行采样,然后分别计算出(源地址、目的地址、目的端口)相同的数据包的集合,得到与以上三元组相同的数据包α随时间变化的序列。当时间间隔很大时计算该序列的自相关系数:
βk=[∑N=ki=1(ai-)(ai+k-)]/[∑Ni=1(ai-)2]
其中:αi(i=1,2,…,k)为k个Δt时间内α的序列;为α的数学期望;βk为自相关系数。如果自相关系数不为0,则说明发生了DDoS攻击,偏离值越高,说明遭到的攻击强度越大,以此判断是否需要在核心路由器上部署分布式的DDoS防御系统。
理论上说,所有基于TCP的应用都面临DDoS攻击的威胁,BGP协议自然也不例外。开启了BGP协议的路由器抵御DDoS攻击的常用手段有:在前端增设防火墙或流量过滤与清洗设备,互联地址隐藏(或者直接使用私网地址互联),源地址识别,限制SYN/ICMP流量等。这些方法在实施过程中,要么需要增加新的硬件,提高了运营维护成本;要么需要在全网部署新的路由协议和安全策略,扩展性较差。
3防御DDoS攻击的新思路
DDoS攻击最常用的手段是同步泛洪(SYNFLOOD),向攻击目标发起大量的同步连接请求,却不回复ACK,最终耗尽目标服务器的资源。这种攻击方式必须有明确的攻击目标,也就是说攻击是有方向性的。顺着这个思路,如果能够在BGP邻居建立的第一阶段控制住TCP连接的建立方向,就可以有效降低有效连接请求的数量,抑制DDoS对系统的资源占用,达到保护BGP协议的效果。
如图1所示,企业网AS100希望通过ISP(网络服务提供商)将AS200接入互联网。物理层面:边界路由器A与B通过一条物理链路相连;网络层面:A与B使用逻辑接口(环回口)建立BGP邻居进行路由信息交换。
图中ISP为避免受到来自外部的DDoS攻击,在与企业网建立BGP邻居的第一个阶段(即TCP建立阶段),拒绝所有始发于A的外部TCP连接请求,仅允许本地作为发起端。
那么,这样做是否会影响BGP邻居的建立呢?如前所述,在建立BGP邻居的第一个阶段,双方都会发起TCP连接请求,虽然ISP一侧的路由器B拒绝了来自企业网路由器A的TCP建立请求,但始发于B的TCP建立请求并不会受到任何影响。根据TCP的建立机制[4],如果B端的TCP activedelay延时小于A端,在完成三次握手之后,TCP连接就会建立成功;若B端的TCP activedelay延时大于A端,则此次连接建立失败,但TCP两端会重新生成随机的activedelay延时并发出第二次、第三次……连接请求,一旦B端的activedelay延时小于A端,TCP连接就会成功建立,并进入到BGP邻居建立的下一阶段。所以控制TCP的连接方向并不会影响BGP邻居的正常建立。
事实上,不论是否限制TCP的连接方向, BGP邻居建立完成后,同一对BGP邻居之间都只会保存一条TCP链路的连接。
4控制TCP连接方向具体方法
在实际网络环境中,控制TCP连接方向的方法有三种:
(1)扩展型访问控制列表(EACL: Extended Access Control List)
B端配置实例:
ip accesslist extended 100
deny tcp any any eq bgp
permit ip any any
扩展的访问控制列表可以针对TCP协议的各种应用(端口号)进行数据包的过滤,图1中,在B端的互联接口入向应用本策略,可以拒绝所有向B端BGP端口发起的TCP连接,而对B端出向的TCP连接不做任何限制。
在A端打开debug信息,可以看到从A端始发的TCP连接请求被拒绝(图2)。最终建立的TCP连接一定是B的随机高端口访问A的179端口(图3),即该连接始发于B。
扩展型访问控制列表具有配置规范、部署灵活、易于维护的特点,但它对通过接口的每一个数据包都要进行拆包检查,当一个EACL中包含的过滤条目较多时会占用大量的CPU资源,甚至会影响设备的转发性能。因此,这种方法并不适用于中低端的路由器设备,建议应用在具有分布式CPU架构的骨干路由器上,例如在电信级的网络环境(ISP)中部署。
(2)连接模式匹配(connectionmode)
连接模式是BGP协议内置的安全策略,针对具体的BGP邻居部署。它分为主动和被动两种模式,如果在B端设置了主动模式,则所有从A始发的TCP连接请求到达B端时均被拒绝,这就相当于关闭了B侧的179端口,实现效果与扩展型访问控制列表类似。需要注意的是:两个BGP邻居的连接模式必须主动与被动匹配,否则TCP连接无法建立。
B端配置实例:neighbor 1.1.1.1 transport connectionmode active
A端配置实例:neighbor 2.2.2.2 transport connectionmode passive
相比EACL的“逢包必检”,本连接模式只针对具体的BGP邻居进行限制,对系统资源的占用要小很多。但在广播型链路或者多宿主的网络环境中,连接模式需要分别对每个邻居开启此功能,部署不够灵活,建议应用在企业网互联或者企业内网Intranet中。
(3)默认路由(defaultrouting)
为了更好地理解这种方法,把企业网AS100想象成一个末端网络,路由器A是它唯一的出口网关。A通过默认路由指向B,而B则通过一条静态路由指向A。
在BGP邻居建立的第一个阶段,A会收到告警信息:“Active open failedno route to peer”(即始发TCP连接失败,没有到达邻居的路由),最终建立成功的TCP连接始发于B端。如此看来,使用默认路由同样可以控制TCP连接方向。
这里需要搞清楚一个问题:A明明有一条指向B的默认路由,为什么会收到无路由的告警呢?这是因为默认路由有一个隐含的防环机制:它不能主动发起TCP连接请求;但对于接收到的TCP连接请求,默认路由可以被动地响应,按照三次握手流程返回seq和ack值,完成TCP建立。所以当一端使用了默认路由时,最终完成的TCP连接一定始发于配置默认路由的另一端。
在实际网络环境中,ISP往往没有能力监控从接入端指向自己的是否为一条默认路由。因此,依靠对端的配置来抵御DDoS的攻击还是有一定风险的。相对于生产网络,这种方法更适用于教学或实验的网络环境。
5结论
与增加防火墙等硬件设备相比,通过控制TCP连接的方向来防御DDoS攻击,可以不受网络拓扑结构的限制,除了部署灵活以外,还能够避免增加新的故障点,降低了运营成本,不失为BGP应用的一种新的探索与尝试。
参考文献
[1] STEVENS W R. TCP/TP详解卷1:协议[M].北京:机械工业出版社,2016.
[2] 李锋.粒子群BP神经网络在DDoS攻击检测中的应用[J].微型机与应用,2014,33(3):5054.
[3] 孙钦东,张德运,高鹏.基于时间序列分析的分布式拒绝服务攻击检测[J].计算机学报,2005,28(5):767773
[4] STEWART J. Bgp4: Interdomain routing in the Internet[M].Boston: Addison Wesley,1998.