TCP/IP网络协议攻击概述
TCP/IP网络协议栈在设计之初假设环境中的用户都是可信任的,没有考虑其中的安全问题。随着互联网发展,恶意用户出现,许多安全问题逐渐浮出睡眠并受到重视。
网络安全属性
从安全属性来看,机密性(confidentiality)、完整性(intergrity)和可用性(availability)构成了网络安全的三个基本属性,也被称为安全金三角模型(CIA)。国际电信联盟(ITU)在X.800安全体系标准中还定义了网络安全的其他两个属性,包括真实性(authentication)和不可抵赖性(Non-Repudiation)。
- 机密性:指网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。
- 完整性:是指信息未经授权不能改变的特性,即信息在存储和传输过程中保持不被修改、不被破坏和丢失的特性。
- 可用性:是指被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需信息的服务。
- 真实性:是指确保通信双方是它所声称的真是实体,而非假冒实体。
- 不可抵赖性:是指在通信中确保任何一方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性和可审查性。
网络攻击基本模式
网络攻击的基本模式有以下四种:截获、中断、篡改、伪造。其中截获属于被动攻击模式,具体攻击技术为嗅探和监听;中断属于主动攻击,具体攻击技术为拒绝服务;伪造具体攻击技术为欺骗;篡改一般需结合身份欺骗进行中间人攻击。
TCP/IP网络协议栈安全缺陷与攻击技术
TCP/IP网络协议栈在设计之初假设环境中的用户都是可信任的,没有考虑其中的安全问题。
TCP/IP网络协议栈在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层,每一层负责不同的功能,各自具有相应的网络协议,每个层次上都有一定的安全问题,具体如下:
网络层协议攻击
网络层的主要协议如IP、ICMP和ARP都存在多种攻击模式
IP源地址欺骗
IP协议在设计时只是用数据宝中的目标地址进行路由转发,从而不对原地址进行真实性验证。怀有恶意的攻击者会修改IP协议包头,使其包含一个不同的虚假IP地址,达到欺骗目标和隐藏发送源的目的。
防范措施包括:
- 使用随机化的初始序列号,使远程攻击者无法猜测到通过源地址欺骗伪装建立TCP连接所需的序列号。
- 使用网络层安全传输协议如IPsec,对传输的数据包进行加密。
- 避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代。
- 在路由器和网关上实施包过滤。
ARP欺骗
也被称为ARP投毒,是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗。
ARP协议在进行IP地址到MAC地址映射查询时存在安全缺陷,一方面采用了广播请求包方式在局域网段中询问映射关系,但没有对响应结果进行真实性验证的技术流程与方法,而另一方面ARP协议为提高效率,设计了ARP缓存机制,以及会将主动的ARP应答视作有效信息进行接受,这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
防范措施包括:
- 静态绑定关键主机的IP地址与MAC地址的映射关系
- 使用相应的ARP防范工具
- 使用VLAN虚拟子网细分网络拓扑
- 加密传输数据
ICMP路由重定向攻击
攻击者通过伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。
ICMP重定向攻击就是利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成路由器,使目标机器的数据报发送至攻击机从而加强监听。
方法措施包括:
- 根据类型过滤一些ICMP数据包
- 设置防火墙过滤
- 对ICMP重定向报文判断是不是来自本地路由器。
传输层协议攻击
传输层的主要协议TCP和UDP也存在很多种不同攻击方式。
TCP RST攻击
这是一种假冒干扰TCP通信连接的技术方法。TCP重置报文将直接关闭掉一个TCP会话连接。
TCP会话劫持攻击
这种攻击目标是劫持通信双方已建立的TCP会话连接,假冒其中一方的身份与另一方进行通信。
TCP使用端到端的连接,即TCP用(源IP,源TCP端口号,目的IP,目的TCP端号)来唯一标识每一条已经建立连接的TCP链路。另外,TCP在进行数据传输时,TCP报文首部的两个字段序号(seq)和确认序号(ackseq)非常重要。序号(seq)和确认序号(ackseq)是与所携带TCP数据净荷(payload)的多少有数值上的关系:序号字段(seq)指出了本报文中传送的数据在发送主机所要传送的整个数据流中的顺序号,而确认序号字段(ackseq)指出了发送本报文的主机希望接收的对方主机中下一个八位组的顺序号。因此,对于一台主机来说,其收发的两个相临TCP报文之间的序号和确认序号的关系为:它所要发出的报文中的seq值应等于它所刚收到的报文中的ackseq的值,而它所要发送报文中ackseq的值应为它所收到报文中seq的值加上该报文中所发送的TCP净荷的长度。
TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如HTTP、FTP、Telnet等。对于攻击者来说,所必须要做的就是窥探到正在进行TCP通信的两台主机之间传送的报文,这样攻击者就可以得知该报文的源IP、源TCP端口号、目的IP、目的TCP端号,从而可以得知其中一台主机对将要收到的下一个TCP报文段中seq和ackseq值的要求。这样,在该合法主机收到另一台合法主机发送的TCP报文前,攻击者根据所截获的信息向该主机发出一个带有净荷的TCP报文,如果该主机先收到攻击报文,就可以把合法的TCP会话建立在攻击主机与被攻击主机之间。带有净荷的攻击报文能够使被攻击主机对下一个要收到的TCP报文中的确认序号(ackseq)的值的要求发生变化,从而使另一台合法的主机向被攻击主机发出的报文被被攻击主机拒绝。TCP会话劫持攻击方式的好处在于使攻击者避开了被攻击主机对访问者的身份验证和安全认证,从而使攻击者直接进入对被攻击主机的的访问状态,因此对系统安全构成的威胁比较严重。
防范措施包括:
- 禁用主机上的源路由
- 采用避免ARP欺骗的措施
- 采用避免被ICMP重定向的措施
TCP SYN Flood拒绝服务攻击
SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
防范措施包括:
- SYN-Cookie措施
- 防火墙地址状态监控技术
UDP Flood 拒绝服务攻击
UDP洪泛是一种拒绝服务攻击,其中大量的用户数据报协议(UDP)数据包被发送到目标服务器,目的是压倒该设备的处理和响应能力。防火墙保护目标服务器也可能因UDP泛滥而耗尽,从而导致对合法流量的拒绝服务。
防范措施包括:
- 禁用或过滤监控和响应服务
- 禁用或过滤器他的UDP服务
- 在网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量
TCP/IP网络协议栈攻击防范措施
- 监测、预防与安全加固
- 改进网络安全协议
- 下一代互联网协议
参考资料
网络攻防技术与实践