APP下载

BGP协议防御DDoS攻击的方法浅析

2017-01-09刘金生

网络安全与数据管理 2016年24期
关键词:路由器数据包路由

陈 石,刘金生

(中国联合网络通信有限公司 网络运维部互联网处,北京 100033)

BGP协议防御DDoS攻击的方法浅析

陈 石,刘金生

(中国联合网络通信有限公司 网络运维部互联网处,北京 100033)

BGP (Border Gateway Protocol)协议是Internet中应用最广泛的自治系统间路由协议,它通过面向连接的TCP (Transfer Control Protocol)协议保障路由信息的可靠转发。然而,以DDoS(Distributed Denial of Service)为代表的网络攻击对基于TCP 的应用协议产生了严重的威胁。保护BGP协议较为常见的方法是在网络边缘添加防火墙、流量分析仪等安全设备。从分析BGP邻居的建立过程及DDoS的攻击特点入手,提出一种新的思路,在不增加运营成本的前提下,实现BGP协议对DDoS的防御。

BGP邻居;TCP连接方向;分布式拒绝服务攻击; 互联网服务提供商

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为标准时间间隔对数据流量进行采样,然后分别计算出(源地址、目的地址、目的端口)相同的数据包的集合,得到与以上三元组相同的数据包α随时间变化的序列。当时间间隔很大时计算该序列的自相关系数:

理论上说,所有基于TCP的应用都面临DDoS攻击的威胁,BGP协议自然也不例外。开启了BGP协议的路由器抵御DDoS攻击的常用手段有:在前端增设防火墙或流量过滤与清洗设备,互联地址隐藏(或者直接使用私网地址互联),源地址识别,限制SYN/ICMP流量等。这些方法在实施过程中,要么需要增加新的硬件,提高了运营维护成本;要么需要在全网部署新的路由协议和安全策略,扩展性较差。

3 防御DDoS攻击的新思路

DDoS攻击最常用的手段是同步泛洪(SYN-FLOOD),向攻击目标发起大量的同步连接请求,却不回复ACK,最终耗尽目标服务器的资源。这种攻击方式必须有明确的攻击目标,也就是说攻击是有方向性的。顺着这个思路,如果能够在BGP邻居建立的第一阶段控制住TCP连接的建立方向,就可以有效降低有效连接请求的数量,抑制DDoS对系统的资源占用,达到保护BGP协议的效果。

如图1所示,企业网AS100希望通过ISP(网络服务提供商)将AS200接入互联网。物理层面:边界路由器A与B通过一条物理链路相连;网络层面:A与B使用逻辑接口(环回口)建立BGP邻居进行路由信息交换。

图1 企业接入互联网的典型拓扑

图中ISP为避免受到来自外部的DDoS攻击,在与企业网建立BGP邻居的第一个阶段(即TCP建立阶段),拒绝所有始发于A的外部TCP连接请求,仅允许本地作为发起端。

那么,这样做是否会影响BGP邻居的建立呢?如前所述,在建立BGP邻居的第一个阶段,双方都会发起TCP连接请求,虽然ISP一侧的路由器B拒绝了来自企业网路由器A的TCP建立请求,但始发于B的TCP建立请求并不会受到任何影响。根据TCP的建立机制[4],如果B端的TCP active-delay延时小于A端,在完成三次握手之后,TCP连接就会建立成功;若B端的TCP active-delay延时大于A端,则此次连接建立失败,但TCP两端会重新生成随机的active-delay延时并发出第二次、第三次……连接请求,一旦B端的active-delay延时小于A端,TCP连接就会成功建立,并进入到BGP邻居建立的下一阶段。所以控制TCP的连接方向并不会影响BGP邻居的正常建立。

事实上,不论是否限制TCP的连接方向, BGP邻居建立完成后,同一对BGP邻居之间都只会保存一条TCP链路的连接。

4 控制TCP连接方向具体方法

在实际网络环境中,控制TCP连接方向的方法有三种:

