请选择 进入手机版 | 继续访问电脑版
查看: 580|回复: 0

DDoS攻击各种方式介绍与防御手法

[复制链接]

28

主题

29

帖子

172

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
172
发表于 2019-8-29 23:44:30 | 显示全部楼层 |阅读模式

受限于作者水平,请多多包含本文中可能会出现的漏洞和错误
一、什么是DDoS攻击
DDoS(DDoSistributed Denial of Service)分布式拒绝服务攻击,就是让多台计算机联合起来对目标发动拒绝服务攻击。
那么什么又是拒绝服务攻击(DoS)呢?拒绝服务攻击即是攻击者想办法让目标机器停止提供服务的攻击。比如说把对方网页服务搞瘫痪,让对方网站访问不了。
所以DDos攻击,是采用分布式,并以让别人访问不了目标服务器为目的的攻击。可被应用于发泄不满,恶意的竞争等等。
注意,这种做法是不合法的。

二、如何DDoS攻击/DDoS攻击的思路
最简单的方式
控制很多台机器不断访问目标站点,或者不断发送请求,如果访问的流量足够大,把目标站点拖垮了,那么它就拒绝服务了。
显然这种方法不经济不实惠,消耗对方多少带宽,自己就需要多少带宽。这种方法是可行但是太傻以至于通常不会这样做。我们需要的是消耗自己一点资源,就能消耗对方大量资源的方法,伤人先伤己。

最经典的方法——SYN Flood攻击
访问一个网站,我们用的是TCP协议。TCP协议中规定,两台电脑要开始通讯,需要先建立一个连接。连接建立的具体过程是这样的。
1)电脑A想连接电脑B,A向B发送一个SYN信息,即同步信息。B电脑收到后回复一个确认信息ACK。
TCP中每一个数据包都有一个序号,这样接收的时候就知道发出来的先后顺序(因为先发的不一定先到)和有没有数据包漏掉(因为网络原因,有几个包在传输的途中丢了也是很正常的)。SYN包的作用是同步序号,即告诉对方我的下一个包的序号应该是多少。

2)然后同样的。B向A发送一个SYN包,A收到后回复一个ACK包,连接建立完成。
概括一下,就是A发SYN,B发ACK+SYN,A发ACK,连接建立完成。这个过程一般称为“三次握手”。
而SYN Flood攻击就是A发SYN包,B发ACK+SYN,此时A不发ACK而是再发一个SYN,然后不停的发SYN。这会产生大量建立了一半的连接,称为半开连接。
收到一个SYN,就会产生一个半开连接,正常情况下很快又会收到一个ACK,从而建立一个完整的连接。极少时候,一直收不到ACK,超时之后关闭这个半开连接。如果短时间内收到大量SYN而收不到ACK,就会建立很多半开连接,半开连接数如果超过上限,服务器就不会再接受SYN请求了,导致正常用户连不上来。
SYN攻击简单有效。因此大家都喜欢用它。所以服务器对这方面的防御往往会完善一点。同时也有很多现成的软件可以用来防御SYN。同时,要在规定时间内让半开连接数耗尽对网络的带宽还是有一定要求的。

我觉得还不错的方法,TCP全连接攻击。
如果建立半连接无效,我们就只能建立全连接了。TCP全连接攻击的思路是不断建立正常的连接。维持每个连接不让其释放。当连接数积累到很大的时候,服务器就崩了。
往往我们不断制造一些垃圾数据通过连接传输。垃圾数据不需要很大的量,它的目的只是为了避免因为连接长时间没有数据流而被服务器释放。
全连接攻击的优点在于通常不会像半连接一样因为超时而被释放掉。我们可以慢慢建立连接,不用着急。不需要多大带宽。
而服务器方面。需要对每一个连接分配一个线程甚至进程。分配线程的开销是很大的。在投入资源和浪费服务器资源方面,可以说还是很高效了。

个人认为,这种方法是很好防御的。
比如可以检查请求头里面的cookie,看他是不是注册了,登陆了。如果cookie验证不过。就不准它长时间的传输数据。不过因为很多网站开发的构架本身不带有这个功能(似乎?),所以一些劣质网站自然也不会带有这种功能吧。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长统计
快速回复 返回顶部 返回列表