Everything

DDOS的前世今生

by Mion, 2022-01-03


引言

分布式拒绝服务攻击(Distributed Denial of Service Attack)由于其具有攻击立竿见影、执行简单,隐蔽性强等特点广泛被攻击者使用,其在不断的治理与打击的情况下仍然保持不断增长的态势,且TB级别的DDoS攻击呈现出常态化的特点。腾讯安全发布的《2021年上半年全球DDoS威胁报告》中指出,DDoS攻击连续4年任然高速增长,100G以上的大流量攻击次数大幅增长,新型UDP反射方法不断被发现与利用。[2]根据最新消息,Microsoft在2021年8月成功抵挡了一次流量峰值高达2.4Tbps的DDoS攻击,此次攻击被认为是目前最大规模的DDoS攻击。在本文将从DDoS的历史与发展、攻击来源分析、常用的攻击技术、治理与防御和对未来的展望等方面对DDoS进行全面剖析。

DDoS的起源与历史

分布式拒绝服务攻击作为长期存在于互联网中的威胁已经拥有25年的历史,其破坏直接有效、防御成本高昂的特点使其不断给世界互联网造成一次又一次巨大的灾难。分布式拒绝服务攻击形成今日这般规模并不是一蹴而就,其发展可以总结为四个阶段:探索期、工具化、武器化、普及化。

在拒绝服务攻击初期发展时称为探索期,在这一阶段发起攻击的多是一些拥有高超计算机技能的“黑客”,目的也仅仅停留在炫技与个人兴趣上。最早的拒绝服务攻击发生在1996年,受害者是当时纽约最大的互联网服务提供商Panix,攻击者使用SYN Flood攻击Panix公司的业务服务器,导致约6000名用户无法收取邮件。这次事件仅仅使用极少的攻击源发起攻击,还不具有分布式的特点,其造成的影响也非常有限。而第一次由僵尸网络发起的分布式拒绝服务攻击则是Trinoo僵尸网络,在这次攻击事件中黑客控制了超过227台僵尸主机对美国明尼苏达大学的服务器进行攻击,且潜在的僵尸主机超过上万台。同时在这一阶段最具有轰动性的一次事件则是“黑手党男孩”,其对雅虎、亚马逊、eBay等公司进行攻击,造成超过约12亿美元的损失,攻击发起者卡尔斯的故事也被编纂成书《黑手党男孩:一个年轻人的黑客肖像》。在这一阶段中,攻击行为基本不会为黑客带来经济上的收益;从受害者的角度来看,往往波及范围巨大且效果轰动,但对于个人和组织来说,攻击造成的影响也仍在可以承受的范围之内。


《黑手党男孩:一个年轻人的黑客肖像》

经过探索期的发展,DDoS攻击逐渐工具化,呈现出有组织攻击的特点。在这一阶段DDoS经常被用于勒索、打击竞争对手和报复。勒索组织对互联网上的盈利企业进行攻击与勒索,要求支付大量赎金;商业公司雇佣黑客对其竞争对手进行长期的DDoS攻击来干扰竞争对手公司的正常运营;不法分子对精确的目标进行打击报复,如2012年持续时间长达一年的“燕子行动”就是伊斯兰极端分子针对美国发起的报复攻击;2013年的Spamhaus事件中黑客使用DNS反射放大技术发起了当时规模最大的DDoS攻击,其峰值攻击流量超过300Gbps。在此阶段黑客成为隐藏在背后金主的武器,遵循利益最大化原则行动。

工具化的进一步演化则形成武器化,在这一阶段DDoS成为政治工具,在网络这一战场上成为一把大杀器。在2007年爱沙尼亚战争与2008年的古鲁吉亚战争中就有着DDoS攻击的身影。2009年美韩政府超过26个网站遭受持续的DDoS攻击。DDoS武器化后就带有了政治意图,成为国际政治竞争中不可忽视的力量。

根据以上规律不难看出DDoS呈现出普及化的必然趋势:多年的发展中DDoS工具越来越高效与易得;摩尔定律揭示计算机性能提示规律的同时也暗含了网络攻击力度的增强;更多暴露在互联网中的节点也成为被黑客利用的对象,在未察觉中参与到一场又一场的攻击活动中。同时黑客行动主义充斥在这一阶段中。2008年的匿名者(Anonymous)对达山基金会的宣战、“阿桑奇复仇行动”(Operation Avenge Assange)、“索尼行动”(OpSony)就是黑客们表达自身立场的事件。

