SYN 包(synchronize)
TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
在黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。
SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从上图可看到,服务器接收到连接请求(syn= j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
关于SYN攻击防范技术,人们研究得比较早。归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范.但必须清楚的是,SYN攻击不能完全被阻止,我们所做的是尽可能的减轻SYN攻击的危害,除非将TCP协议重新设计。
TCP首部有6个标志比特。
SYN是其中之一,它是个同步序号,当TCP连接建立时会把SYN置1。
一般请求端会发送一个报文,其中包含这样的字段SYN 1415531521:1415531521(0)。
然后服务端收到后会返回一个ack 1415531522,ack表示确认收到。
SYN,ACK是标志位。
SEQ,AN是数据包序号。
SYN=1, ACK=0, SEQ=200 的意思是:发送的为一个SYN请求,发送端的初始数据包序号为200
SYN=1, ACK=1, SEQ=4800, AN=201 的意思是:接收端的确认信息,且接收端的初始数据包。序号为4800。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)