看了ChinaITalb做的一个SYN flood(流行的DOS和DDOS方式)的视频教学录像,用的命令好像是“SYN XXX.XXX.XXX.XXX 1 XXX.XXX.XXX.XXX ???”,第一个IP是一个不能访问的IP,第二个IP是要对之进行攻击的IP,问号是一个三位数,具体数值忘了。XP的“命令提示符”不能运行SYN命令,估计这是个外部程序。
原理倒挺简单,主要是利用了TCP的“三次握手机制”,三次握手很好理解,比如A、B两台计算机,A要和B连接,就先跟B打个招呼(发一个SYN报文)看看B在不在,B在的话就告诉A说我在(返回SYN+ACK报文),然后A再告诉B说我也在(也返回一个ACK报文),至此A和B才能连接。
在这个过程中,如果A使坏,在和B打招呼的时候,不断给B发送一个不存在的IP,这样,B就会不断的和那个不存在的IP交换数据,从而浪费大量CPU资源,导致计算机运行缓慢(假死机)。
两个比较简单的防范办法是:
1、缩短SYN Timeout的时间;
2、设置SYN Cookie。判断ip,如果短时间内大量非法ip连接,则认为是恶意ip,不再试图与之连接。
不过这两个办法只能对付比较原始的SYN Flood攻击,如果对方攻击频率很高或者不断更换IP地址,这个办法就不管用了。要深入研究这个,建议读一下《SYN Flood攻击的基本原理及防御》,刚在百度搜索到这篇文章,发现是2001年写的,现在不知道这个技术发展到什么样子了。
呵呵,我太落后了。
SYN=Synchronize=同步
ACK=Acknowledgement=确认