TCP/IP协议的安全性分析与防范

时间:2022-04-21 09:00:48

TCP/IP协议的安全性分析与防范

TCP/IP协议本身存在的一些安全性问题可以被攻击者用来进行安全攻击,如TCP SYN Flood,IP欺骗等。通过对典型TCP/IP协议的安全性分析,指出了存在的问题以及相关的防范措施。

TCP/IP协议是网络中使用的基本通信协议。虽然从名字上看它包括两个协议:TCP协议和IP协议,但确切的说,TCP/IP实际上是一组协议,除了最常用的TCP和IP协议外,还包含许多其它的工具性协议、管理协议及应用协议。TCP/IP协议共分为4层,即:应用层、传输层、互连网络层、网络接入层。其中,应用层向用户提供访问Internet的一些高层协议,使用最广泛的有TELNET、FTP、SMTP、DNS等。传输层提供应用程序端到端的通信服务,该层有两个协议:TCP和UDP。互连网络层负责相邻主机之间的通信,该层协议主要有IP和ICMP等。网络接口层是TCP/IP协议软件的最低一层,主要负责数据帧的发送和接收。

典型协议安全性分析与防范

TCP协议

协议工作过程

TCP是基于连接的。为了在主机A和B之间传送TCP数据,必须先通过3次握手机制建立一条TCP连接。若A为连接方、B为响应方,则连接建立过程如下:首先,连接方A发送一个包含SYN标志的TCP报文(即同步报文)给B,SYN报文会指明连接方A使用的端口以及TCP连接的初始序号X; 随后,响应方B在收到连接方A的SYN报文后, 返回一个SYN+ACK的报文(其中SYN是自己的初始序号Y,ACK为确认号X+1,表示客户端的请求被接受,正在等待下一个报文)。最后,连接方A也返回一个确认报文ACK(序列号y+1)给响应方B。到此一个TCP连接完成。

TCP协议的安全问题

在连接过程中,可能受到的威胁如下:攻击者监听B方发出的SYN+ACK报文,然后向B方发送RST包。接着发送SYN包,假冒A方发起新的连接。B方响应新连接,并发送连接响应报文SYN+ACK。攻击者再假冒A方对B方发送ACK包。这样攻击者便达到了破坏连接的作用。若攻击者再趁机插入有害数据包,则后果更严重。

例如,在TCP的3次握手中,假设1个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(即第3次握手无法完成),这种情况下服务器端一般会再次发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);1个用户出现异常导致服务器的一个线程等待1分钟并不是什么大问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。服务器端将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,此时从正常客户的角度看来,服务器失去响应,这种情况我们称作服务器端受到了SYN Flood攻击。

防范方法

对于SYN Flood攻击,目前还没有完全有效的方法,但可以从以下几个方面加以防范:

(1)对系统设定相应的内核参数,使得系统强制对超时的SYN请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的SYN请求数据包;

(2)建议在该网段的路由器上做些配置的调整,这些调整包括限制SYN半开数据包的流量和个数;

(3)建议在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效的保护本网段内的服务器不受此类攻击。

IP协议

IP协议的安全问题

IP协议在互连网络之间提供无连接的数据包传输。IP协议根据IP头中的目的地址项来发送IP数据包。也就是说,IP路由IP包时,对IP头中提供的源地址不作任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。这样,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。其中最重要的就是利用IP欺骗引起的各种攻击。

以防火墙为例,一些网络的防火墙只允许网络信任的IP数据包通过。但是由于IP地址不检测IP数据包中的IP源地址是否为放送该包的源主机的真实地址,攻击者可以采用IP源地址欺骗的方法来绕过这种防火墙。另外有一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP源地址欺骗的方法获得特权,从而给被攻击者造成严重的损失。事实上,每一个攻击者都可以利用IP不检验IP头源地址的特点,自己填入伪造的IP地址来进行攻击,使自己不被发现。

防范方法

基于IP欺骗的防范方法有:

(1)抛弃基于地址的信任策略。这是最简单的方法。

(2)进行包过滤。如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。确认只有内部LAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。

(3)使用加密技术。阻止IP欺骗的一种简单的方法是在通信时要求加密传输和验证。当有多种手段并存时,加密方法可能最为适用。

ICMP协议

ICMP协议的安全问题

ICMP即Internet控制消息协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。Ping就是最常用的基于ICMP的服务。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。此外,向目标主机长时间、连续、大量地发送ICMP数据包,使得目标主机耗费大量的CPU资源处理,也会最终使系统瘫痪。

防范方法

对于“Ping of Death”攻击,可以采取两种方法进行防范:

(1)路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内。这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;

(2)在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。

尽管利用协议中存在的安全缺口来实施攻击技术性强、难度大,但突破率高、危害性极大。目前,致力于该问题的研究已取得了显著的成效,针对协议本身作了很多的改进。

上一篇:游戏中的那些科学家 下一篇:股沟小儿子Nexus S