(1)扩展型访问控制列表(EACL: Extended Access Control List)

B端配置实例:

ip access-list 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。

图2 A到B目的地不可达

图3 由B始发的TCP连接建立成功

扩展型访问控制列表具有配置规范、部署灵活、易于维护的特点,但它对通过接口的每一个数据包都要进行拆包检查,当一个EACL中包含的过滤条目较多时会占用大量的CPU资源,甚至会影响设备的转发性能。因此,这种方法并不适用于中低端的路由器设备,建议应用在具有分布式CPU架构的骨干路由器上,例如在电信级的网络环境(ISP)中部署。

(2)连接模式匹配(connection-mode)

连接模式是BGP协议内置的安全策略,针对具体的BGP邻居部署。它分为主动和被动两种模式,如果在B端设置了主动模式,则所有从A始发的TCP连接请求到达B端时均被拒绝,这就相当于关闭了B侧的179端口,实现效果与扩展型访问控制列表类似。需要注意的是:两个BGP邻居的连接模式必须主动与被动匹配,否则TCP连接无法建立。

B端配置实例:neighbor 1.1.1.1 transport connection-mode active

A端配置实例:neighbor 2.2.2.2 transport connection-mode passive

相比EACL的“逢包必检”,本连接模式只针对具体的BGP邻居进行限制,对系统资源的占用要小很多。但在广播型链路或者多宿主的网络环境中,连接模式需要分别对每个邻居开启此功能,部署不够灵活,建议应用在企业网互联或者企业内网Intranet中。

(3)默认路由(default-routing)

为了更好地理解这种方法,把企业网AS100想象成一个末端网络,路由器A是它唯一的出口网关。A通过默认路由指向B,而B则通过一条静态路由指向A。

在BGP邻居建立的第一个阶段,A会收到告警信息:“Active open failed-no 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):50-54.

[3] 孙钦东,张德运,高鹏.基于时间序列分析的分布式拒绝服务攻击检测[J].计算机学报,2005,28(5):767-773

[4] STEWART J. Bgp4: Inter-domain routing in the Internet[M].Boston: Addison Wesley,1998.

Analysis on the method of defending DDoS attack against BGP protocol

Chen Shi1,Liu Jinsheng2

(Network Operation and Maintenance Department Internet Office, China United Telecommunication Company, Beijing 100033, China)

BGP (Border Gateway Protocol) is the most widely used inter-AS(autonomous system) routing protocol in the Internet. It uses the connection-oriented TCP (Transfer Control Protocol) to guarantee the reliable forwarding of the routing information. However, the applications based on TCP are facing a serious threat from network attack such as DDoS (Distributed Denial of Service). In order to protect the security of BGP protocol, the common ways are to add firewall, flow analyzer or other security hardwares at the network edge. In this paper, the author analyzes the establishment process of BGP peers and the characteristics of DDoS attacks, then puts forward a new way of thinking, in the case of no increase in operating costs, achieving the defense of DDoS for BGP protocol.

BGP peers; direction of TCP connection; distributed denial of service; Internet service provider

TP393

A

10.19358/j.issn.1674- 7720.2016.24.002

陈石,刘金生. BGP协议防御DDoS攻击的方法浅析[J].微型机与应用,2016,35(24):5-7.

2016-06-27)

陈石(1974-),通信作者,男,硕士研究生,高级工程师,主要研究方向:互联网管理和维护工作。E-mail:chenshi5@chinaunicom.cn。

刘金生(1973-),男,本科,工程师,主要研究方向:互联网管理和维护工作。

猜你喜欢

路由器数据包路由
买千兆路由器看接口参数
SmartSniff
探究路由与环路的问题
你所不知道的WIFI路由器使用方法?
基于Libpcap的网络数据包捕获器的设计与实现
PRIME和G3-PLC路由机制对比
WSN中基于等高度路由的源位置隐私保护
eNSP在路由交换课程教学改革中的应用
视觉注意的数据包优先级排序策略研究
无线路由器辐射可忽略