DDoS的起源与互联网的发展有着密不可分的关系,当互联网扩张的速度飞驰时,DDoS的规模也同时在与日俱增。随着技术的发展,DDoS的攻击方式将会不断涌现,且已有的攻击方式也并不会尽数失效。DDoS已经网络世界造成巨大的威胁与损失。

DDoS的攻击来源

DDoS并不是无源的、凭空产生的,一次大型的DDoS攻击往往具有超大规模的攻击源和复杂的控制机制。在DDoS攻击来源中最主要的是僵尸网络与发包机。

僵尸网络

僵尸网络(Botnet)是指一群由被恶意入侵后感染僵尸程序后的僵尸主机组成的庞大结构,一个大型的僵尸网络往往能由超过百万台僵尸主机组成。僵尸网络中的僵尸主机往往由互联网中的各类设备组成,包括但不限于个人电脑、数据中心的服务器、网络骨干中的路由器设备、物联网终端、移动设备等。巨量的僵尸主机接收Botmaster的命令对受害者进行攻击并感染其他设备。


僵尸网络拓扑结构

僵尸网络通常会利用网络设施中的漏洞进行传播,具有极强的传染性与隐蔽性。僵尸网络还具有极强的变异性,某一僵尸网络可能经由黑客的改造形成各种变种,此类变种往往比原僵尸网络具有更强的隐蔽性与传染性。根据启明星辰发布的《网络安全态势报告(2019-2020)》,2019年全球所有被观测到的僵尸网络中,中国占比达到了15.01%,成为受害最严重的地区,并且数量有明显的上升趋势。[3]而通过僵尸网络发起的DDoS往往规模巨大,2016年美国域名解析服务提供商Dyn公司遭到了峰值达到1.1Tbps的DDoS攻击,造成半个美国互联网瘫痪。其流量来源就是由Mirai僵尸网络控制的数以十万计的物联网设备,尤其是暴露在公共网络下的摄像头设备。

僵尸网络离普通用户并不遥远,可能就藏在我们的身边。根据360 Netlab实验室发布的文章,2020年一个超过160万感染设备的僵尸网络Pinkbot就藏在光猫设备中,其超96%的感染设备位于中国并且感染规模还在不断扩张。Cloudflare发布的2021 Q2 DDoS攻击报告中提到其成功阻止了一次17.2 RPS的HTTP洪水,其背后的攻击源则指向Mirai Botnet;并且在2021年六月由Mirai Botnet发起的三层/四层攻击增长了88%,七层攻击增长了9%。[5]可以设想一个巨大的僵尸网络被用于DDoS攻击时将会造成多大的灾难。

发包服务器

发包服务器是指一类被不法商贩出售的用于IP欺骗(IP Address Spoofing)与对外发包的服务器,其通常具有10Gbps以上的互联网带宽接入、高配置与性能、不受投诉影响、允许用于对外攻击等特点。单台发包服务器就已具有极强的破坏力,当其组成一定规模的集群之后威力不亚于僵尸网络。相比于僵尸网络,发包服务器具有极高的性能和带宽接入,其输出的攻击流量更加稳定且可控性也更强,不易受僵尸程序本身会被清除这一特点影响。配合一些反射放大的手段往往能够实现几台或十几台服务器造成0.5Tbps以上的攻击流量。

通常,发包服务器多存在于一些政策较为宽松的地区,如罗马尼亚、荷兰等。不法商贩在整个链条中不是直接的攻击发起者,他们将机房中的机器以出租的形式通过黑市与黑客交易,赚取其中丰厚的利润。还有些商家会在售卖机器的同时配套出售DDoS攻击相关的技术软件,如配套的发包脚本、反射列表、控制平台等。

从目前来看,常见的商业化的DDoS攻击服务往往使用效果更加稳定且流量可控的发包机集群来对目标进行打击。想要解决发包服务器滥用的问题,各国间应当加强沟通与管理,加强对此类不法商贩的监管。

常用的攻击技术

在了解DDoS的常用攻击技术之前首先需要明白拒绝服务攻击(Denial of Service Attack)与分布式拒绝服务攻击(Distributed Denial of Service Attack)的区别于关联。从定义上来说,拒绝服务攻击是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。[4]而分布式拒绝服务攻击(Distributed Denial of Service Attack)则是拒绝服务攻击的一种分布化的形式,其核心在于利用分布式的客户端,向攻击目标发起大量的看似合理的请求来消耗和占用大量资源,达到拒绝服务的目的。分布式拒绝服务攻击的类型主要可以分为三种:占用网络带宽资源、占用系统资源、占用应用资源。

占用带宽资源

