-
互联网安全法,互联网净网行动
-
”净网2020”落实好维护网络安全责任
-
关于端午节放假通知-宇众网络
-
宇众网络春节放假通知
-
关于公司收款银行账户变更通知函-宇众网络
-
关于网上有人冒充我公司名义进行诈骗的公告。
-
关于端午节放假通知,节日放假,但是我们业务不“放假”-宇众网络
-
工信部进一步加强未备案网站管理工作的通知-宇众网络
-
关于东莞市宇众网络科技有限公司香港数据中心(香港机房)路由优化通知
-
宇众网络庆祝五·一劳动节快乐
-
东莞东城机房网络升级通知
-
临近过年,互联网IDC贵圈也有被骗的,请认准宇众网络公司官方联系方式
-
我司已获得ISP/ICP/IDC三证资格,更好的为客户服务
-
关于浙江金华高防机房网络线路切割通知
-
工信部近日下发关于进一步规范域名备案工作的通知
属于网络协议的攻击有哪些?高防服务器租用-打不死服务器租用
1. TCP/IP 协议的脆弱性
1.1 不能提供可靠的身份验证
TCP/IP 协议以 32 bit 的 IP 地址来作为网络e79fa5e98193e4b893e5b19e31333431373834节点的唯一标识,而 IP 地址只是用户软件设置中的一个参数,因而是可以随意修改的。
对 UDP 来说,是根据这个 IP 地址来唯一标识通信对方。 TCP 则通过三次握手,使情况稍有改善。 TCP 中的每个报文都含有一个标识本报文在整个通信流中位置的 32 bit 序列号,通信双方通过序列号来确认数据的有效性。
由于 TCP 设计三次握手过程本身并不是为了身份验证,只是提供同步确认和可靠通信,虽然这也能够提供一定的身份验证的支持,但这种支持很薄弱。
由于 TCP/IP 不能对节点上的用户进行有效的身份认证,服务器无法鉴别登录用户的身份有效性,攻击者可以冒充某个可信节点的 IP 地址,进行 IP 欺骗攻击.
其次,由于某些系统的 TCP 序列号是可以预测的,攻击者可以构造一个TCP'数据包,对网络中的某个可信节点进行攻击。
1.2 不能有效防止信息泄漏
IPv4 中没有考虑防止信息泄漏,在 IP 、 TCP 、 UDP 中都没有对数据进行加密。 IP 协议是无连接的协议,一个 IP 包在传输过程中很可能会经过很多路由器和网段,在其中的任何一个环节都很容易进行窃昕 。攻击者只需简单地安装一个网络嗅探器,就可以看到通过本节点的所有网络数据包。
1.3 没有提供可靠的信息完整性验证手段
在 IP 协议中,仅对 IP 头实现校验和保护
在UDP 协议中,对整个报文的校验和检查是一个可选项,并且对 UDP 报文的丢失不做检查。
在 TCP 协议中,虽然每个报文都经过校验和检查,并且通过连续的序列号来对包的顺序和完整进行检查,保证数据的可靠传输。但是,校验算法中没有涉及加密和密码验证,很容易对报文内容进行修改,再重新计算校验和
1.4 协议没有手段控制资源占杳和分配
TCP/IP 中,对资源占杳和分配设计的一个基本原则是自觉原则。如参加 TCP通信的一方发现上次发送的数据报丢失,则主动将通信速率降至原来的一半。这样,也给恶意的网络破坏者提供了机会 c 如网络破坏者可以大量的发 IP 报,造成网络阻塞,也可以向一台主机发送大量的 SYN 包从而大量占有该主机的资源 (SYN Flood) 。这种基于资源占用造成的攻击被称为拒绝服务攻击( DOS)
2.常见 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)
image.png
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资源。
使用SYN Proxy防火墙Syn Cache技术和Syn Cookie技术总的来说是一种主机保护技术,需要系统的TCP/IP协议栈的支持,而目前并非所有的操作系统支持这些技术。因此很多防火墙中都提供一种SYN代理的功能,其主要原理是对试图穿越的SYN请求进行验证后才放行
防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求,在右图中,所有的无效连接均无法到达内部的服务器。采用这种方式进行防范需要注意的一点就是防火墙需要对整个有效连接的过程发生的数据包进行代理
因为防火墙代替发出的SYN ACK包中使用的序列号为c,而服务器真正的回应包中序列号为c’,这其中有一个差值|c-c’|,在每个相关数据报文经过防火墙的时候进行序列号的修改。
TCP Safe Reset技术:这也是防火墙Syn代理的一种方式
这种方法在验证了连接之后立即发出一个Safe Reset命令包,从而使得Client重新进行连接,这时出现的Syn报文防火墙就直接放行。在这种方式中,防火墙就不需要对通过防火墙的数据报文进行序列号的修改了。这需要客户端的TCP协议栈支持RFC 793中的相关约定,同时由于Client需要两次握手过程,连接建立的时间将有所延长。
2.3.2 死亡之 Ping(Ping O' Death )
死亡之 Ping 是利用 ICMP 协议的一种碎片攻击 。攻击者发送一个长度超过 65 535Byte 的 Echo Request 数据包,目标主机在重组分片的时候会造成事先分配的 65 535 Byt 字节缓冲区溢出,系统通常会崩愤或挂起
IP 数据包的*大长度是 65 535 (2 16 - 1) Byte,其中包括包头长度(如果 IP 选项末指定,一般为 20 B)超过 MTU( Maximum Transmission Unit) 的数据包被分割成小的数据包,在接受端重新组装。一般以太网的MTU 为 11500 Byte ,互联网上的 MTU 通常是 576 Byte ICMP 回应请求放在 IP 数据包中,其中有 8 Byt 的 ICMP头信息,接下来是 "Ping" 请求的数据宇节的数目。因此数据区所允许的*大尺寸为 65 535 - 20 - 8 = 65 507Byte
分段后的 IP 包要在接收端的 IP 层进行重组,这样"死亡之 Ping"就可以再发送一个回应请求数据包,使它的数据包中的数据超过 65 507 Byte ,使得某些系统的 IP 分段组装模块出现异常。因为在 IP 分段组装的过程中,它通过每一个 IP 分段中的偏移量来决定每一个分段在整个 IP 包中的位置,*后一个分段中,如果 IP 包的长度大于 65 507 Byte各个分段组装后就会超过 IP 包的*大长度。某些操作系统要等到将所有的分段组装完后才对 IP 包进行处理,所以就存在这样一种内部缓冲区或内部变量溢出的可能性,这样会导致系统崩愤或重启。
防范措施
可以利用防火墙来阻止 Ping ,然而这样也会阻挡一些合法应用。所以只要阻止被分段的 Ping ,这样在大多数系统上允许一般合法的 64 Byt 的 Ping 通过,挡住了那些长度大于 MTU 的 ICMP 数据包.
这种攻击能使系统崩溃的原因因系统不同而异.有的可能因为内核中固定大小的缓冲区因 IP 数据包过大而越界,损坏了其它数据或编码;有的则可能因为用一个无符号的 16 bit 变量来保存数据包的长度和相关变量,当这些变量的值超过 65 535 Byte 时,变量不再与其数值一致,从而引发异常。因此可以为相应的系统打上补丁。
2.3.3 RST 和 FIN 攻击( RST and FIN attack)
在 TCP 包中有 6 个标志位来指示分段的状态。其中 RST 用来复位一个连接, FIN 表示没有数据要发送了攻击者经常利用这两个标志位进行拒绝服务攻击。他们先分析通过目标主机和受骗主机之间的 IP 数据包,计算出从受骗主机发往目的。
遭受网络攻击,还得需要硬件防火墙,高防服务器租用www.yuzhongidc.com宇众网络