分布式拒绝服务攻击是恶意破坏目标服务器、服务或网络的正常通信量的企图,其方法是用大量Internet通信量淹没目标或其周围的基础设施。DDoS攻击通过利用多个受损的计算机系统作为攻击流量的来源来达到有效性。被利用的机器可以包括计算机和其他网络资源,如物联网设备。从高层来说,DDoS攻击就像堵塞高速公路的交通堵塞,阻止常规交通到达它想要的目的地。
DDoS攻击是怎么工作的?
DDoS攻击要求攻击者获得对在线计算机网络的控制,以便进行攻击。电脑或者其他机器(如物联网设备)被恶意软件感染,每台电脑都变成了僵尸。然后攻击者就可以远程控制这群被称为僵尸网络的机器人。
一旦建立了僵尸网络,攻击者就可以通过远程控制的方法向每个机器人发送更新的指令,从而指导机器人。当僵尸网络攻击受害者的IP地址时,每个机器人都会向目标发送请求,这可能导致目标服务器或网络溢出容量,导致对正常流量的拒绝服务。因为每个机器人都是一个合法的互联网设备,所以很难将攻击流量与正常流量分开。
DDoS攻击的常见类型是什么?
不同的DDoS攻击向量针对不同的网络连接组件。为了了解不同的DDoS攻击是如何工作的,有必要了解网络连接是如何建立的。Internet上的网络连接由许多不同的组件或“层”组成。就像从头开始建造房子一样,模型中的每一步都有不同的目的。OSI模型,如下图所示,是一个概念框架,用来描述网络连接在7个不同的层。
虽然几乎所有的DDoS攻击都涉及用流量淹没目标设备或网络,但攻击可以分为三类。攻击者可能利用一个或多个不同的攻击向量,或基于目标采取的对抗措施的循环攻击向量。
应用层攻击(Application Layer Attacks)
攻击目标:
有时被称为第7层DDoS攻击(参照OSI模型的第7层),这些攻击的目标是耗尽目标的资源。攻击针对的是在服务器上生成并响应HTTP请求交付web页面的层。在客户端执行一个HTTP请求很便宜,而且目标服务器响应起来也很昂贵,因为服务器通常必须加载多个文件并运行数据库查询才能创建web页面。第7层攻击很难防御,因为流量很难标记为恶意的。
应用层攻击实例:
HTTP Flood
这种攻击类似于在web浏览器中一次又一次地在许多不同的计算机上按下refresh——大量的HTTP请求涌向服务器,导致拒绝服务。
这种类型的攻击范围从简单到复杂。更简单的实现可以使用相同范围的攻击IP地址、引用和用户代理访问一个URL。复杂版本可能会使用大量的攻击IP地址,并使用随机的引用器和用户代理来目标随机url。
协议攻击(Protocol Attacks)
攻击目标:
协议攻击(也称为状态耗尽攻击)通过消耗web应用服务器或防火墙和负载均衡器等中间资源的所有可用状态表容量,导致服务中断。协议攻击利用协议栈的第3层和第4层的弱点使目标无法访问。
协议攻击的例子:
SYN Flood
同步洪水类似于供应室的工作人员接收来自商店前面的请求。工作人员接收到请求,然后去获取包,并等待确认,然后再将包带到前面。然后,工作人员在没有确认的情况下得到更多的包请求,直到他们无法携带更多的包,变得不堪重负,请求开始无人应答。
这种攻击利用TCP握手,通过发送大量具有欺骗源IP地址的TCP“初始连接请求”SYN包给目标。目标机器响应每个连接请求,然后等待握手的最后一步,握手永远不会发生,这会耗尽目标的资源。
容量耗尽攻击(Volumetric Attacks)
攻击目标:
这类攻击试图通过消耗目标和大型Internet之间的所有可用带宽来造成拥塞。通过使用一种放大形式或另一种产生大量流量的方式(如僵尸网络的请求)将大量数据发送到目标。
DNS Amplification
DNS扩增就像如果有人打电话给一家餐馆,说“我要一份套餐,请给我回电话,告诉我我的全部订单”,他们给出的回叫电话号码就是目标顾客的号码。只需很少的努力,就会产生长时间的响应。
通过向具有欺骗IP地址(目标的实际IP地址)的开放DNS服务器发出请求,目标IP地址然后从服务器接收响应。攻击者构造请求,使DNS服务器用大量数据响应目标。因此,目标接收攻击者初始查询的放大。
怎么才能减轻DDoS攻击?
减轻DDoS攻击的关键问题是区分攻击和正常通信量。例如,如果一个产品发布让一个公司的网站挤满了热切的客户,那么切断所有的流量就是一个错误。如果该公司突然有一个流量激增的已知不良演员,努力减轻攻击可能是必要的。难点在于区分真正的客户和攻击流量。
在现代互联网中,DDoS流量有多种形式。流量可以在设计上有所不同,从无欺骗的单源攻击到复杂的自适应多矢量攻击。多矢量DDoS攻击使用多种攻击路径,以不同的方式覆盖目标,可能分散在任何一条轨迹上的缓解工作。同时攻击协议栈的多个层,例如DNS放大(目标层3/4)和HTTP洪水(目标层7)是多向量DDoS的一个例子。
减轻多矢量DDoS攻击需要多种策略来对抗不同的轨迹。一般来说,攻击越复杂,流量就越难以从正常的流量中分离出来——攻击者的目标是尽可能地融入其中,使缓解的效率尽可能低。不加区别地减少或限制流量的缓解尝试可能会将好的流量与坏的流量一起抛弃,攻击也可能修改和适应以规避对策。为了克服破坏的复杂尝试,分层的解决方案将带来最大的好处。
黑洞的路由
几乎所有网络管理员都可以使用的一种解决方案是创建一个黑洞路由,并将流量引入该路由。最简单的形式是,当在没有特定限制条件的情况下实现黑洞过滤时,合法的和恶意的网络流量都被路由到空路由或黑洞并从网络中删除。如果一个互联网财产正在经历DDoS攻击,该财产的互联网服务供应商(ISP)可能发送所有的网站流量到一个黑洞作为防御。
速度限制
限制服务器在某个时间窗口内接受的请求数量也是减轻拒绝服务攻击的一种方法。虽然速率限制在减缓web抓取器窃取内容和减轻强制登录尝试方面很有用,但它本身可能不足以有效地处理复杂的DDoS攻击。然而,在有效的DDoS缓解策略中,速率限制是一个有用的组成部分。
Web应用程序防火墙
Web应用程序防火墙(WAF)是一种可以帮助减轻第7层DDoS攻击的工具。通过在Internet和原始服务器之间放置WAF, WAF可以充当反向代理,保护目标服务器免受某些类型的恶意通信。通过基于用于识别DDoS工具的一系列规则过滤请求,第7层的攻击可能会受到阻碍。有效WAF的一个关键价值是能够快速实现自定义规则以响应攻击。
Anycast网络扩散
这种缓解方法使用Anycast网络将攻击流量分散到分布式服务器网络上,直到网络吸收流量为止。就像将湍急的河流引导到单独的较小的通道上一样,这种方法将分布式攻击流量的影响分散到可以管理的地方,分散了任何破坏能力。Anycast网络减轻DDoS攻击的可靠性取决于攻击的大小以及网络的大小和效率。