• 29.极具破坏力的DDoS:浅析其攻击及防御


    一、DDoS的概念

    1.什么是“DDoS”?

    DDoS:Distributed Denial of Service(分布式拒绝服务)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃账号将DDoS主控程序安装在一个计算机上,控制大批量的肉鸡发动攻击。

    2.什么是“拒绝服务”攻击?

    可以简单理解为:让一个公开网站无法访问。要达到这个目的的方法也很简单:不断地提出服务请求,让合法用户的请求无法及时处理。

    3.什么是“分布式”?

    随着网络发展,很多大型企业具备较强的服务提供能力,所以应付单个请求的攻击已经不是问题。于是攻击者就组织很多同伙,同时提出服务请求,直到服务无法访问,这就叫“分布式”。但在现实中,一般的攻击者无法组织各地伙伴协同“作战”,所以会使用“僵尸网络”来控制N多计算机进行攻击。

    4.什么是“僵尸网络”?

    僵尸网络是数量庞大的僵尸程序(Bot)通过一定方式组合,出于恶意目的,采用一对多的方式进行控制的大型网络,也可以说是一种复合性攻击方式。因为僵尸主机的数量很大而且分布广泛,所以危害程度和防御难度都很大。

    二、DDoS的攻击方式

    分布式拒绝服务攻击的精髓是:利用分布式的客户端,向目标发起大量看上去合法的请求,消耗或者占用大量资源,从而达到拒绝服务的目的。其主要攻击方法有4种:

    1.攻击带宽

    跟大城市的交通堵塞情况一样,大家都该清楚,当网络数据包的数量达到或者超过上限的时候,会出现网络拥堵、响应缓慢的情况。DDoS就是利用这个原理,发送大量网络数据包,占满被攻击目标的全部带宽,从而造成正常请求失效,达到拒绝服务的目的。

    攻击者可以使用ICMP洪水攻击(即发送大量ICMP相关报文)、或者UDP洪水攻击(即发送用户数据报协议的大包或小包),使用伪造源IP地址方式进行隐匿,并对网络造成拥堵,使服务器响应速度变慢等。

    但是这种直接方式通常依靠受控主机本身的网络性能,所以效果不是很好,还容易被查到攻击源头。于是反射攻击出现,攻击者使用特殊的数据包,也就是IP地址指向作为反射器的服务器,源IP地址被伪造成攻击目标的IP,反射器接收到数据包的时候就会将响应数据发送给被攻击目标,耗尽目标网络的带宽资源。

    2.攻击系统

    创建TCP连接需要客户端与服务器进行三次交互,也就是常说的“三次握手”。这个信息通常被保存在连接表结构中,但是表的大小有限,所以当超过了存储量,服务器就无法创建新的TCP连接了。

    攻击者利用这一点,用受控主机建立大量恶意的TCP连接,占满被攻击目标的连接表,使其无法接受新的TCP连接请求。如果攻击者发送了大量的TCP SYN报文,使服务器在短时间内产生大量的半开连接,连接表也会被很快占满,导致无法建立新的TCP连接,这种SYN洪水攻击的方式是攻击者比较常用的。

    3.攻击应用

    由于DNS和Web服务的广泛性和重要性,这两种服务就成为了消耗应用资源的分布式拒绝服务攻击的主要目标。

    比如向DNS服务器发送大量查询请求,从而达到拒绝服务的效果,如果每一个DNS解析请求所查询的域名都是不同的,那么就能有效避开服务器缓存的解析记录,达到更好的资源消耗效果。当DNS服务的可用性受到威胁,互联网上大量的设备都会受到影响而无法正常使用。

    近些年,Web技术发展非常迅速,如果攻击者利用大量的受控主机不断地向Web服务器恶意发送大量HTTP请求,要求Web服务器处理,就会完全占用服务器资源,让正常用户的Web访问请求得不到处理,导致拒绝服务。一旦Web服务受到这种攻击,就会对其承载的业务造成致命的影响。

    4.混合攻击

    在实际的生活中,攻击者并不关心自己使用的哪种攻击方法管用,只要能够达到目的,一般就会发动其所有的攻击手段,尽其所能地展开攻势。对于被攻击目标来说,需要面对不同的协议、不同资源的分布式拒绝服务攻击,分析、响应和处理的成本就会大大增加。

    随着僵尸网络向着小型化的趋势发展,为降低攻击成本,有效隐藏攻击源,躲避安全设备,保证攻击效果,针对应用层的小流量慢速攻击已逐步发展壮大起来。因此,从另一个角度来说,DDoS攻击目前主要是两个方面:UDP及反射式大流量高速攻击、多协议小流量及慢速攻击。

    三、DDoS的防御

    DDoS攻击只是手段,最终目的是利益。未来网络战争将会出现更加广泛、频繁、精准的攻击,当这些来临的时候,我们应该如何应对?

    1.设置高性能设备

    要使网络设备不成为瓶颈,选择路由器、交换机、硬件防火墙等设备的时候就要尽量选用知名度高、口碑好的产品。若和网络提供商有协议,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。

    2.提高网络带宽

    网络带宽直接决定了抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYN Flood攻击。所以,最好选择100M或者更高的带宽。

    3.不要忘记升级

    在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包;而且最好可以进行优化资源使用,提高web server 的负载能力。

    4.异常流量的清洗

    通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,从而进一步将异常流量禁止过滤。

    5.考虑把网站做成静态页面

    把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,还能给黑客入侵带来不少麻烦。最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站,其80%属于恶意行为。

    6.分布式集群防御

    这是目前网络安全界防御大规模DDoS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址,并且每个节点能承受不低于10G的DDoS攻击。如果一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更深层次的安全防护角度去影响企业的安全执行决策。

    就DDoS防御方面来说,目前主要是两个方面,大流量攻击可以交给运营商及云端清洗,小流量攻击可以在企业本地进行设备防护,这个分界点根据行业及业务特性的不同会有所差异,大概的量级应该在百兆BPS左右。相关的缓解与治理,有兴趣的童鞋可以看看鲍旭华的《破坏之王》,会有不小的启示。

  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/bmjoker/p/9487847.html
Copyright © 2020-2023  润新知