电脑知识网
办公软件教程        
电脑故障维修          
电脑病毒安全          
电脑上网指南          
电脑应用技巧          
电脑基础知识          
零度电脑首页          

SYN攻击原理以及防范技术(2)

    

二、SYN攻击原理

  SYN攻击属于攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害器、等,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从上图可看到,接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

  三、SYN攻击工具

  SYN攻击实现起来非常的简单,上有大量现成的SYN攻击工具。

  1、windows系统下的SYN工具

  以synkill.exe为例,运行工具,选择随机的源地址和源端囗,并填写目标机器地址和TCP端囗,激活运行,很快就会发现目标系统运行缓慢。如果攻击效果不明显,可能是目标机器并未开启所填写的TCP端囗或者防火墙拒绝访问该端囗,此时可选择允许访问的TCP端囗,通常,windows系统开放tcp139端囗,系统开放tcp7、21、23等端囗。

  四、检测SYN攻击

  检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击:

  # netstat -n -p TCP
  tcp 0  0 10.11.11.11:23  124.173.152.8:25882  SYN_RECV -
  tcp 0  0 10.11.11.11:23  236.15.133.204:2577  SYN_RECV -
  tcp 0  0 10.11.11.11:23  127.160.6.129:51748  SYN_RECV -
  tcp 0  0 10.11.11.11:23  222.220.13.25:47393  SYN_RECV -
  tcp 0  0 10.11.11.11:23  212.200.204.182:60427 SYN_RECV -
  tcp 0  0 10.11.11.11:23  232.115.18.38:278   SYN_RECV -
  tcp 0  0 10.11.11.11:23  239.116.95.96:5122  SYN_RECV -
  tcp 0  0 10.11.11.11:23  236.219.139.207:49162 SYN_RECV -
  ...

  上面是在系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态),源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。

  我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数:

  #netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
  324?

  显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。