连接耗尽攻击:
这种攻击方式也许是TCP攻击中,消耗资源最严重的攻击方式。通常黑客发起连接耗尽型的攻击的代价也比前面文章讲的攻击要高的多。
那么让我们先来了解一下,一个TCP连接,将大致占用多少资源,通常服务器又能接受多少的连接的?下面以Linux系统为例,我们做一下简要的分析:
在三次握手完成之后,内核会为每个连接分配相应的结构,保存TCP连接相应的控制信息,接收缓冲和发送缓冲。默认情况下占用大概10K的内存。 通常的连接耗尽攻击会发起10~ 100w的连接,大致占用100M ~ 1G的内存,也许你会觉得很少。但大量的空连接占用的不只是这些,攻击者通常还会建立后立马会fin报文结束连接。每个TCP连接都需要维护状态。不断的发起和断开,系统将不断分配和释放资源,将会大大增加系统的调度负担,同时上层应用也将在建立和断开连接上消耗大量的CPU,造成服务器不可以用。
慢连接攻击:
例如通常的post请求都会在http头部设置content-length字段表明。请求的字节数,服务器应用通常获取到之后,会在连接上持续接收内容直到获取到指定长度的数据。黑客正是利用这个处理过程,比如:连接建立后,发送的http头指定长度content-length:10000,如何每秒发送1字节的数据。这样一样很少的连接就可能造成服务器占用严重,无法提供服务。
发展到今天,慢速攻击也多种多样,其种类可分为以下几种:
Slow headers:Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为