此类攻击方式通常发生在网络层(Network-layer)通过发送大量无效数据包来占用攻击目标的网络带宽资源来达到拒绝服务的目的。同时在这类攻击中,分布式反射拒绝服务攻击(Distributed Reflection Denial of Service Attack,下简称反射攻击)更为常见。反射攻击是利用互联网中存在的某种协议设计缺陷或服务漏洞并配合IP欺骗来实现放大攻击流量并隐藏攻击来源的一种分布式拒绝服务攻击方式。其简单原理图如下:


反射攻击

通常攻击源不直接向目标发送数据包,而是利用反射器作为放大跳板来向目标进行攻击。而一种有效的放大攻击方式与以下几个因素有直接关系:

  • 请求报文与回复报文的高不对等性[7]
  • 其利用的协议漏洞在互联网中存在的广泛程度
  • 进行IP欺骗的难易程度

其中,不对等性越强、存在越广泛、越容易进行IP欺骗的攻击方式往往具有更强的破坏力。

以下将简述几种常见且有效的反射放大攻击方式及其原理。

NTP反射放大攻击

NTP反射放大攻击(NTP Amplification Attack, CVE-2013-5211)利用NTP协议中monlist指令请求与回复报文的不对称性进行反射放大攻击。在NTP协议的服务器实现上存在一个monlist接口,允许用户请求与NTP服务器进行同步的最后600个客户端的IP地址。而攻击者发送的monlist指令中的返回IP能够被伪造,造成请求源与回复源不一致导致反射攻击,通常一个monlist请求数据包大小不超过64字节,而回复数据包却能够返回100个482字节的UDP响应数据,在真实环境下其反射放大倍数能够达到556.9倍[4]。

DNS反射放大攻击[9]

DNS反射放大攻击(DNS Amplification Attack)主要是利用 DNS 回复包比请求包大的特点,放大流量,伪造请求包的源 IP 地址为受害者 IP,将应答包的流量引入受害的服务器。攻击者利用在EDNS0中提供的OPT RR字段来生成巨大的DNS响应报文并对来源IP进行伪造实现反射放大的效果,通常一个DNS请求包的大小为60字节左右而经过精心构造的回复数据包的大小能够达到3000字节以上,在真实环境中甚至能够达到179倍的放大效果[4]。以下展示的则是DNS反射放大攻击的原理图。


反射放大攻击

Memcached反射放大攻击

Memcached反射放大攻击(Memcached DDoS Attack)利用部署在公共网络上并且存在Authentication Disable缺陷的Memcached服务器进行反射放大攻击。Memcached服务器在启动时会监听TCP与UDP的11211端口并响应外部请求,若服务器没有配置好授权措施则会造成任何请求都会被响应,又因为监听UDP端口,造成请求来源会被伪造。根据研究,Memecached可以将攻击流量放大50000倍。2018年2月28日代码托管网站GitHub受到有史以来规模最大的DDoS攻击,达到了1.3Tbps的峰值,被利用的攻击方式就是Memcached反射放大。

占用系统资源

首先需要明确的一点是DDoS攻击并不简单的以攻击流量大小来评判其威力,相反某些DDoS攻击方式会通过消耗系统资源的方式来占用系统资源,通常这样的方式并不像反射攻击一样需要非常巨大攻击流量来阻塞目标的带宽,而是使攻击目标的计算资源耗尽来使其无法正常服务。

SYN洪水

SYN洪水(SYN Flood)是一种针对TCP协议的攻击方式,其在TCP连接创建阶段对TCP阶段进行攻击。TCP为保证连接的可靠,会在连接建立时先进行三次握手,而在第一次握手时会由客户端发出SYN指令,SYN洪水则发生在此阶段,也因此得名。在三次握手过程中,服务器会创建并保存TCP连接的信息到一个连接表中,当大量客户端对服务器发起SYN指令但并未及时回复时,服务器的连接表会被快速填满并造成无法响应新的TCP连接。此时攻击者只需要建立大量的TCP连接就可以造成拒绝服务。

SSL洪水

在SSL握手时服务器需要消耗大量的CPU资源进行加解密,并对数据的有效性进行检验。而不论客户端发送的数据是否有效,都需要经过解密后才能够对请求的合法性进行检验,这就造成了发送方与接收方代价不对等。当攻击者在SSL握手与密钥交换时构造大量的请求数据,就可以极大地消耗服务器的CPU资源造成拒绝服务攻击。

占用应用资源

