拒绝服务攻击 1.Dos拒绝服务攻击,在网络出口堵死,拥塞排队进出,只要流量足够大就会瘫痪,用很多的流量来访问你 2.Doos 分布式拒绝服务攻击,同时有很多人 3.icmp重定向:路由器检测主机的路线 4.icmp不可达 5.缓冲区溢出攻击 Web攻击,防火墙waf web应用防护 哈希算法,检测完整性
原理: tcp连接的三次握手过程中,例如a想与b建立tcp连接,三次握手分别是: 1.a发送syn给b 2.b发送syn和ack给a 3.a发送ack给b。 对于b,每当收到来自a的syn,b都要分配一段内存,存放ip地址,端口号,序列号,时间戳等信息。如果a发送大量的syn请求,b就会不断的分配内存,结果会是:b的内存耗尽,无法相应服务请求,或是队列被填满,无法响应新来的合法的请求。无论是那种情况,结果都是拒绝服务。 1、 攻击者向目标计算机发送一个TCP SYN报文; 2、 目标计算机收到这个报文后,建立TCP连接控制结构(TCB),并回应一个ACK,等待发起者的回应; 3、 而发起者则不向目标计算机回应ACK报文,这样导致目标计算机一致处于等待状态。 可以看出,目标计算机如果接收到大量的TCP SYN报文,而没有收到发起者的第三次ACK回应,会一直等待,处于这样尴尬状态的半连接如果很多,则会把目标计算机的资源(TCB控制结构,TCB,一般情况下是有限的)耗尽,而不能响应正常的TCP连接请求。
表现: 服务器收到大量syn请求,并且该请求均无下文。 解决方法大体可以分为三类: 1.根据syn请求包的逻辑来判断syn请求是否合法,例如syn重传 2.修改主机操作系统相关参数,提高操作系统对syn_flood的防御能力,例如缩短syn_timeout时间,减小重发次数,增加队列容量 3.syn_cookie和syn_proxy 1.syn_cookie将需要储存在内存中的信息,通过一个hash函数,计算出一个cookie值,作为序列号,发送给对方,在收到syn后并不立即分配内存,而是等到收到ack,并验证后在分配内存,一定程度上解决了syn_flood攻击的问题(解决的问题是:收到syn不再立即分配内存了)。但是,使用syn_cookie,提高了cpu的计算压力(在于收到syn要计算cookie值,收到ack后要验证),实质上是一种用cpu计算资源换取内存空间的方案。并且,使得主机对于ack_flood攻击更加敏感。 2.syn_proxy是一种,将对于主机的tcp_flood攻击转嫁到syn_proxy上的方案
|