网站上线后,后期维护是相当重要的,在这个工程中我们最该注意的就是网站安全。很对企业的网站都是非常不安全的,要是站被攻击了该如何办呢?下面我就举出几个常见的网络攻击方式以及个人的处理建议。
* syn flood:
一个用户向服务器发送syn报文后,如果服务器在发出sys+ack报文后无法收到客户端ack报文,这种情况下服务器端一般会重试(再次发送syn+ack给客户端),并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为syn timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分)。
一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量的模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行syn+ack的重试。
防御原理:默认情况下,系统会对新客户的访问进行syn代理,直到客户端与抗拒绝设备建立TCP连接成功,抗拒绝设备才会再代理客户端与防护主机进行TCP连接,后续通信则不再代理。
* ACK flood:
1、端系统对ACK报文的处理
端系统在收到一个ACK报文时,如果目的端口未开放,那么端系统会直接向源IP发送RST报文。如果端系统的相关端口是对外开放的,那么其在收到ACK报文时,首先会检查这个ACK报文是否属于TCP连接表中的一个已有连接(这个过程会对端系统主机CPU资源造成一定的消耗),如果是的话,则正常处理,如果不属于任何一个已有连接,那么端系统会向源IP发送RST报文。
2、中间系统对ACK flood报文的处理
路由器:只根据网络层信息(目的IP、源IP等),因此路由器在处理ACK报文的时候,其并不关系它是不是ACK报文,它主要关心其目的地址。如果ACK flood攻击的目的主机是固定的,那么路由器其实只需要在收到第一个ACK flood攻击报文时,调用CPU资源实现路由和转发,后续的ACK flood国内国际报文由于目的主机是固定的,其甚至不需要调用CPU资源,直接使用快速转发表就可实现对ACK flood报文的转发。
防火墙:对ACK报文是否属于连接状态表中的已有连接,如果是,防火墙转发该ACK报文,如果未命中任何一个已有连接,防火墙会将该ACK报文丢弃。
防御原理:跟踪IP的TCP会话,形成一个连接跟踪表,TCP连接建立好之后,对后续的ACK报文,查找连接跟踪表,匹配相应的TCP会话流,如果没有匹配,就是异常的或之前没有连接的ACK报文。这种报文达到出发参数,就会进入ACK flood防御模式,此时抗拒绝设备只放行正确的ACK,比如,设置阀值10000报文/秒。
* UDP flood攻击:
利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。攻击者发送大量的伪造源IP地址的小UDP包,因为是无连接性的协议,所以只要开了一个UDP的端口提供相关服务的话,那么就可以针对相关的服务进行攻击。
防御原理:当防御主机每秒收到的UDP报文达到设置阀值时,则进入UDP flood防御状态,此时抗拒绝设备会丢弃所有后续对防护主机IP的UDP报文,除非此UDP端口在规则或者UDP端口中设置了放行,设置阀值,比如1000报文/秒。
UDP端口防护中可以针对相应的端口进行防护设置。
a、开放端口:选择后开放此端口,如果不选择,则关闭此端口;
b、同步连接:选择此项后,此端口建立UDP连接时,必须已经存在TCP连接,否则拒绝连接;
c、延迟提交:主要针对DNS,抗拒绝系统会延时回应客户端的查询;
d、验证TTL:检测UDP包中的TTL值,如果某个数值的TTL频率过高,则进行屏蔽。
* DNS Query flood:
向被攻击的服务器发送大量的域名解析请求,攻击者所请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击者的DNS服务器就需要进行频繁的字符串匹配,由于在本地无法查到对应的结果,服务器必须使用递归查询向上层域名服务器提交解析请求,引起连锁反应,从而给DNS服务器带来更大的负载。
防御原理:
1、强制开启插件
2、自动开启
3、延时提交、验证TTL
* ICMP flood:
DDOS攻击的一种,通过向目标发送大量的大包,windows可以发送包最大是65500,Linux是65007。
防御原理:设置阀值,比如100报文/秒
* frag flood:
链路层MTU限制了数据帧的最大长度,不同网络类型都有一个上限值。以太网MTU是1500,可以用netstat -i命令查看。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就会对数据包进行分片,使每一片长度小于或等于MTU。
IP首部有两个字节表示数据包的大小,所以IP数据包最长只能为0xFFFF,就是65535字节。如果发送总长度超过65535字节的IP碎片,一些老的系统内核在处理的时候就会出现问题,导致崩溃或拒绝服务。如果分片之间偏移量经过精心构造,一些系统就无法处理。
防御原理:设置阀值,比如100报文/秒
* 连接型攻击:
使用大量的傀儡机,频繁的连接服务器,形成虚假的客户请求,耗尽服务器资源,使其拒绝服务。常见攻击:CC攻击、HTTP攻击、Get flood攻击、游戏假人攻击等。
HTTP攻击:http get flood、http post flood,get和post只是服务器接受查询的方式不同而已,单客户机攻击危害不大,但是利用大量代理或者肉鸡来攻击,就会造成服务器资源耗尽,就是CC攻击。
防御原理:web plugin
总结,以上是个人的一些经验和观点,这几种应该是我们常见的网络攻击方式,总体而言,仍然是安全问题,所以建议大家一定要有安全意识,并且不要贪便宜,一定要选择一个有实力和规模的空间服务商。