攻击者也可以针对某一应用服务进行攻击,尤其是近些年高速发展的Web服务。应用程序和服务在响应各类请求时会需要消耗网络、计算和存储资源,这就造成了一个应用想要正常服务,就需要各个基础服务均正常,任何一个基础服务的异常都可能会导致应用程序拒绝服务。以下将针对Web服务介绍几种常见的DDoS攻击方式:

HTTP洪水

HTTP洪水(HTTP Flood)是指在某一时间点对某一Web站点发起大量的请求造成网站服务器因为不能承受如此大量的请求造成运行阻塞与宕机。通常HTTP洪水会同时发起大量的请求,目前最大的HTTP洪水就达到了每秒17.2M请求数[5],很显然对于任何现有的单台服务器都无法承受如此大量的请求。同时,攻击者也会针对某些需要大量计算的动态资源发起洪水,以更剧烈地消耗服务器资源。

慢速POST攻击

慢速POST攻击(Slow HTTP POST)攻击利用POST请求中设置巨大的Content-Length头部,使得Web服务器客户端要发送很大的数据,导致服务器持续保持连接准备接收数据,但攻击客户端每次只发送很少量的数据,使该连接一直保持存活,消耗服务器的连接和内存资源。

在以上介绍的攻击类型中,分别有针对网络层与应用层的各种攻击方式,但是在实际的攻击中往往是各种攻击混合来实现1+1>2的效果,这种混合型的攻击方式在真实的攻击事件中更为常见。

DDoS的治理与防御

DDoS治理的三个关键点

通过对常见DDoS攻击方式进行分析,我们可以得到如下几个关键的:僵尸网络、IP地址伪造、反射攻击。

对僵尸网络的治理

僵尸网络是DDoS攻击源的主要组成,其在未爆发之前往往隐藏在互联网的各个角落,在爆发时又抱团而动,发起巨大的攻势。对僵尸网络的治理首先需要发力僵尸网络的检测上,对互联网中的异常流量的监控与分析可以帮助提早发现僵尸网络,而对僵尸程序样本提取后可以通过逆向分析来对僵尸网络进行打击与接管。同时,对于已知的僵尸网络则要针对性发布漏洞补丁,抑制僵尸网络进一步扩大,并对C2主机进行打击与屏蔽。

对IP地址伪造的治理

IP地址伪造是DDoS攻击的又一大特征,通过地址伪造的攻击更难被溯源且会被用于反射放大造成更大的攻击流量。但是对IP地址伪造本身从技术角度上并不难以实现,如CERT Advisory CA-1996-21、RFC 2827、Unicast Reverse Path Forwarding等都对IP伪造提供了检测方案。

对反射攻击的治理

对反射攻击的治理可以从两方面入手:修复已知的反射源与发掘潜在的反射源。对于现有的常见反射源因及时对反射方法进行修复,减少互联网中可被利用的反射源数量。同时建立蜜罐,对互联网上存在利用反射源行为的IP地址进行追踪与溯源并积极打击。对于潜在的未发掘的反射方式,因加强流量检测审计与态势感知,防范于未然。

DDoS攻击的防御手段

目前来说暂时不存在一个针对DDoS攻击完全行之有效的防御方法,但是在DDoS攻击已经发送的情况下可以通过一些技术来缓解DDoS攻击的压力,减少攻击对业务正常运行的影响。以下将介绍部分常用的DDoS缓解方法。

使用CDN与Anycast来稀释DDoS攻击流量

DDoS攻击一大特点就是分布式,一次DDoS攻击的攻击来源非常广泛,当来自各个地区的流量都汇聚到单个节点时往往很快将会被击溃。但是如果能够通过技术手段将来自不同地域的攻击流量进行分散与稀释时,原本以多打少的局面将会变成以多打多,单个节点承担的网络压力将会大大减轻,对于整体来说尽管部分节点异常时也不会影响全局业务的正常运行。而构建这样的集群则可以使用内容分发网络(CDN)与任播(Anycast)技术来分散收到攻击时的流量,达到缓解攻击的目的。

使用流量清洗设备来过滤DDoS攻击流量

流量清洗是指在全部的网络流量中区分出正常流量和恶意流量,并将恶意流量丢弃或阻断,只保证正常流量的通行。通常流量清洗设备会使用IP信誉检查、攻击特征匹配、速度检查与限制、TCP代理和验证、协议完整性验证和客户端真实性验证等技术来鉴别网络流量。同时,可以在网络出入口处部署流量清洗集群来实现更为强大的流量清洗效果。

未来的DDoS攻击

DDoS的APT化与战争化

