基于TCP协议的攻击及其防范
技术创新
基于TCP协议的攻击及其防范
广东嘉应学院电子信息工程系刘向文
摘要:本文介绍了TcP协议及其特性,分析了黑客利NTCP协议而产生的攻击,并提供了相应的解决方法.
关键词:TCP:攻击;网络安全
尽管TCP和UDP均使用相同的嘲络层(IP),TCP却向应用层提供
与UDP完全不同的服务.TCP提供一种面向连接的,可靠的字节流服
务.
TcP通过下列方式来提供可靠性:
(1)应用数据被分割成TcP认为最合适发送的数据块,与UDP完
全不同,应用程序产生的数据报长度保持不变.由TCP传递给IP的信息
单位称为报文段或段.
(2)当TCP发出一个段后,它启动一个定时器,等待目的端确认
收到这个报文段,如果不能及时收到—个确认,将重发这个报文段.
(3)当TCP收到发自TCP连接另一端的数据,将发送一个确认.
这个确认不是立即发送,通常将推迟几分之一秒.
(4)TCP将保持它首部和数据的校验和,目的是检测数据在传输
过程中的任何变化,如果收到段的校验和有差错,TCP将丢弃这个报文
段不确认收到次报文段(希望发送端超时重发).
(5)既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数
据.
(6)TCP还能提供流量控制,TCP连接的每一方都有固定大小的
缓冲空间,TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数
据,这将防止较快主机致使较慢主机的缓冲区溢出.
面向连接意味着两个使用TCP的应用在彼此交换数据之前必须建立
—
tcp ip协议的安全隐患个TCP连接.为了建立一条TCP连接:
(1)请求端(通常称为客户)发送一个SYN段指明客户打算连接
的服务器的端口,以及初始序号(ISN,本例中为141553152]).这个
SYN段为报文段1.
(2)服务器发回包含服务器的初始序号的SYN报文段(报文段
2)作为应答,同时,将确认序号设置为客户的ISN]][I1以对客户的
sYN报文段进行确认,一个SYN将占用一个序号
(3)客户必须将确认序号设置为服务器的ISN]J[Il以对服务器的
SYN报文段进行确认(报文段3).
这三个报文段完成连接的建立,这个过程也称为三次握手(ee_ wayhandshake)(如下图).TCP首部中有6个标志比特,它们中的多
个可同时被设置为1.
URG紧急指针有效;ACK确认序号有
"鼍~效;PSH接收方应该尽快将这个报文段交给
…鼎嚣应用层;RST复位连接;SYN同步序号用
…一一
一n
一
来发起—个连接;FIN发端完成任务.
本是可靠的服务,攻击者是怎么利用
TCP进行攻击?而我们又是如何进行防范的呢?正是本文研究的内容. 1基于TCP的攻击原理
11IP欺骗
所谓IP欺骗,是指冒充别人的源地址.这种攻击方式比较复杂,
原因不在于发送假的IP数据包.因为IP协议是无连接的,即使发了数据包,对方也检查不出来源地址是否假的.但是如果上面还有TCP协议, 就比较麻烦了.TCP是面向连接的.根据前面所述知道,会对数据包的
顺序进行检查,如果序列号不正确,则会丢弃数据包:
IP欺骗通常由下面儿个步骤完成:
(1)到要攻击的主机A;(2)发现和它有关的被信任主机B;
(3)利用某种攻击方法使B瘫痪:(4)对A的序列号进行取样:(5)
猜测新的可能的序列号;(6)用这个序列号进行尝试连接;(7)如果
连接成功,则执行下一个命令,留下—个后门.
这个过程说起来容易,猜测A的序列号是比较复杂的,而且不易成
功.另外IP欺骗可以实施的环境并不是很多.
1.2SYN洪流
SYN洪流的攻击种拒绝服务型攻击,首先攻击者向服务器发送
众多的带有虚假地址的请求,服务器不会在每次接收到sYN请求就立刻同客户端建立连接,而是为连接请求分配内存空fuJ,建立会话,并放在
一
个等待队列中.如果等待队列已经满了,服务器就不再给新的连接分
配任何东西,直接丢弃新的请求,这就是服务器拒绝服务了.
攻击原理:设计一个程序,设置假的TCP头,能够不断发送SYN给服务器请求连接,服务器发送一个应答ACK报文段并等待客户端发回一
个ACK报文段,由于地址是伪造的,所以服务器一直等不到客户端
传的ACK,但都已经建立了缓冲区,分配给这次请求的资源就始终没
有被释放.这种连接就叫半开连接.当服务器等待一定的时I'uJ后,连接会因超时而被切断,攻击者会再度传送新一批SYN请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽,正常的连接就没有办法建立了.
2防范
IP欺骗可以实施的环境并不是很多,所以下面主要就SYN洪流进
行防范.常见的防范技术有SYN—cookie技术和地址状态监控.本文通过另外几个方面来防范SYN洪流.
21TCP截取
TCP截取是一种流量过滤的安全特性,TCP截取只适合于流量.
通过配置可使服务器受到攻击时,如果未完成连接超过了lloo个
(默认值),或到达的连接数每分钟超过11oo个,则每个新到达的连接
会使最早的部分连接被删除,同时,初始的重传超时值减少一半,达到()5秒,因此尝试建立连接的总次数被减掉一半.缺省情况下,删除最
早申请的部分连接,也可以配置成随机册4除连接.
2.1.1设置TCP拦截的工作模式.TCP拦截的工作模式分为截取
和监视.在截取模式下,路由器审核所有的TCP连接,自身的负担加
重,所以我们一般让路由器工作在监视模式,监视TCP连接的时间和数目,超出预定值则关闭连接.
格式:lptcpinterceptmode(interceptlwatch)
缺省为intercept
2,12设置访问表,以开启需要保护的主机.格式:occess—list [100—199]【denylpermit]tcpsourcesource—wildcard destinationdestination-wildcard
如要保护202.118.1O0.99这台主机
access—list1Olpermittcpanyhost202118.10099
2.1.3开启TCP截取.iptcpinterceptlistaccess-list-numher
假设我们有两台服务器202118.10099和202118,100.100需要进行
保护,可以这样配置:
iptcpinterceptlist101
iptcpinterceptmodewatch
ipaccess-list101perrmttcpanyhost202.118.1O0.99
lpaccess—list101perrmttcpanyhost202118100.100
经过这样的配置后,这两台主机就能在一定程度上受到了保护.
TCP截取被启动后,缺省地执行截取模式.在截取模式下,软件主
动截取从客户到服务器上,与指定列表相匹配的TCPSYN包.对每个SYN,软件代理服务器响应ACK和SYN,并等待客户对SYN的ACK响应.如果接收到了ACK,则原来的SYN被发送到服务器,并且软件充
当第三方与服务器进行握手通信,然后将两个连接结合起来.
22限制TCP数据包流量速率
可以通过限制TCP流量来防范TCP洪流攻击.使用CAR(Control AccessRate)限制TCP数据包流量速率.由于篇幅所限,详细可参阅本
人另一篇文章《基于ICMP协议的攻击及其防范>,可以采用该文类似的方法进行TCP数据包流量速率限制.
23DNS负载均衡
DNS负载均衡技术是在DNs服务器中为同一个主机名配置多个
IP地址,在应答DNS查询时,DNS/J~务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均
衡的目的.
当一台服务器在受~OSYN洪流攻击后迅速更换自己的地址,攻
击者不断攻击的只是一个空的IP地址.而网管只要在很短的时间内恢复用户通过域名进行的正常访问.基于DNs解析的负载均衡能将用户的请求分配到不同的IP的服务器上,被攻击的可能永远只是其中的一台服务器.当然对方也可以不断进行DNSi~求来打破这种策略.这样会增加攻
击成本和容易暴露身份.
24服务器上设置
Windows2000操作系统可以通过设置动态bacldoq(dynamic
backlo9)~增大系统所能容纳的最大半连接数,在注册表的位置是: HKLM,SYstem,CurrentContro1Set,Services,AFD,Parameters EnableDynomicBacldo9值为l时,表示启用动态backlo~3,可以修改最大半连接数
MinimumDynamicBacklo0:表示半连接队列为单个TCP端口分配
的最小空闲连接数,当该TCP端口在backlo~队列的空闲连接小于此临.
科技2005年第6
校园网视频点播服务器的构建和应用
南京信息职业技术学院程立平
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论