一、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左右。相关的缓解与治理,有兴趣的童鞋可以看看鲍旭华的《破坏之王》,会有不小的启示。

29.极具破坏力的DDoS:浅析其攻击及防御的更多相关文章

  1. 8款极具表现力的jQuery/CSS3网页菜单

    上一篇我向大家分享了7款效果震憾的HTML5应用组件,今天主要来分享一下CSS3网页菜单,因为在一个网站中,菜单起着举足轻重的作用,所以作为WEB开发人员,我们有必要将网站的菜单设计得尽量完美,下面向 ...

  2. DDOS和cc攻击的防御

    DDOS和cc攻击的防御 author:headsen chen    2017-10-21  10:47:39 个人原创,转载请注明作者,否则依法追究法律责任: DDOS攻击形式:黑客挟持多个电脑( ...

  3. DDos、CC攻击与防御

    DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Service)呢? ...

  4. DDoS 攻击与防御:从原理到实践

    本文来自 网易云社区 . 可怕的 DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁. 危害 根据卡巴斯基 2 ...

  5. DDoS 攻击与防御:从原理到实践(下)

    欢迎访问网易云社区,了解更多网易技术产品运营经验. DDoS 攻击与防护实践 DDoS 攻击的实现方式主要有如下两种: 自建 DDoS 平台 现在有开源的 DDoS 平台源代码,只要有足够机器和带宽资 ...

  6. 9款极具创意的HTML5/CSS3进度条动画(免积分下载)

    尊重原创,原文地址:http://www.cnblogs.com/html5tricks/p/3622918.html 免积分打包下载地址:http://download.csdn.net/detai ...

  7. 9款极具创意的HTML5/CSS3进度条动画

    今天我们要分享9款极具创意的HTML5/CSS3进度条动画,这些进度条也许可以帮你增强用户交互和提高用户体验,喜欢的朋友就收藏了吧. 1.HTML5/CSS3图片加载进度条 可切换多主题 今天要分享的 ...

  8. jQuery+css3实现极具创意的罗盘旋转时钟效果源码

    效果 HTML代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  9. 浅谈 DDoS 攻击与防御

    浅谈 DDoS 攻击与防御 原创: iMike 运维之美  什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...

随机推荐

  1. poj 2251 Dungeon Master-搜索进阶-暑假集训

    普及一下知识 s.empty() 如果栈为空返回true,否则返回falses.size() 返回栈中元素的个数s.pop() 删除栈顶元素但不返回其值s.top() 返回栈顶的元素,但不删除该元素s ...

  2. 2.HelloWorld程序

    1.流程图 2./itcast0711/src/main/java/cn/itcast/a_helloworld/HelloWorld.java package cn.itcast.a_hellowo ...

  3. Codeforces 505C Mr. Kitayuta, the Treasure Hunter:dp【考虑可用范围】

    题目链接:http://codeforces.com/problemset/problem/505/C 题意: 有n个宝石,分别在位置p[i].(1 <= n,p[i] <= 30000) ...

  4. C#返回Json,js解析Json,并添加到select标签中

    后台: List<Student> list=GetAll();//id name string json = new JavaScriptSerializer().Serialize(l ...

  5. vue-mixins使用注意事项和高级用法

    因为在项目中 mixins(混合)特性使用频率是很高的 有必要熟练掌握官方文档: mixins 实际项目中 一般都存在 列表(list) 这种很常见的使用场景 话再多都不如上demo file: mi ...

  6. 8 Python 数据类型—元祖

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 创建空元组 tup1 = () 元组中只 ...

  7. hdu-5861 Road(并查集)

    题目链接: Road Time Limit: 12000/6000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Pro ...

  8. numpy.ndarray类型的数组元素输出时,保留小数点后4位

    因为计算结果数组中每个值都是很长的一串小数,看起来比较乱,想格式化一下输出方式. 这是个看起来很简单的问题,但是方法找了很久. 方法也是看起来很简单,用 numpy.set_printoptions( ...

  9. 左右选择框 js插件

    随着项目的进展,测试工程师在更多的浏览器中兼容性测试中,发现有些浏览器不支持option的触发事件,这就造成了先前一篇博文bootstrap 左右框多项选择示例 中左右选择框的失效,于是我就由原先的s ...

  10. 【学习笔记-中国剩余定理】POJ1006 Biorhythms

    Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 139500   Accepted: 44772 Des ...