DDoS作为极其强大攻击武器,其在网络战争中有着举足轻重的地位。在对目标进行广泛打击时,可以造成全局的混乱与瘫痪。在2008年俄罗斯和格鲁吉亚的战争中,格鲁吉亚的媒体网络就遭受DDoS攻击的重创而不得不关闭。而对于更加精确的打击则体现在DDoS攻击的APT(Advanced Persistent Threat,高级持续威胁)化中。首先,DDoS攻击的技术在不断迭代升级,从过去简单的直接攻击到未来越来越复杂庞大的僵尸网络、更加高效的攻击方法和更加智能的攻击工具,DDoS攻击的技术在不断演化与发展。同时,DDoS攻击的时间跨度将会越来越持久,Tb级流量的DDoS攻击将成为常态。今年10月,微软曾宣布其Azure云服务成功拦截一次每秒2.4 Tbps的DDoS攻击,这是有记录以来最大的DDoS攻击。同时Cloudflare第三季度DDoS趋势报告显示,在可侦测的环境下,DDoS攻击比上一季度增长44%。今年8月,Cloudflare刚拦截了一次大体量的DDoS攻击,恶意流量达到创纪录的每秒1720万次(rps),比以前报告的HTTP DDoS攻击量大了三倍。考虑到趋势已然形成,2.5Tbps绝不会是DDoS攻击的巅峰,下一次大流量攻击可能正在路上。最后,DDoS攻击的危害将会更加严重。 从移动互联网的爆发式增长到企业上云、万物互联,现代人们的生活已经与互联网深度绑定,现代社会的平稳运行也逐渐无法离开互联网。但并不是所有服务商都能轻易承担应对DDoS攻击的巨大成本,DDoS攻击成为这些暴露在互联网上的服务的巨大安全隐患。

DDoS与大数据、人工智能

尽管DDoS攻击在不断的变异与进化,变得越来越难以区分、越来越难以提前监测,但大数据与人工智能依然为DDoS的检测与防御提供了可行的方法。使用大数据可以将正常的请求进行建模与分析,当在遭受攻击但还未形成规模时就可以观测到模型特征出现异常,继而快速启动应急程序来迎接即将到来的DDoS攻击;同时可以建立IP信誉系统,对潜在的攻击IP在上层网络中就进行干预拦截,减少其对核心业务的影响。而人工智能技术则可以帮助安全人员在DDoS攻击发起之前就进行干预与阻断。网络服务提供商(ISP)可以在网络入口处来部署人工智能对潜在的僵尸网络主机进行提前干预、云服务商可以建立基于人工智能的态势感知系统,对可能存在攻击可能的来源进行阻断等。

引用与参考

[1] 鲍旭华;洪海;曹志华.破坏之王:DDoS攻击与防范深度剖析 [M].机械工业出版社.2014.

[2] 腾讯安全, 2021年上半年全球DDoS威胁报告 [R/OL], 2021.

[3] 启明星辰, 网络安全态势观察报告(2019-2020)[R/OL],2020.

[4] Wikipedia, Denial-of-service attack, https://en.wikipedia.org/wiki/Denial-of-service_attack.

[5] Cloudflare, Cloudflare thwarts 17.2M rps DDoS attack — the largest ever reported ,https://blog.cloudflare.com/cloudflare-thwarts-17-2m-rps-ddos-attack-the-largest-ever-reported/ .

[6] Arukonda S, Sinha S. The innocent perpetrators: reflectors and reflection attacks[J]. Advanced Computer Science, 2015, 4: 94-98.

[7] Jakub Czyz, Michael Kallitsis, Manaf Gharaibeh, Christos Papadopoulos, Michael Bailey, and Manish Karir. 2014. Taming the 800 Pound Gorilla: The Rise and Decline of NTP DDoS Attacks. In Proceedings of the 2014 Conference on Internet Measurement Conference IMC '14. Association for Computing Machinery, New York, NY, USA, 435–448. DOI:https://doi.org/10.1145/2663716.2663717

[8] support.ntp.org, DRDoS / Amplification Attack using ntpdc monlist command,. 2010-04-24. Retrieved 2014-04-13.

[9] van Rijswijk-Deij, Roland (2014). "DNSSEC and its potential for DDoS attacks". DNSSEC and its potential for DDoS attacks - a comprehensive measurement study. ACM Press. pp. 449–460.doi:10.1145/2663716.2663731. ISBN 9781450332132. S2CID 2094604.

本文为某门课程的结课作业,部分内容已经过时且存在大量错误,内容仅供参考,欢迎友好讨论!

作者: Mion

2024 © Mion'Blog & Theme By xingr