DDoS攻击概念以及防范

Posted by Clear Blog on August 25, 2017

DDoS全称Distributed Denial of Service,即分布式拒绝服务攻击。

用一个很通俗的例子来说明下什么叫DDoS攻击。

3楼卫生间只有五个蹲位,来了五个社会人士把蹲位站了, 他们只是在里面抽烟而不干正事。恰巧,这时候你有内急,进卫生间就在门口等着,一直等, 如果不采取一些措施,你可能就。。。那么你有几种选择:

①叫物业加多几个坑位

②去其他楼层找厕所

③把他们诱骗出来,然后你进去占着坑,他们敲门你就说,A栋3楼还有厕所,让他们去那边, 当然,A栋3楼可能是没有厕所的。

在他们去寻找A栋3楼厕所的时候,叫人在大门口守着,需要让守门的 人知道那几个人是什么样,知道个大概就行,宁愿错杀一千,也不放过一个。

那几个社会人再过来直接 就跟他们说里面已经满了,你们请回吧。美滋滋~

DDoS攻击分为多种。如 SYN flood, UDP flood, HTTP flood, CC攻击

syn flood.

通过肉鸡源发送大量的连接请求给服务端,只发送SYN请求,而不发送ACK请求,那么连接资源就会被占满,真正的请求连接无法 请求。

业内常用的解决方案是用SYN_Cookie,在客户端和服务端之间添加一层防火墙,在客户端发起请求后,经过防火墙代理, 如果客户端能够返回ack报文的时候,再通过代理去发送SYN请求到服务端。

dns flood

dns是基于UDP协议的

先简单介绍下UDP协议,UDP是无连接,不可靠,面向报文。

DNS结构图

CC攻击

利用代理服务器向目标服务器发送大量的需要较长时间计算的合理的http请求,如数据库查询等。 目标服务器会因进行大量的计算而很快达到自身能力瓶颈形成DOS(数据库负载,以及连接池负载都极高)。 攻击者在发送请求给代理后就断开连接,所以消耗比较小。

cc攻击比较难以防御: * ip都是真实的,分散的 * cc攻击的数据包都是正常的 * cc攻击的都是有效的请求,无法拒绝响应

业务上 防CC的办法就是封ip,但是可能会误杀

传统应用层防护原理

浏览器请求

这在浏览器上是个不错的方法方法,但是在客户端如安卓,iOS上可能会对客户端造成一定的误杀。