tcp/ip常见攻击方式
发布网友
发布时间:2022-04-26 23:56
我来回答
共1个回答
热心网友
时间:2022-05-23 16:37
常见 TCP/IP 协议攻击方法分析
2.1 IP 欺骗( IP Spoofing)
IP 欺骗是指一个攻击者假冒一个主机或合法用户的 IP 地址,利用两个主机之间的信任关系来达到攻击的目的,而这种信任关系只是根据源 IP 地址来确定。所谓信任关系是指当主机 B 信任主机 A 上的 X用户时,只要 X 在 A 上登录, X 用户就可以直接登录到主机 B 上,而不需要任何口令。
IP 欺骗通常需要攻击者能构造各种形式 IP 数据包,用虚假的源 IP 地址替代自己的真实 IP 地址。如果主机之间存在基于 IP 地址的信任关系,目标主机无法检测出已经被欺骗。
防范措施
各个网络 ISP 应该*源地址为外部地址的 IP 数据包进入互联网
合理的配置防火墙,*数据包的源地址为内部网络的数据包进入网络。
2.2 TCP 会话劫持 (TCP sessJOn hijacking)
TCP 会话劫持跳过连接过程.对一个已经建立的连接进行攻击。攻击者与被假冒主机和目标主机之一在同一个子网中,攻击者通过一个嗅探程序可以看到被假冒主机和目标主机之间通信的数据包。
攻击者看到被假冒主机和目标主机建立一个连接并进行身份认证后,通过对数据包捕获和进行分析,就可以得到连接的序列号。
一旦得到正确的序列号就可以发送一个假冒的 TCP 分段,接管已经建立的连接。这样,被假冒主机发送的数据包都会被目标主机忽略,因为它们的序列号会被目标主机认为不正确。
防范措施
最主要的方法是在传输层对数据进行加密。
2.3 拒绝服务( Denial Of Service )
拒绝服务坷的目的就是使受害的服务器不能提供正常的网络服务。
2.3.1 SYN 淹没 (SYN Flooding)
当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的Syn报文,一旦接收到Client发来的Syn报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYN ACK命令,立即转为SYN-RECEIVED即半开连接状态,而操作系统在SOCK的实现上最多可开启半开连接个数是一定的。
从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。
防范措施
无效连接监视释放
这种方法不停监视系统的半开连接和不活动连接,当达到一定阈值时拆除这些连接,从而释放系统资源。这种方法对于所有的连接一视同仁,而且由于SYN Flood造成的半开连接数量很大,正常连接请求也被淹没在其中被这种方式误释放掉,因此这种方法属于入门级的SYN Flood方法。
延缓TCB分配方法
从前面SYN Flood原理可以看到,消耗服务器资源主要是因为当SYN数据报文一到达,系统立即分配TCB,从而占用了资源。而SYN Flood由于很难建立起正常连接,因此,当正常连接建立起来后再分配TCB则可以有效地减轻服务器资源的消耗。常见的方法是使用Syn Cache和Syn Cookie技术。
Syn Cache技术:
这种技术是在收到SYN数据报文时不急于去分配TCB,而是先回应一个SYN ACK报文,并在一个专用HASH表(Cache)中保存这种半开连接信息,直到收到正确的回应ACK报文再分配TCB。在FreeBSD系统中这种Cache每个半开连接只需使用160字节,远小于TCB所需的736个字节。在发送的SYN ACK中需要使用一个己方的Sequence Number,这个数字不能被对方猜到,否则对于某些稍微智能一点的Syn Flood攻击软件来说,它们在发送Syn报文后会发送一个ACK报文,如果己方的Sequence Number被对方猜测到,则会被其建立起真正的连接。因此一般采用一些加密算法生成难于预测的Sequence Number。
Syn Cookie技术:
对于SYN攻击,Syn Cache虽然不分配TCB,但是为了判断后续对方发来的ACK报文中的Sequence Number的正确性,还是需要使用一些空间去保存己方生成的Sequence Number等信息,也造成了一些资源的浪费。
Syn Cookie技术则完全不使用任何存储资源,这种方法比较巧妙,它使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息,以及对方无法知道而己方比较固定的一些信息,如MSS、时间等,在收到对方的ACK报文后,重新计算一遍,看其是否与对方回应报文中的(Sequence Number-1)相同,从而决定是否分配TCB资源。