首页 > 代码库 > TCP的syn攻击

TCP的syn攻击

http://blog.csdn.net/jiangzhengdong/article/details/8119223

 

TCB(TCP 传输控制块)是一种包含一个连接所有信息的传输协议数据结构状态的TCP连接项目(半连接队列),和已建立完整连接但仍未由应用程序通过accept()调用提取的项目(已连接队列,所以说三次握手和ACCEPT并无一定的关系)。一个单一的TCB所占内存大小取决于连接中所用的TCP选项和其他一些功能的实现。通常一个TCB至少280字节。TCP的SYN-RECEIVED状态用于指出这个连接仅仅是半开连接,请求是否合法仍被质疑。

这就导致了一个明显潜在的DoS攻击,到达的SYN包将被分配过多的TCB而导致主机的内核内存被耗尽。为了避免这种内存耗尽,操作系统通常给监听接口关联了一个"backlog"队列参数,它同时维护连接的TCB上限数量和SYN-RECEIVED状态。尽管这种方案使主机的可用内存免遭攻击,但是backlog队列本身就带来了一个(小的)受攻击源。当backlog中没有空间时,就不可能再响应新的连接请求

 

直接攻击

如果攻击者用他们自己的没有经过伪装的IP地址快速地发送SYN数据包

他可以简单地发送很多的TCP连接请求来实现这种攻击。然而,这种攻击要想奏效攻击者还必须阻止他的系统响应SYN-ACK包

 

 

欺骗式攻击

SYN洪泛攻击的另一种方式是IP地址欺骗。它比直接攻击方式更复杂一点,攻击者还必须能够用有效的IP和TCP报文头去替换和重新生成原始IP报文

攻击者可以用的一个非常简单的方法,就是仅需伪装一个源IP地址,而这个IP地址将不能响应SYN-ACK包,或许因为这个IP地址上根本就没有主机

TCP的syn攻击