◆张 可 袁 洋 程绍银 丁彬勇
(1.国家计算机网络应急技术处理协调中心安徽分中心 安徽 230041;2.中国联通安徽省分公司网络运营部 安徽 230071;3.中国科学技术大学网络空间安全学院 安徽 230027;4.中国移动通信集团安徽有限公司网管中心 安徽 230031)
分布式拒绝服务(Distributed Denial of Sevice,DDoS)攻击是当前公共互联网面临最严重的安全威胁之一,分布式反射拒绝服务(Distributed Reflection Denial of Sevice,DRDoS)攻击是拒绝服务攻击的一种变形,相较于传统的基于僵尸网络的DDoS 攻击(如ICMP洪水攻击、UDP洪水攻击),DRDoS攻击不需要在攻击前控制大量的僵尸主机,所有攻击数据包都是由网络中合法的主机服务器发出的,实现和控制过程相对简单,成本较低,且具有放大效果显著、治理追溯困难的特点,给传统的DDoS攻击的防护带来新的挑战[1]。
单播反向路径转发 URPF全称是 Unicast Reverse Path Forwarding,即单播反向路径转发。是一种用来检测伪造源IP地址和阻止源IP地址欺骗攻击的技术。
访问控制列表(Access Control List,ACL)是路由器和交换机等网络设备接口的指令列表,能够限制网络流量和指定转发特定端口数据包。
目前,对于分布式反射拒绝服务攻击缺少有效的处置方法,本文基于基础电信运营商网络环境,结合业务实际,提出了基于URPF和精确ACL的DRDoS协同处置方法,用于DRDoS攻击的防御。实验结果和大规模应用表明,所提方法实现了事前事中事后全过程有效处置DRDoS攻击,保护正常业务不受影响。
本文第1节对反射DDoS攻击原理、特征和类型进行介绍和分析。第2节对反射DDoS攻击研究现状进行介绍和分析。第3节提出基于URPF和ACL的DRDoS协同处置方法。第4节通过仿真实验进行验证。第5节进行总结。
分布式拒绝服务(Distributed Denial of Sevice,DDoS)攻击是指采用分布式的攻击方式,联合或则控制网络上能够发动拒绝服务攻击的若干主机同时发动攻击,制造数以百万计的分组流入准备攻击的目标,致使流向目标的服务请求极度拥塞,而造成目标无法提供正常的网络服务[2]。
根据攻击路径不同,可将DDoS攻击划分为直接DDoS攻击和反射DDoS攻击。分布式反射拒绝服务(Distributed Reflection Denial of Sevice,DRDoS)攻击是指利用路由器、服务器等设施对请求产生应答,从而反射攻击流量并隐藏攻击来源的一种分布式拒绝服务攻击技术[3]。
直接DDoS攻击主要是攻击者、主僵尸机和从僵尸机三部分组成。与直接DDoS攻击相比,DRDoS攻击在从僵尸机和受害者之间增加了反射点部分,攻击者不是通过僵尸机直接向受害者发送大量的攻击报文,而是向网络中提供服务的主机发送请求报文,伪造请求数据包的源 IP地址信息,利用那些提供服务的主机(任何具有回应能力的计算机)作为反射点,向受害者发送响应包[4]。
在进行反射攻击时,攻击者使用受控主机发送大量的数据包,这些数据包的特别处在于,其目的 IP地址指向作为反射器的服务器、路由器等设施,而源IP地址则被伪造成被攻击目标的IP地址。反射器在收到数据包时,会认为该数据包是由被攻击目标所发出的请求,因此会将响应数据发送给被攻击目标。当大量的响应数据包涌向攻击目标时,就会耗尽目标的网络带宽资源,造成拒绝服务攻击[3]。如图1所示。
图1 DRDoS的攻击原理
执行反射攻击,需要具备四个因素。
(1)一个服务器:用于执行IP地址欺骗;
(2)一个脆弱的、易于反射/放大的协议:任何设计不完善的、基于UDP请求的协议都可能被利用;
(3)反射服务器列表:支持脆弱协议的服务器;
(4)一个目标IP地址:受害者的IP地址。
攻击过程如图2所示。
图2 DRDoS的攻击过程
发动攻击时,主控端以欲攻击的主机的 IP 地址为源地址,从构造的反弹IP列表中循环选择目的地址,从而形成TCP-SYN包[5]。
根据 CNCERT 抽样监测数据[6],2018年以来利用反射服务器发起的三类重点反射攻击共涉及19,708,130台反射服务器,其中境内反射服务器 16,549,970台,境外反射服务器 3,158,160台。被利用发起 Memcached反射攻击的反射服务器有232,282台,占比1.2%,其中境内187,247台,境外45,035台;被利用发起NTP反射攻击的反射服务器有3,200,200台,占比 16.2%,其中境内2,040,066台,境外1,160,134台;被利用发起SSDP反射攻击的反射服务器有16,275,648台,占比 82.6%,其中境内 14,322,657 台,境外 1,952,991台。
(1)基于Memcached的反射攻击
Memcached是一个高性能的开源分布式内存对象缓存系统,主要用于提高Web应用的扩展性。Memcached反射攻击利用了Memcached服务(一种分布式缓存系统)存在的认证设计缺陷,攻击者通过向在公网上暴露的memcached服务器IP地址(默认11211端口)发送伪造受害者 IP地址的特定 UDP数据包,使memcached服务器向受害者IP地址返回比请求数据包大数倍的数据,从而进行反射攻击[5]。
(2)基于NTP的反射攻击
NTP是Network Time Protocol(网络时间协议)的简称,是互联网中时间同步的标准之一。
NTP反射攻击利用了 NTP(一种通过互联网服务于计算机时钟同步的协议)服务器存在的协议脆弱性,攻击者通过向NTP服务器的默认123端口发送伪造受害者 IP 地址的 Monlist指令数据包,使 NTP 服务器向受害者 IP 地址反射返回比原始数据包大数倍的数据,从而进行反射攻击[6]。
(3)基于SSDP的反射攻击
SSDP(Simple Service Discovery Protocol),简单服务发现协议,是应用层协议,是构成 UPnP(通用即插即用)技术的核心协议之一。利用SSDP协议进行反射攻击的原理与利用NTP服务类似,都是伪造成被攻击者的 IP地址向互联网上大量的智能设备默认1900端口发起SSDP请求,接收到请求的设备根据源IP地址将响应数据包返回给受害者。
从上面的分析可以得知,DRDoS攻击是一种特殊的DDoS攻击方式,它不需要在实际攻击前控制大量傀儡机,而是巧妙地利用暴露在公共互联网上的大量反射服务器作为跳板来将洪水数据包反弹给目标IP地址。虽然目前对于DRDoS攻击的研究已有不少,但是在实际应用场景中对此类攻击的检测与防御效果不够理想,因此针对DRDoS攻击的防护处置研究成为一个重要的课题[7]。
近年来,研究者们已经提出了很多的防御措施[7-13]。2014年,德国波鸿大学的一篇研究报告对14种UDP协议进行了实验性研究[8],认为这些协议存在实施反射攻击的可能,并对攻击的危害程度进行了对比分析。李刚等[9]讨论了被利用进行 DRDoS的协议漏洞,并就这些协议的攻击防范在主机服务设置方面提供了参考意见。刘克胜等[10]提出对DDoS攻击的防护分为三种情况:对DDoS攻击的检测、对DDoS攻击的追踪处理、对主机和服务器加强监控和安全策略。何雪妮[11]提出一种改进的 DRDoS检测算法,该算法能够针对性地检测到利用特定网络服务产生的DRDoS攻击流量,但这种方法通过网络中请求包与回应包的比例异常来发现攻击,检测行为发生在攻击流量被反射后,防御反应比较滞后。WangHaining等[12]提出了一个轻量级的可以粗略进行DDOS防御的防御模型——HCF(hop count filter)。这种方法基于请求包的异常行为进行检测,在训练完全的情况下能够以较低的系统开销过滤掉大部分的DRDoS攻击,但是无法有效消除在与受害主机相似的网络拓扑位置上发起的攻击。翟瑞等[13]结合IPv6网络特点实现动态过滤,引入域内攻击测试服务器对数据包源地址进行验证,实现有效识别伪造源地址的数据包。张明清等[7]基于协同防御思想,提出一种DRDoS协同防御模型——HCFAST(hop count filtering-attack source tracing)。该模型把DRDoS检测和过滤设备部署在网关,通过协同式自学习过程,实现设备间DRDoS防御知识的共享,并引入入侵追踪技术,弥补防火墙单独防御的不足。
目前大多数研究者多是从检测或者防御单一角度去研究DRDoS攻击处置,从现有的技术角度说,对于DRDoS攻击还缺少有效的综合处置方法。本文提出基于URPF和ACL的DRDoS协同处置方法,该方法充分考虑到基础电信运营商的业务运行特点,在不影响到正常业务开展的基础上,达到对DRDoS攻击的有效治理。
根据工作实践,综上分析可以发现,对于DRDoS攻击的治理主要集中在以下三个要素:
(1)对僵尸网络进行治理,能够从源头抑制正在进行的DRDoS攻击;
(2)对源IP地址伪造攻击进行治理,能够控制和阻止未来可能发生的一部分DRDoS攻击,并有利于找到攻击源IP地址;
(3)对攻击反射点进行治理,能够控制和缩小DRDoS攻击的规模。
因对僵尸网络的治理主要是由各运营企业对多次参与DRDoS攻击的控制端和肉鸡用户进行及时通报并督促整改,本文研究的主要内容是源IP地址伪造攻击治理和攻击反射点治理,我们提出基于URPF和精确ACL的DRDoS协同处置方法,从源IP地址伪造攻击治理和攻击反射点治理着手,在事前事中事后全过程有效处置DRDoS攻击。
URPF(Unicast Reverse Path Forwarding)即单播反向路径转发,是一种用来检测伪造IP源地址和阻止IP源地址欺骗攻击的技术。该技术比较成熟,在路由器上比较容易实现,实用价值很高。URPF的主要功能是防止基于源地址欺骗的网络攻击行为。URPF检查有严格(strict)型和松散(loose)型两种。此外,还可以支持ACL与缺省路由的检查[14]。
在互联网网络设备上开启松散URPF功能,会对访问数据包检查 IP源地址和源端口是否在路由表中。如果存在,则认为该数据包是通过最优路径到达该路由器,应该正常转发,否则丢弃。如果在路由器上开启严格URPF功能,在路由表中找到访问数据包的IP源地址,进一步获取数据包的IP源地址和输入接口,通过 IP源地址查找到下一跳路由后,将得到的输出接口和输入接口进行比对。如果成功,则认为该数据包合法;否则丢弃该数据包。URPF通过检查IP源地址和源端口来决定是否转发数据包,从源头上有效阻止伪造IP地址流量的发生。
具体分为5个步骤:
(1)检查数据包的IP源地址的合法性。如果IP源地址是广播地址或者目的地址不是广播的全零IP地址,则直接丢弃。
(2)检查路由器的FIB表中能否找到数据包的IP源地址。若找到,则跳转到步骤3;否则,跳转到步骤5。
(3)如果在路由器的FIB表中匹配的是默认路由,检查配置的URPF策略是否允许。如果允许,跳转到步骤4;否则,跳转到步骤5。
(4)检查数据包的输入接口和输出接口是否一致。如果一致,则通过检查;如果不一致,检查是否是松散模式URPF。如果是松散模式URPF,则通过检查;如果不是松散模式URPF(即是严格模式URPF),则不通过检查。
(5)检查用户是否配置了ACL规则,如果配置了ACL规则,检查数据包是否符合ACL规则,如果符合,则通过检查;否则丢弃。
在实际基础电信运营商DDoS防护应用场景中,经常有一种组网结构,即用户端单独构建接入路由器,通过多条链路接入骨干路由器。针对此类用户的接入端口,如果部署严格型URPF策略,会拦截许多出接口与入接口不同的正常报文,造成用户正常通信故障,大部分网络核心路由器厂商均建议开启松散模式URPF。如果部署松散型URPF,会导致部分伪造IP地址流量没有被阻止,攻击者利用这些伪造IP地址会增加DRDoS攻击的深度和广度,给DRDoS攻击的防御和治理带来更大的困难。
ACL(Access Control List),即访问控制列表。这种策略是路由器、交换机等网络设备提供的一种访问控制技术,用来控制端口进出的数据包。系统管理员通过增加/删除ACL策略,将特定端口转发的数据包直接过滤/通过,如允许局域网内的设备只能使用FTP服务访问外部网络,ACL适用于所有的路由协议。
除此之外,通过配置ACL可以限制信息点和内外网络之间的网络流量,只允许特定设备或者特定大小流量的访问,进而保证通信网尤其是内网的安全性。ACL既可以在路由器、交换机等硬件设备上配置,也可以在具有该项功能的业务软件上进行配置。
DRDoS攻击利用的都是一些常见的协议和服务(Memcached、NTP、SSDP等),被攻击者很难将恶意连接请求和正常连接请求区分开,无法有效分离出攻击数据包[15]。用户在收到DRDoS攻击后,也难以及时有效处理。
在实际应用中,在现网部署精确ACL策略,针对不同DRDoS攻击场景,采用限速和精确处置的方法,在防御、检测和响应等方面采取防范措施,以最大限度地减少DDOS攻击带来的危害。
通过对DRDoS的攻击行为进行分析,发现攻击过程中的源地址是不固定的,源端口是固定的;目的地址和目的端口是固定的。为精确处置DDoS反射攻击源,可以通过部署精确ACL策略来解决。具体做法如下:
源IP地址+源端口号+目的地址+目的端口号,以SSDP反射攻击(11211端口)为例,华为交换机配置如下(目的IP地址:1.1.1.1,源IP地址:2.2.2.2,源端口:11211,目的端口:443):
Rule deny udp source 2.2.2.2 0 source-port eq 11211 destination 1.1.1.1 0 destination-port eq 443
//本地源IP地址(IP:2.2.2.2)的11211端口访问目的地址(IP:1.1.1.1)的443端口流量都会被拒绝掉
为了验证所提出的基于URPF技术和精确ACL的DRDoS协同处置方法的有效性,搭建如图3所示的拓扑结构进行仿真实验。因为URPF处置实验国内外相关很多人员已经做过,本文不赘述,仅对限速和精确处置两个场景进行研究。
利用华为ENSP搭建验证环境,若干PC代替攻击端,网内主机(IP地址:58.247.215.101)作为被攻击端,通过攻击端UDP发包工具模拟攻击端(IP地址:58.243.254.130)对被攻击端发送大量UDP 11211报文。实验拓扑及UDP发包工具配置如下:
从监测到的报文可以看出,本地源IP地址58.243.254.130服务端口35931 到目的IP地址58.247.215.101服务端口11211存在活动连接。
对网内使用UDP 11211服务端口的用户,进行流量采样,计算出来自网外UDP 11211的报文流量(本例计算正常UDP 11211报文流量约为20Mbit/s),在入局方向上进行流量限速,策略为单链路流量超过20Mbit/s时,则丢弃超标流量。配置如下:
acl 3000
rule 5 permit udp destination 58.247.215.101 0 destination-port eq 11211
traffic classifier speed_ddos_udp11211 operator or if-match acl 3000
traffic behavior speed_ddos_udp11211
car cir 20000 green pass yellow discard red discard
traffic policy speed_ddos_udp11211
classifier speed_ddos_udp11211 behavior speed_ddos_udp11211
traffic-policy speed_ddos_udp11211 inbound //出局接口in方向应用策略。
图3 实验拓扑结构图
图4 模拟发包
(1)未部署限速前,抓包结果如图5。
图5 未限速场景1
可以看到接口流量统计结果全部为 pass,未丢弃过载报文。
(2)部署限速后,抓包结果如图6。
图6 限速场景1
可以看到接口流量统计结果:过载流量(超过20Mbit/s)报文被丢弃。限速处置方法,在保障正常使用UDP 11211服务的客户同时,当面对异常UDP 11211流量攻击时,限速丢弃了过载流量,避免了下一级链路拥塞,保护了其他正常网络流量。
针对未使用UDP 11211服务端口的用户,在入局方向上,直接对本地源IP地址58.243.254.130服务端口35931到目的IP地址58.247.215.101 服务端口11211的报文流量进行处置(丢弃),配置如下:
acl number 3001
rule 5 deny udp source 58.243.254.130 0 source-port eq 35931 destination 58.247.215.101 0 destination-port eq 11211
//限制源地址58.243.254.130/32(端口35931)访问目的地址58.247.215.101/32 (端口11211)
rule 399 permit ip
traffic classifier ipfilter operator or
if-match acl 3001
#
traffic behavior ipfilter
traffic policy ipfilter
classifier ipfilter behavior ipfilter
traffic-policy ipfilter outbound //出局接口上应用 trafficpolicy
(1)未做加固,抓包结果如图7。
图7 未处置场景2
可以看到本地源IP地址58.243.254.130服务端口35931 到目的IP地址58.247.215.101 服务端口11211的活动连接可以正常建立。
(2)加固后,抓包结果如图8。
图8 处置场景2
可以看到本地源IP地址58.243.254.130服务端口35931到目的 IP地址 58.247.215.101 服务端口 11211的活动连接(MEMACHE)已经不能正常建立。出局报文在接口上被过滤丢弃。以上基于精准ACL防范Memcached攻击的方法,同样适用于防范现网基于UDP的1900端口SSDP攻击和123端口NTP攻击。
通过大规模实际应用发现,基于 URPF和精确 ACL的DRDoS协同处置方法使用效果显著。
本文针对DRDoS攻击原理、攻击类型和攻击研究现状进行分析,提出了基于URPF和精确ACL的DRDoS协同处置方法。该方法立足于实际基础电信运营商的应用场景,利用路由器现有的常用策略,在不影响基础电信运营商正常业务的基础上,创新性地将URPF技术和ACL这两种技术结合,从事前事中事后全过程处置DRDoS攻击,具有一定的现实指导意义。
由于我国基础电信运营商组网结构有差异,目前该方法主要应用于安徽联通的基础网络中,应用场景较少。此外,松散模式URPF及 ACL规则需要在核心路由器上进行数据配置,全网的DRDoS攻击流量也需要人工分析,人工成本较高,影响了互联网管理从低水平粗放管理模式向高水平精准管理模式转型。
在后续的工作中我们将会在以下几个方面做进一步的探索:
(1)深入分析基础电信运营商的网络特点,将该方法应用到更多场景中;
(2)利用人工智能算法自动更新维护更新URPF和ACL策略,自动化监测、分析和判定DRDoS攻击流量的来源并实时处置,增强该方法的准确度和实用性;
(3)对电信运营商基础网络上存在的服务进行优化,互联网上的主机只运行必要的服务,减少受攻击的风险;
(4)促进网络安全主管单位、基础电信运营商和网络设备厂家的协助与合作,建立快速合作处置机制,有效阻止和快速处置DRDoS攻击。